不同的分布式版本控制系统一起工作
我的办公室有一个中央Source Safe 2005安装,用于源代码控制。我无法更改办公室在服务器上使用的内容。
我使用笔记本电脑进行开发,并且希望拥有一个可以与中央服务器(如果可用)同步的其他本地源代码控制存储库,无论该中央提供者是什么。发出请求的原因是,我可以为客户演示文稿维护一个本地稳定的分支/版本,同时继续进行开发,而不必跳过火圈。另外,作为顾问,我的客户可能会要求我使用他们的源代码控制提供程序,而这里的灵活性将使生活变得更轻松。
现有的任何分布式源代码控制客户端都可以处理吗?
解决方案
回答
我们应该能够签出代码的当前版本,然后在其周围创建一个git存储库。更新它并将其提交到本地git存储库应该很容易。就像克隆它一样。
唯一的问题是,我们需要通过弄乱适当的忽略文件来让它们彼此忽略(我已经做了一些类似于SVN的操作)。我想让SourceSafe让我们忽略一切。而且,我们需要两次执行某些操作(例如,告诉两个用户都在删除文件)。
回答
好吧... KernelTrap与此有关。看起来我们可以使用vss2svn将源代码安全存储库通过管道传递到Subversion存储库中,然后使用非常好的git-svn拉入本地git存储库。
我认为使用此方法将提交回VSS的过程不是一个平稳,自动的过程。
回答
有一天,我在一家使用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目录,更新并提交。
但是请记住,在某些情况下值得我们花时间进行此操作。
回答
HanselMinutes的这一集恰好涵盖了我希望听到的内容。显然,可以在本地使用Git,然后根据需要将其添加到外部subversion / vss存储库。他们在14到15分钟内谈论它。