我正在尝试做一些看似简单但有问题的事情。
基本上,我有一个svn repo,它有一个主干和一个从修订版122创建的分支。
我在分支中添加了一个文件(src / utils / foo.py),将其作为修订版128提交,一切都很好。
然而,在我的分支中有几个提交(即(123,124,125,126,127)到我想要的主干。所以我做了类似的事情:
$ svn merge -r122:127 ^/projects/my_project/trunk/src/utils .
--- Merging r123 through r127 into '.':
D foo.py
糟糕!它删除了我的文件!我做错了什么,以免发生这种情况?
答案 0 :(得分:1)
它可能与拥有该文件的文件夹有关,而不是文件本身。我相信大多数SCM工具都会将文件夹视为文件,因为它们也会被版本化。您可能需要上升一级以确保“utils”文件夹也合并。
修改强>
只是为了解释一下,它是文件夹“utils”记录文件“foo.py”是它的子文件,所以即使foo.py存在于trunk中,也没有合并更新的utils文件夹它可能无法显示。
答案 1 :(得分:1)
首先,您是否在执行svn merge命令的正确目录中?第二个从不合并SVN中的子文件夹。只需使用
svn merge ... ^/projects/my_project/trunk
进入工作副本的根目录。特别是在与合并历史(svn:mergeinfo)的关系中会更好。
答案 2 :(得分:0)
啊!有人确实将分支合并到了trunk中,后者将文件添加到trunk,但随后回滚了该提交,从trunk中删除了该文件。谢谢您的帮助。关于svn merge如何工作的好教训。