2009-12-03 86 views
2

躯干我有这样的文件夹结构:合并标签与颠覆

\ MyProject的\分支机构\ V1.2

\ MyProject的\行李箱

我需要合并V1.2回主干。 v1.2修订版104和105.中继线从57-65和106.106修订版将删除v1.2文件夹中不存在的文件夹。

我的设置是基于文件的。我在树干试过这样:

的MacBook:树干为myuser $ svn merge的-r104:105 “文件:///Developer/Main%20Repository/myproject/branches/v1.2”

我有三个冲突并解决它们。但是,我没有看到任何文件已在主干中更新。我是否需要做其他事情来完成合并?

- 编辑 -

我真想整个标签\ 1.2分支合并到主干。所以我跑了:

svn merge "file:///Developer/Main%20Repository/myproject/branches/v1.2" 

并解决了几个冲突。有没有办法让我确定两个分支现在是否一样?我通过做一些文件比较可以看出,两个分支之间仍然存在明显差异,这意味着合并不起作用。

回答

0

之前你会看到树干的变化,你需要svn commit

svn merge操作会更改您的工作副本。你已经解决了冲突,很好,(我假设你也为他们运行了svn resolved),现在剩下的就是将你的工作提交到版本库svn commit

+0

我在尝试合并之前进行了提交。当我运行上面的命令行时,它会很快返回到提示符,就像没有发生任何事情一样。检查后备箱,我可以看到没有合并发生。 – 4thSpace 2009-12-03 20:18:30

+0

“我在尝试合并之前完成了提交” - 这没有意义...您合并,然后提交。你能否在你的问题中提供更多细节?到目前为止,我对你到底做了些什么感到茫然。 – retracile 2009-12-03 21:25:29

+0

我试图将v1.2合并到trunk中,解决了冲突但是没有提交。然后尝试将v1.2重新合并到主干中。不行。所以我承诺主干更改,然后合并v1.2,并工作。我对这个问题做了编辑以反映我现在的位置。 – 4thSpace 2009-12-03 21:43:14

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(如果你拥有的外部)。现在,为了使合并要在资源库中的树干,你需要做的:

svn commit -m "my commit comment" 

您选择遇到的问题是,你的前几个正常,但随后的步骤didnt提交合并的更改,而是试图合并再次。所以现在你可能在后备箱里疯狂了。你可能需要对最后一个好的副本进行回复,然后再次合并并提交。

+0

是的 - 它显示该分支中的r104。 – 4thSpace 2009-12-04 03:49:25

+0

我会在下一轮尝试它,因为在时间方面,我删除了干线内容,将v1.2复制到干线并提交。大锤,但geez!下次更好运气。 – 4thSpace 2009-12-04 05:31:52

1

你已经告诉Subversion将分支的变更合并到修订版104和105中;你忽略了在r104中做出的改变。

尝试

 
svn merge -c 104,105 file:///Developer/Main%20Repository/myproject/branches/v1.2 

,并确保你有一个主干工作副本。