如何在TFS中将文件夹分支/复制/移动到不同的项目并保留历史记录?

3
我有一个在项目A下的文件夹,我想将其移动到项目B下,并保留文件夹的历史记录。我实际上想要做的是将项目A文件夹的当前状态分支到项目B下的Dev分支,然后通过早期变更集的快照将项目A文件夹分支到项目B下的Main分支。例如: $/TfsProjectA/MyProject --> 分支到 $/TfsProjectB/MyProject/Dev 具有完整的历史记录, 由于我拥有完整的历史记录,因此我可以进行以下操作 $/TfsProjectB/MyProject/Dev --> 基于现在的 $/TfsProjectB/MyProject/Dev 版本的早期版本分支到 $/TfsProjectB/MyProject/Main 这种情况是否可行?
1个回答

3
不行,这是不可能的。
分支/移动将会丢失文件夹的历史记录,但是单个文件的历史记录实际上并没有丢失。它隐藏在文件历史记录行最左侧的小“展开我”箭头下面。在文件的最早历史记录条目或任何您看到它的地方展开它,您将看到该单个文件的历史记录,也可以从一个不再存在的旧位置查看。
然而,合并更改集的分支是基于文件夹历史记录的。例如,$/TfsProjectB/MyProject/Dev 的第一个更改集将从 $/TfsProjectA/MyProject 分支出来,并且您将无法选择 $/TfsProjectA/MyProject 的旧更改集。
解决方法:
实现您所需的方式是直接将$/TfsProjectA/MyProject与旧的更改集合并到$/TfsProjectB/MyProject/Main。即使您会收到以下警告提示:

源和目标之间不存在合并关系。将执行无基础合并


1
谢谢确认。我第一次尝试时遇到了无依据的合并,这个方法可以解决问题,但是每次都需要手动更改目标分支,我希望能够避免这种情况。我想现在先进行无依据的合并,当我能够对“新”的Dev分支进行快照并将其分支到一个“真正的”Main分支时,我会这样做,然后我认为从那时起事情应该会变得顺利。 - Peter Tirrell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接