2011-10-06 48 views
3

在工作中我们使用Subversion,但因为没人理解如何分支我们的“分支”,涉及复制整个代码库并将其作为单独的存储库处理 - 这意味着我们对“分支”分支所做的任何更改都需要被复制/粘贴到主开发(“trunk”)分支,以便它们保持同步,并且我们不能使用任何内置的合并工具(我们手动使用WinMerge或类似工具来查找已更改的行)。没有人想花时间学习如何使用SVN的分支功能,而是鼓励使用这种策略作为替代方案。远程使用Mercurial和SVN吗?

由于我无法说服其他人看到真正的分支,我正在考虑为自己做些事情,以使合并更轻松。我曾经想过看一下Mercurial一段时间(我之前在我的Mac上使用Git; Windows7在工作),作为批发的SVN替代品,如果我可以买入的话。

我的问题是这样的:首先,如果我必须将更改推送到两个SVN存储库,难道在本地机器上使用Mercurial会很困难吗?在本地我可以使用分支来轻松地合并代码,保持SVN回购不同将简单地将分支推送到补丁代码,并将开发分支(在合并之后)分支到SVN中的开发分支, ?

二,在我介绍Mercurial之前有没有更好的方法来做到这一点?我试图告诉我的同事使用SVN的分支,但我得到的答案是“现在可以工作”,因为没有人想花时间学习SVN分支,并且100%诚实,我从未使用过SVN分支我自己,所以我不知道它是多么容易/难以使用,并且不想冒险尝试分支和搞乱某些东西。

+0

之间的合并我认为复制(虽然“便宜”复制)是做SVN分支反正的标准方式。请注意,我不是一个大的SVN用户,但这就是我的工作场所的一些项目的分支,以及svn书籍如何定义它。 – icabod

+0

也许,我们并没有使用SVN的分支,我的意思是我们实际上正在复制文件(基本上是通过SVN Export来获取所有文件,然后重命名文件夹,然后将其重新命名为SVN并将其视为完全不同的存储库) 。 –

+0

@WayneM你是否采取相同或不同的svn回购? – Rudi

回答

2

首先,说实话,如果你得到了关于SVN分支最基本的东西的这种回应,你真的认为你可以说服他们切换他们的整个知识库系统吗?

当然,“不想冒险尝试分支和搞乱某些东西”是SVN的典型特征,而Mercurial做得更好;因为你总是在本地存储库工作,试验和犯错误很便宜,如果你搞砸了,你可以制作一个新的克隆。除了必须保存大量二进制数据的存储库(例如艺术存储库)之外,我肯定会推荐Mercurial over SVN。

现在对于你的问题,

原则上,你可以使用相同的工作目录的Mercurial库和SVN仓库。您可能希望将.hg和.svn添加到SVN和Mercurial的忽略过滤器,当然,您提交给Mercurial的更改不会自动提交给SVN。但是,将Mercurial用作本地开发的暂存器可能很方便。如果你有两个SVN签出,你可以在两个Mercurial克隆之间进行数据交换,方法是将数据从一个拖到另一个。

说实话,为了回应你的第二个问题,我认为'更好的方法'就是学习SVN的分支和合并机制。在SVN上运行Mercurial可能非常麻烦,而且可能比它的价值更麻烦。如果你想尝试SVN合并,你可以做一个测试SVN仓库来练习分支和合并。

如果你的同事决定使用SVN,并且不会对Mercurial感到困扰,那么你可能只需要忍受它。也许有一些安慰,事实上有很多类似的情况,我个人喜欢尽早停止使用SVN,但仍然在我以前和现在的公司中,我不幸陷入了困境。虽然在我现在的公司,他们可以在将来某个时候改变它,我们已经在使用git来进行外部项目。

我应该提到的还有一件事:有一些像hgsubversion扩展这样的工具,它允许你在SVN上使用Mercurial,将所有提交转换为Mercurial提交。但我不会推荐,特别是如果你是新手Mercurial用户,SVN和Mercurial之间根本的不匹配意味着如果你想推回你的修改,分支并不是真的可行,你必须随时重新设置你可以很容易地结束数据丢失。

+0

合并变更集**将被**推送到SVN,没有问题。在分支中乘以头将是头痛,是的,但工作回购将始终只有代码提交和合并提交 –

1

注:

svn merge URL1 URL2 

甚至可以用于无关网址(不同回购)。合并在一个回购只是一个约定和工作流程

如果我不得不将更改推送到两个SVN存储库,难道我的本地机器上使用Mercurial?

没有,始终是透明的

  • Repo1为MainSVN拉MainSVN +拉Repo2 +合并头+推
  • MainSVN Repo2为DevSVN(拉DevSVN +推DevSVN)

在我介绍Mercurial之前,有没有更好的方法来做到这一点?

见我开始注意 - 你至少可以尝试本地SVN回购