想象一下这个世界上的两个物理位置:
现在作为程序员,我的工作是在这两个地方工作(在同一个功能上),主要是在第二个站点,每周一次或两次在第一个站点。
要在这两个地方之间同步文件,我将更改的文件刻录到CD,转到其他位置并仔细合并每个文件。此外,不确定它是否相关,但还有其他程序员与我一起工作。有些站点1作为主要办公室,有些站点2作为主要办公室。
我无法改变站点1中的主存储库是svn的事实,但这看起来像是一个分布式环境,那么我如何使用git在这些站点之间更轻松地移动和合并文件?
答案 0 :(得分:1)
您可以考虑使用svn本身。
即使您使用git,如果存在冲突,也需要手动干预。如果您使用一个好的比较合并工具,合并不是那么耗时。您可以编写脚本来自动执行所有步骤。
答案 1 :(得分:1)
Subversion 主要是 与存储库一起使用。 Subversion被设计为在短期内没有存储库连接,但最终需要存储库。否则,您无法提交更改。这可能一两天都不错,但如果你谈论几周或几个月,这是一个主要问题。
一种解决方案是转移到分布式存储库模型。使用git-svn将允许您从Subversion存储库签出,并将您的更改推送回该存储库。您的合并问题(您的工作和遥控器之间几周没有同步),但至少您将能够对您的工作使用版本控制。
是否有可能获得站点使用主svn存储库 - 但没有互联网移动到Git?大多数人不了解Git的原因是你不一定有一个中央存储库,但是你可以拥有多个存储库,并且可以推动它们之间的变化。例如,您可以使用电子邮件将更改推送到Git存储库。通过这种方式,您的代码更改可以在您的非现场时提供。或者,您可以将代码更改推送到同事的Git存储库,并且该同事可以将您的更改推送到主存储库。
Git比Subversion复杂一点(毕竟,在使用Git时,你必须至少有一个额外的存储库),但在这种情况下,使用分布式版本控制系统可能会让每个人的生活变得更加轻松。
答案 2 :(得分:0)
您可以在您的计算机上使用git,然后使用git-svn将其与SVN repo同步。我不确定这是否会让你的工作流程变得更容易......我的意思是,如果你喜欢git,你将能够在大多数时间使用git进行开发,但无论如何,同步回SVN将是一种痛苦。 / p>