远程工作并与SVN断开连接

时间:2013-06-10 20:11:05

标签: git svn

想象一下这个世界上的两个物理位置:

  1. 使用主svn存储库 - 但没有互联网。
  2. 主存储库文件的副本;但目前没有任何VCS。
  3. 现在作为程序员,我的工作是在这两个地方工作(在同一个功能上),主要是在第二个站点,每周一次或两次在第一个站点。

    要在这两个地方之间同步文件,我将更改的文件刻录到CD,转到其他位置并仔细合并每个文件。此外,不确定它是否相关,但还有其他程序员与我一起工作。有些站点1作为主要办公室,有些站点2作为主要办公室。

    我无法改变站点1中的主存储库是svn的事实,但这看起来像是一个分布式环境,那么我如何使用git在这些站点之间更轻松地移动和合并文件?

3 个答案:

答案 0 :(得分:1)

您可以考虑使用svn本身。

  1. 在站点2中创建一个新的SVN仓库,并从站点1获取转储。
  2. 提交对网站2回购的更改
  3. 从CD /便携式硬盘驱动器上的repo 2转储(导出,而不是结帐)到站点1
  4. 在1号站点,结帐
  5. 将文件从repo2合并到repo1(您可以通过使用好的工具自动完成大部分工作)
  6. 登录网站1
  7. 从站点1获取新转储并在站点2创建新的仓库(无需合并回站点1)。
  8. 即使您使用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>