首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颠覆鸡和蛋的问题

颠覆鸡和蛋的问题
EN

Stack Overflow用户
提问于 2010-09-22 01:25:56
回答 1查看 205关注 0票数 1

我有一个包含一个主干和一个分支的SVN (1.6.12)项目。我正在尝试学习合并是如何工作的。

代码语言:javascript
复制
project
+ trunk (14)
+ branches
  + test-branch (14)

括号中的数字是修订号。我使用命令"cd branches/test-branch; svn merge svn+ssh://.../trunk“执行从主干到测试分支的合并,并使用"svn commit -m 'Merged trunk'”提交更改。我的目录结构现在如下所示:

代码语言:javascript
复制
project
+ trunk (14)
+ branches
  + test-branch (15)

然后,我尝试在主干和测试分支之间进行重新集成合并:"cd trunk; svn merge --reintegrate svn+ssh://.../branches/test-branch“。SVN抱怨说trunk需要在15版本,我做了一个"svn update“,目录结构是这样的:

代码语言:javascript
复制
project
+ trunk (15)
+ branches
  + test-branch (15)

凉爽的!准备好重新整合。我再试一次"svn merge --reintegrate svn+ssh://.../branches/test-branch“。现在SVN抱怨我需要在重新集成之前将所有的主干更改合并到分支中。主干是15,但测试分支只合并到14。

我该如何解决这个问题?如果我合并到分支中,然后提交,那么分支将是16。我尝试在主干上使用"svn switch“,但我得到了相同的错误。

存储库是14的原因是因为我一直在主干和测试分支合并之间来回切换。精神错乱的一种定义是重复相同的过程,并期待不同的结果:-)。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-22 01:49:26

听起来你在分支和标签上面有一个结账,这就是你现在应该做的。

要解决此问题,请确保您拥有just主干的单个工作副本:

代码语言:javascript
复制
svn co <server>/svn/repos/trunk

如果你想从那里创建一个分支,你应该创建一个服务器端副本(否则它会把你的工作副本复制到那个分支,你不会想要的):

代码语言:javascript
复制
svn copy <server>/svn/repos/trunk <server>/svn/repos/branches/test-branch

现在,您可以切换工作副本以在分支上执行一些工作:

代码语言:javascript
复制
svn switch <server>/svn/repos/branches/test-branch

现在,您可以将更改从分支合并到主干,也可以重新集成分支。在重新集成之后,您应该删除分支(该命令将在分支的末尾执行一次,有关详细信息,请参阅svnbook )

要执行此操作,请首先切换回中继:

代码语言:javascript
复制
svn switch <server>/svn/repos/trunk

然后合并一个修订版:

代码语言:javascript
复制
svn merge -c <revnumber> ^/branches/test-branch

或重新整合分支:

代码语言:javascript
复制
svn merge --reintegrate ^/branches/test-branch
svn delete <repos>/svn/repos/branches/test-branch -m "Delete branch"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3762813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档