【问题标题】:Nasty symlink issue in snapshot views on WindowsWindows 上的快照视图中令人讨厌的符号链接问题
【发布时间】:2016-03-14 14:30:19
【问题描述】:

在我们公司,我们在 Windows 上使用 ClearCase。由于事实证明动态视图对我们来说非常慢,因此我们主要使用快照视图。

今天我们发现了一个关于 Windows 快照视图中符号链接的非常讨厌的问题。

众所周知,在快照视图中(至少在 Windows 上)ClearCase 模拟符号链接不是通过实际的文件系统符号链接,而是简单地作为副本。也就是说,如果您的原始文件是 /myVOB/dir/fileA.txt 并且 /myVOB/anotherDir/fileA.txt 是前者的符号链接,则在快照中认为前者和后者只是彼此相同的副本。现在的问题是,如果您签出并编辑原始文件(可能作为合并操作的一部分),则更改不会反映在指向该文件的任何符号链接中。即使是视图更新也不会改变这一点......它会在您签入更改之后,但不是之前,这是一个大问题,因为我们正在使用自动合并更改的自动门控签入从源分支到快照视图,运行构建和任何后续测试,并且只有在构建和所有测试都成功时才继续签入更改。

由于上述问题,我们发现门控签入(即构建和测试)可能会成功,即使合并的更改会导致它失败。发生这种情况所需要的只是构建引用更改的文件或目录,而不是通过其真实的原始路径而是通过符号链接,这将导致它看到原始的未更改版本,而不是更改后的合并版本。

除了“仅使用动态视图”之外,有没有人知道如何解决这个问题?

【问题讨论】:

  • 您是否花时间解决动态视图问题?
  • @BrianCowan 您遇到什么动态视图问题?
  • 您的动态视图性能问题。您提到它们“非常慢”,并且至少有机会改进这一点,假设您不在 VPN 的另一端或与服务器的其他长距离连接。
  • @BrianCowan 哦。是的,我们一直在努力推动我们的 CC 管理员/IT 部门(我只是一个卑微的工具匠)去追根究底,但到目前为止还没有实现。
  • 显然 SO 没有私人消息。对您的公司一无所知,我无法告诉您他们是否有任何积极的绩效 PMR,或者即使他们有当前的支持合同(在那里隐瞒一点......)。如果您可以将您的工作联系信息发送到我的工作电子邮件(名字的前 2 个字母 + 姓氏 at(缩写)美国 dot ibm com 。我可以看看。

标签: windows clearcase


【解决方案1】:

在考虑symbolic link on Windows in ClearCase snapshot views 时,似乎没有任何神奇的解决方案。

一种解决方法是列出这些符号链接(假设该列表相对静态且不经常更改),并在每次构建/测试之前复制原始文件(如果 cleartool diff 显示任何差异)到那些引用它的符号链接。

antred 添加in the comments

这是我们的最终解决方案:

在动态视图中执行合并,不要签入。
使用 robocopy 将视图同步到硬盘上的存储位置(相对较快),然后从那里运行构建/测试。
如果成功,则签入在动态视图中更改;否则撤消结帐。 :)

【讨论】:

  • 哈,不知怎的我就知道是你写了第一个回复! :) 至于将链接与原始存储位置同步。我们已经考虑过这一点,但爬取整个文件系统并搜索引用任何已更改元素的链接可能会变得非常昂贵。此外,简单的副本并不总是可以......如果目录树的结构发生了显着变化(重命名,创建新文件/目录,删除旧文件)怎么办?我们正在考虑在动态视图中进行合并,然后将所有内容复制到本地 HD 以进行构建。
  • @antred 当然,我只是在事先知道符号链接并且不会经常更改的情况下提到解决方法。如果没有,也许在动态视图中搜索那些符号链接,以便在快照视图中制作相关副本。
  • 好吧,我想我们将不得不这样做。上帝,我希望我们的项目没有使用 Windows ...
  • 我认为我们现在要使用的“解决方案”是在合并后执行另一个视图更新。这会使事情变慢很多,但是如果结果不正确,那么快速的过程有什么用......
  • @antred 好的。我已将您的评论包含在答案中以提高知名度。
猜你喜欢
  • 2017-11-23
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 2015-01-07
  • 2010-09-22
  • 1970-01-01
  • 2013-02-11
  • 2013-12-11
相关资源
最近更新 更多