什么是在计算机之间同步代码文件的好方法?

时间:2010-02-20 18:36:28

标签: version-control synchronization sync

我需要在一周内从两台计算机进行编码。同步两台计算机(mac)的最佳方法是什么?我已经开始使用源代码控制,比如SVN。它工作得很好,除非有时我检查我想要同步的代码,但是它们不能编译,它会干扰团队中处理同一项目的其他人。

我不想使用分支。我每天晚上从办公室回家时分店是没有意义的。

13 个答案:

答案 0 :(得分:5)

您可以将代码检查到分支而不是主干。然后,您可以获得版本控制的所有好处,而不会因编译错误而打扰其他人。

有关如何在subversion here中进行分支的说明。

答案 1 :(得分:5)

其他好方法是MercurialGIT

它们类似于您要完成的任务,除了这些是DSCM(分布式),因此您不需要为此设置整个服务器。

确保在检查代码之前进行更新,并在更新后确保项目构建。

答案 2 :(得分:3)

使用类似Microsoft Foldershare(现在称为Live Sync)的内容。它是免费的,适用于Mac。

不要为此使用源代码管理。在我的Mac上,我过去使用过Microsoft的FolderShare,效果非常好。每当我保存文件时,在2-3秒内,更改将传播到所有同步的计算机。唯一需要注意的是,没有云,因此两台(或至少一台永久性)机器必须同时在线。 FolderShare不适用于巨型MP3库,但它适用于代码树。

答案 3 :(得分:2)

你试过Dropbox吗?它基本上设置了一个文件夹,它将通过运行应用程序的多台PC,并保存文件的版本,但我从来没有在编程环境中厌倦

答案 4 :(得分:2)

使用mercurial (hg)或git,您不需要版本控制服务器。您可以通过usb密钥,每封邮件发送的捆绑包或临时启动的服务器(“hg serve”)进行同步。这样,没有人会知道任何版本控制服务器,你不会干扰你的团队成员。 hg和git都可以与subversion相互作用(我不知道他们做得多好)。

答案 5 :(得分:2)

我认为很多人都过于复杂。解决方案很明显。只需使用便携式USB设备,并在那里有您的结帐目录。对于您的给定场景,这将非常有意义。

答案 6 :(得分:2)

使用git。您拥有所有版本控制系统的好处,但在本地工作。如果您的项目代码已经在SVN中,则可以使用git-svn使git和svn协作。 Here's an easy to follow guide on git-svn by example

使用git很容易分支,所以你需要经常分支。 Git分支与SVN分支不同:它们存储在本地,它不仅仅是SVN中整个项目的副本。最后,在两台计算机中设置Dropbox,以便您的更改自动同步。

所以你的工作流程可能是这样的:

  • git-svn clone http://mysvnrepo local_dir获取本地存储库
  • git checkout -b my_new_branch当您想要处理新功能时
  • 根据需要随时检查您的代码,而不必担心破坏其他人的代码
  • 感谢Dropbox
  • ,本地更改会自动保持同步
  • 当您的代码准备就绪后,使用git merge my_new_branch
  • 将其合并到主分支
  • 将您的更改提交回subversion存储库,首先使用git-svn rebase更新本地存储库,然后使用git-svn dcommit提交

答案 7 :(得分:1)

在将代码提交到SVN之前,应始终确保代码符合要求。在提交之前,您应该进行更新并执行任何必要的合并。在我知道的一些团队中,提交无法遵守的代码是很好的。

答案 8 :(得分:1)

使用Fuse and sshfs在家中机器上的工作机上安装相关目录。

答案 9 :(得分:0)

尝试在svn存储库中使用分支。或者,如果您有MobileMe订阅,则可以使用iDisk。

答案 10 :(得分:0)

如果您不想干扰其他开发人员需要编译的代码,您应该遵守一些简单的规则。

  • 创建您自己的SVN branch,只有您处理并提交
  • 每当您的代码的一部分准备好与其他开发人员共享(或准备发布)时,将更改合并回主分支(“trunk”)
  • 如果您不想使用分支:确保您的程序在提交之前编译并且单元测试成功。这样,与其他人的代码冲突就会减少。

答案 11 :(得分:0)

我喜欢Microsoft Live Mesh,它易于使用,你只需选择一个文件夹进行同步,你就可以了。

答案 12 :(得分:-1)

有效的骗子解决方案:

  1. 我的首选:简单的电子邮件, 我只是经常点击一个文件夹并通过电子邮件发送给自己。 如果我的电脑死了,没问题,因为我也用 POP3帐户的“在服务器上保留邮件”。 因此,我得到了备份和版本控制。

  2. 使用闪存驱动器。从闪存驱动器工作 并备份到你的硬盘上,反之亦然。

  3. 上述两种方法对单个开发人员非常有效 使用多台计算机。

    编辑:哎呀,抱歉,错过了团队方面。 电子邮件解决方案仍然适用于团队 源控制最好是因为多人 正在破坏相同的代码。我找到了TFSVisual Source Safe不完美的解决方案。 源控制系统的问题是 学习曲线来掌握它们。不幸, 在团队环境中,这是一项必要的任务。