假设我在SVN存储库中创建了文件A的副本作为文件B,并对文件B进行了一些更改。然后有人更改了文件A,我想将这些更改引入文件B,我该怎么做?目录未被svn copy命令复制,因为它们的名称必须不同。它们在本地复制,删除.svn目录,从A重命名为B,然后是svn add,然后是svn ci。
答案 0 :(得分:1)
当您不使用内置的Subversion工具进行复制和移动时,您不能指望Subversion能够跟踪您的更改。就Subversion而言,这些是完全新的文件,与旧副本无关。在这种情况下,没有简单的方法来进行Subversion合并。
您可以执行svn --ignore-ancestry
,但这只会合并具有相似名称的文件,并且最终会进行双向合并,这意味着即使这些文件中的任何差异都会得到通知变化发生在分支机构本身。没有历史,没有三方合并。
在您的环境中,您可以做的最好的事情是使用一些差异工具进行手动合并。
在不执行svn cp
的情况下,不要将文件从存储库的一个部分复制到另一个部分。您基本上已经破坏了使用Subversion维护合并的能力。
下次执行此类操作时,请执行svn cp
将文件复制到其他位置,提交更改,然后执行svn mv
重命名或移动文件。这允许Subversion跟踪文件重命名和移动。