技术开发 频道

增强的任务单元模型

    模型:任务单元的迁移 

    任务单元会从其诞生的工作空间,迁移到相似的工作空间。例如,当我们完成了一个任务单元,我们要把它提交到公共的公共空间。我们在Release1.1中的改动,可能要迁移到Release2.0的最新的工作空间上去。那么,任务单元如何迁移呢?

    先考虑简单的情况:如果当任务单元中某个文件/目录的变更前版本,与要迁移到的工作空间中的相应文件/目录的版本,其内容相同,那么是比较好处理的。我们只需要用任务单元中该文件/目录的变更后版本来覆盖工作空间中的相应文件/目录就可以了。具体情况见下图:

 

    左上角是变更前版本。左下角是变更后版本。它们之间有一些变更。右上角是工作空间中的当前版本,它与变更前版本相同。右下角是在接受了变更后,工作空间中的内容。它应该与左下角相同。也就是与任务单元中的变更后版本相同。

    但是,并不总是这样的简单情况。有的时候,任务单元中某个文件/目录的变更前版本,与要迁移到的工作空间中的相应文件/目录的版本,其内容并不相同。也就是遇到了以下情形:

 

    从图中可以看到,由于左上角和右上角的内容并不相同,我们不能直接把左下角的内容复制到右下角去。我们说,这时候,存在着冲突。

解决的办法是,我们对任务单元中的内容进行变形,在保证所代表的变更本身不改变的情况下,改变变更前版本和变更后版本的内容,使新的变更前版本与要迁移到的工作空间中的相应文件/目录的内容相同:

 

    图中,任务单元中的文件/目录的变更前版本从左上角的内容变化为右上角的内容。而任务单元中的文件/目录的变更后版本也从左下角内容变化为右下角内容。而不变的,是变更前版本和变更后版本之间的差异:图中左边所代表的差异和右边所代表的差异是相同的。

    在任务单元完成自身的变形后,事情就变得简单了。这时,任务单元中文件/目录的的变更前版本与要迁移到的工作空间中的相应文件/目录的版本,其内容相同,因此变成了简单的情况:

 

    在这样的情况下,右上角和左上角的内容相同,因此右下角的内容应该和左下角的内容相同。我们只需要用任务单元中该文件/目录的变更后版本来覆盖工作空间中的相应文件/目录就可以了。

0
相关文章