我有这个文件夹结构:
\ myproject的\分支\ 1.2
\ myproject的\主干
我需要将v1.2合并回主干。 v1.2有修订版104和105.中继从57-65和106.106版本正在删除v1.2文件夹中不存在的文件夹。
我的设置是基于文件的。我在干线试过这个:
MacBook:trunk myuser $ svn merge -r104:105“file:///Developer/Main%20Repository/myproject/branches/v1.2”
我有三个冲突并解决了它们。但是,我没有看到任何文件已在主干中更新。我是否需要做其他/不同的事情来完成合并?
- 编辑 -
我真的想将整个标记\ v1.2分支合并到trunk中。所以我跑了:
svn merge "file:///Developer/Main%20Repository/myproject/branches/v1.2"
并解决了一些冲突。有没有办法让我确定这两个分支现在是否相同?通过做一些文件比较,我可以看到两个分支之间仍然存在明显差异,这意味着合并不起作用。
答案 0 :(得分:1)
你确定r104是你创建1.2分支的地方吗?您可以通过以下方式验证:
svn log --stop-on-copy file:///path/to/branch
然后你需要使用那个修订范围。
修改强>
好的,这就是通常的情况......假设您希望分支中的所有更改,并且分支是在r104中创建的。
cd path/to/trunk/checkout
svn merge -r 104:HEAD file:///path/to/branch
这会将分支中所做的更改合并到主干的本地副本。您现在需要解决所有冲突,如果有的话。此时如果你这样做:
svn stat
你应该只看到标记为M A或X的文件和目录(如果你有外部)。现在,为了使合并位于存储库中的trunk中,您需要执行以下操作:
svn commit -m "my commit comment"
您遇到的问题是您正确执行了前几个步骤但未提交合并的更改,而是尝试再次合并。所以现在你可能在后备箱里疯狂了。您可能需要对最后一个好的副本进行恢复,然后再次合并并提交。
答案 1 :(得分:1)
你告诉Subversion要合并修订版104和105之间的分支所做的更改;你已经跳过了r104中所做的更改。
尝试
svn merge -c 104,105 file:///Developer/Main%20Repository/myproject/branches/v1.2
并确保您拥有干线的工作副本。
答案 2 :(得分:0)
在您看到行李箱中的更改之前,您需要svn commit
。
svn merge
操作会更改您的工作副本。你已经解决了冲突,好,(我假设你还为他们运行了svn resolved
),现在剩下的就是用svn commit
将你的工作提交到存储库。