在我们公司,我们在Windows上使用ClearCase。由于动态视图对我们来说非常缓慢,因此我们主要使用快照视图。
今天我们在Windows上的快照视图中发现了一个非常令人讨厌的关于符号链接的问题。
众所周知,在快照视图中(至少在Windows上),ClearCase不是通过实际的文件系统符号链接来模拟符号链接,而只是作为副本。也就是说,如果您的原始文件是 /myVOB/dir/fileA.txt 而 /myVOB/anotherDir/fileA.txt 是前者的符号链接,则在快照中查看前者和后者只是彼此相同的副本。现在的问题是,如果您签出并编辑原始文件(可能作为合并操作的一部分),则更改不会在指向该文件的任何符号链接中进行镜像。即使是视图更新也不会改变...它会在您签入更改之后,而不是之前,这是一个很大的问题,因为我们正在使用自动封闭检查-in自动将来自源分支的更改合并到快照视图中,运行构建和任何后续测试,并且只有在构建和所有测试成功时才会检入更改。
由于上述问题,我们发现即使合并的更改导致其失败,门控签入(即构建和测试)也可能成功。所需要的只是构建引用已更改的文件或目录,而不是通过其真实的原始路径,而是通过符号链接,这将使它看到原始的,未更改的,而不是更改的合并版本。
有没有人知道除了&#34之外如何解决这个问题;只需使用动态视图"?
答案 0 :(得分:1)
在考虑symbolic link on Windows in ClearCase snapshot views时,似乎没有任何神奇的解决方案。
一种解决方法是获得这些符号链接的列表(假设列表相对静态并且不经常更改),并且在每次构建/测试之前,复制原始文件(如果cleartool diff
显示任何这些符号链接引用它。
这是我们的最终解决方案:
在DYNAMIC视图中执行合并,请勿登记。
使用robocopy将视图同步到硬盘驱动器上的存储位置(相对较快),然后从那里运行构建/测试。
如果成功,则在动态视图中签入更改;否则撤消结账。 :)