【问题标题】:TFS merge after move+delete combo移动+删除组合后 TFS 合并
【发布时间】:2016-06-09 18:05:44
【问题描述】:

短版:

如果 TFS 源代码管理下的文件被移动,并且它们的原始文件夹在同一个变更集中被删除,是否可以以适当的方式将移动合并到另一个分支?

长版:

我的代码的父分支被彻底重构:所有文件都被单独移动,文件的原始父文件夹被删除而不是移动:

重构前:

ParentBranch   / OriginalParentFolder / Subfolder1 / File1
                                      / Subfolder2 / File2

重构后:

ParentBranch   / RefactoredParentFolder / File1
                                        / Subfolder3 / File2
               / ---OriginalParentFolder---

移动文件和删除原始文件夹发生在一个变更集中。 因此,父分支中的文件仍然有它们的历史;但如果我现在合并到子分支,删除文件夹似乎优先于移动文件、丢弃所有更改并忽略文件之间的关系:

合并前:

ChildBranch / OriginalParentFolder / Subfolder1 / ModifiedFile1
                                   / Subfolder2 / ModifiedFile2

合并后:

ChildBranch / RefactoredParentFolder     / File1
                                         / Subfolder2 / File2
            / ---OriginalParentFolder--- / ---Subfolder1--- / ---ModifiedFile1---
                                         / ---Subfolder2--- / ---ModifiedFile2---

我尝试了多种方法来尝试将 File1 和 File2 中的修改移动到新的目标位置,但我总是只得到未修改的文件,或者文件的两个单独版本。

除了回滚父分支并再次尝试(不删除文件夹)之外,是否有可能将这些移动与子分支修改合并?

谢谢,

巴特

【问题讨论】:

    标签: visual-studio tfs merge


    【解决方案1】:

    您可以在重构解决方案中撤消删除原始文件夹并合并,然后在合并后删除原始文件夹。

    【讨论】:

    • 谢谢,我已经试过了,但不幸的是,在取消删除文件夹后,文件夹中的文件仍然合并为“已删除”而不是“移动”...
    • 您是否要显示为“已移动”以保留文件历史记录?
    • 我正在尝试将我对这些文件的更改与重构文件中的更改合并。通常,这会自动工作,但即使在回滚删除后,父删除也会阻止这种情况发生,因为带有移动+删除的原始变更集将原始文件夹下的所有内容标记为已删除。
    • 我认为你最好的办法是撤消重构代码中的重构,合并然后重构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2013-05-30
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多