2010-01-19 106 views
13

我正在尝试将我的开发分支合并到我的回购软件的主干中。步骤我把:Eclipse合并到分支中

  1. 切换到主干
  2. 检查,这是最新的,解决任何冲突
  3. 转到Team->合并
  4. 选择网址:开发分支
  5. 开始修订:当分支产生
  6. 最终修订版修订:HEAD
  7. OK

这应该做的魔力 - 它开辟了syncronize鉴于这是很好的,显示我所有的冲突,但问题也有发生:

在比较编辑器我看到两个文件: 本地文件|远程文件(306)

这真的很奇怪,远程文件的修订号实际上是工作副本(trunk)中的文件之一,内容也是如此。本地文件具有分支中文件的内容。

现在箭头正确显示我从左到右合并(分支到主干)。这也发生在我点击确定时。

但我只能移动从右到左的变化!这不是我想要的 - 我不想用树干的旧内容覆盖分支中的更改。我想将内容从左侧(分支)移动到右侧(中继线)。但我甚至无法在正确的文件中写入。

我不知道它为什么写远程文件呢?它清楚地显示了远程文件窗口中的工作副本文件,分支中的文件(用于合并)显示在本地文件中。

Subversive中的一些错误?

THX, 马丁

回答

6

梅杰斯是从来没有容易颠覆(如在这个古老SO question提及),所以可以在外部做合并(或Subclipse的),会更容易在这里。

如果您的客户端和存储库都至少位于SVN1.5中,Subversive新的合并功能会更好,但仍然有危险,如this thread所示。

由于Subversive已被修改为SVN 1.5,整个合并行为已经改变。我真正喜欢的一件事是能够选择我想要的更改,将其应用于我的工作副本,然后提交主干。
颠覆现在不再这样做,而是强制所有的变化到你的工作副本,然后你选择放在后备箱里。

这不仅是不受欢迎的行为,但它也是危险的(如果你忽略无论如何还原的可能性)。我喜欢犯我知道工作的事情。我们有一个发布分支,可以获取可能需要或不需要迁移到主干的更改。

+1

这是true..it的那种可怕的是,合并之前发生的(没有用户交互)到您的工作副本。然后,您必须与干线进行比较并恢复不需要的更改。 我喜欢它倒过来,(现在正试图版本),其中合并到工作拷贝发生,用户可以选择合并这件事之前。 – martin 2010-01-21 10:48:31

2

起初,这似乎很神秘,现在我将提供一个体面的刺戳更新每个人的答案。这点使用SVN颠覆客户端的Eclipse合并:

你做正确的合并,在树干开始,然后你的本地分支下指向您的文件。您的文件在“团队同步”选项卡下的“文本比较”窗口中打开。如果您在左侧的导航栏中看不到冲突,那么您的合并刚刚发生。是的,这是令人困惑和不直观的。

什么文本比较窗口提供您是要撤消更改的能力(或者可能已经侵入了您的合并文件偷着任何其他人)在提交之前。请记住,你是拉从分支机构的文件中,这样的想法是,该分行的文件是在树干但在一种虚拟无人过问,直到最终提交的,在这里改变或撤销不必要的更改引用了分公司(显然)的文件。这就是为什么你只有一个单向管道(中继到分支)来覆盖通过工作副本合并到Trunk中的更改。你的合并已经发生,但还不是很正式。

如果一切理所应当,右键单击导航窗口中的文件(左窗格中我的Eclipse赫利俄斯安装),然后从下拉接受。然后再回到主代码查看选项卡(在我的安装中它是PHP,但它可能是您正在使用的任何内容),然后将该文件提交给Trunk。

如果你想测试此,执行文件“原样”的观点在树干提交之前,你应该看到你的变化反映了那里,如果你已经正确的合并。这似乎是它在OSX Snow Leopard Macbook Pro上为我工作的方式。不确定Windows或Linux人员是否一样。我认为它本质上是相同/相似的过程。

0

很容易检查

退房主干输出作为...给不同的项目名称。

现在你有两个本地的工作拷贝,你想承诺躯干和你工作的分支上且其变动已comitted到仓库。 现在右键单击主干项目(我的意思是项目,而不是单个文件) - 合并 - 选择分支项目(再次,项目) 接受所有更改本地副本 提交你需要的主干用于 一切正常,再次删除干线和不断分支工作

尤其是分支机构,这似乎超级容易和工作就像一个魅力对我来说

相关问题