2

我正在尝试做一些看似简单但有问题的事情。

基本上,我有一个 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

哎呀!它删除了我的文件!我做错了什么以至于这不会发生?

4

3 回答 3

1

首先,您是否在执行 svn merge 命令的正确目录中?其次,永远不要只合并 SVN 中的子文件夹。只需使用

svn merge ... ^/projects/my_project/trunk 

进入工作副本的根目录。这会更好,特别是与合并历史(svn:mergeinfo)的关系。

于 2011-12-08T14:52:13.717 回答
1

它可能与拥有该文件的文件夹有关,而不是与文件本身有关。我相信大多数 SCM 工具都将文件夹视为文件,因为它们也会被版本化。您可能需要上一级以确保“utils”文件夹也被合并。

编辑:

稍微解释一下,文件夹“utils”记录了文件“foo.py”是它的子文件,所以即使 foo.py 存在于主干中,如果不合并更新后的 utils 文件夹,它也可能不会显示.

于 2011-12-08T14:28:22.317 回答
0

啊! 确实有人将分支合并到主干中,将文件添加到主干,但随后回滚该提交,从主干中删除文件。谢谢您的帮助。svn merge 如何工作的好课。

于 2011-12-08T15:14:00.083 回答