2011-02-05 73 views
2

我发现自己经常与人谁不特别版本控制精明的工作,所以下面用例颠覆将是非常有用的,如果我知道魔术话。颠覆:有(临时)出去了版本控制的是合并文件

  1. 我承诺我的最新版本,请注意版本[R
  2. 我通过电子邮件发送文件,开了一个合作者,并继续工作,可能要投入更多的变化,因为我去
  3. 当我得到的文件从合作者回,我做了一个从R到他们的版本的变化3路合并到我的工作副本

似乎分支等是有点重量级,但我打开任何建议的好方法得到工作完成。

回答

1

有可能是一个简单的解决方案,但这应该工作:

    与你的工作拷贝干净的(即没有本地更改)
  1. 回到先前注意到修订R(也许
  2. 开始它在电子邮件某处写)
  3. 在文件复制你的合作者的更改的文件在工作拷贝2 R
  4. 更新到最新版本,在
  5. 合并更改提交合并CH时代
+0

像一个冠军! – 2011-02-05 18:06:24

+1

@Aleks:您可以考虑通过在分数下面勾选勾号来选择和/或接受我的答案(或其他)作为正确的答案。您可以在[FAQ](http://stackoverflow.com/faq#howtoask)中了解更多关于该网站的工作原理。哦,欢迎! – 2011-02-05 18:19:14

3

看起来@Martinho Fernandes给了你一个很好的答案,但我想指出在Subversion中分支并不重量级。这是一种便宜,简单,恒定的时空复制操作。使用分支可能使过程少一些容易出错:

  1. 当你想发送给你的贡献者,svn cp代码到一个新的分支。如果您按照"canonical" repository structure,这将是类似svn cp http://your-repository.com/trunk/ http://your-repository.com/branches/some-name
  2. (可选)使用svn export获取您的代码的副本以提供给您的贡献者。
  3. 继续在干线工作。
  4. 当您从您的贡献者处获得代码时,请确保您已检查任何对主干的更改,否则下一步将无法按预期工作。
  5. 从您的工作副本的根目录svn switch http://your-repository.com/branches/some-name
  6. 复制你的贡献的代码在你的工作拷贝,并检查它。
  7. svn switch http://your-repository.com/trunk
  8. 现在,您合并的最后分支的更改提交到工作副本。如果你不习惯,这可能是最棘手的一步,但一旦你知道如何,这是非常简单的。请参阅this documentation on merging开始。

我知道这看起来不像使用分支和合并一样简单,但是一旦你掌握了它,你可能不会想要以任何其他方式做这个事情(当使用Subversion时,在最小)。