关于dvcs:不同的分布式版本控制系统一起工作

关于dvcs:不同的分布式版本控制系统一起工作

Different Distributed Version Control Systems working together

我的办公室有一个中央Source Safe 2005安装程序,可用于源代码控制。我无法更改办公室在服务器上使用的内容。

我在笔记本电脑上进行开发,希望拥有一个可以与中央服务器(如果有)同步的其他本地源代码控制存储库,而无论该中央提供者是什么。发出请求的原因是,我可以为客户演示文稿维护一个本地稳定的分支/版本,同时继续进行开发,而不必跳过火圈。另外,作为顾问,我的客户可能会要求我使用他们的源代码控制提供程序,而这里的灵活性将使生活更加轻松。

任何现有的分布式源代码控制客户端都可以处理吗?


好吧……KernelTrap对此有所帮助。看起来您可以使用vss2svn将源代码安全存储库通过管道传递到Subversion存储库中,然后使用非常好的git-svn拉入本地git存储库。

我认为使用这种方法对VSS的提交不是一个平滑,自动的过程。


您应该能够签出代码的当前版本,然后围绕它创建一个git存储库。更新它并将其提交到本地git存储库应该很容易。就像克隆它一样。

唯一的问题是,您需要通过弄乱适当的忽略文件来使它们彼此忽略(我对SVN做过类似的事情)。我想让SourceSafe让您忽略一切。并且您将需要执行两次某些操作(例如告诉两个操作都在删除文件)。


HanselMinutes的这一集恰好涵盖了我希望听到的内容。显然,可以在本地使用Git,然后根据需要将其附加到外部subversion / vss存储库。他们在14到15分钟内谈论它。


有一天,我在一家使用VSS的公司(以及在其他使用其他不太为人所知的SCM的公司)工作,但我更喜欢使用SVN(有一天我将尝试GIT)进行积极的开发,这对我和我的团队来说都是如此。 >

首先,这种情况只是一个好主意,如果对VSS的提交数月以来很少,因为与其他SCM(比VSS)一起工作会给您带来更大的灵活性,但是从SVN到VSS的混合在时间上很昂贵。 >

我的解决方法是:

VSS-> SVN:我有Linux脚本(或ant脚本或XXX脚本),该脚本从VSS的当前更新目录工作复制到当前SVN,然后刷新SVN客户端并更新/合并/提交到SVN。这样,您就可以从使用VSS的公司其他公司的变更中得到更新。

SVN-> VSS:这样,您需要将所有修改文件签出到VSS,然后可以简单地使用反向脚本从当前更新SVN目录复制(忽略.svn目录)并复制到当前更新VSS目录,更新和提交。

但是请记住,在某些情况下值得您花时间做这件事。


推荐阅读