我在分支中包含一些功能的最新源代码。我想将它们合并到主干源。
1)我不能在本地拉动源。因为,我必须在不同的不同位置合并30多个来源
2)我无法删除主干源位置并使用Copy To
选项移动分支源。
所以,我只是想通过单独提供Source和Target位置来合并源,而不需要在本地提取源。或者有任何自动化方式吗?
我在SO中看到很多与此相关的帖子。他们都没有解决我正在寻找的背景。
答案 0 :(得分:2)
我不认为这是可能的,但这是件好事。你真的想要所有这些来源的无意识的自动合并(完成提交)?在本地副本中合并的重点是,您可以完全检查所有内容,并解决如果您在多个分支中的相同位置发生更改所会产生的所有冲突....
答案 1 :(得分:2)
正如this togoise svn文章
所指出的那样... merging always takes place within a working copy.
您可以使用svn merge --accept theirs-full URL1 URL2 WCPATH
来解决与给定网址版本的所有冲突。
使用svn delete
删除的来源仍将是历史记录的一部分。
答案 2 :(得分:1)
不,你问的是不可能的。合并发生在您的工作副本中。有几个原因可以保持这种方式:
如果必须合并30多个来源,那么最好选择使用命令行客户端自动化。我就是这样做的(在bash中,你必须把它翻译成.bat或者你喜欢的任何东西):
REPOS= \
http://... \
http://...
for f in REPO; do
svn co REPO/target
svn merge REPO/source target
svn commit -m "Merged target into source" target
rm -r target
done
提示:
svn help <command>
查看如何调用每个svn
命令。svn merge --dry-run
而不使用svn commit
,以确保您可以在没有任何冲突的情况下进行合并(svn commit
将失败,除非您先解决冲突。)