5

我需要在一周内从两台计算机上编写代码。同步两台计算机(mac)的最佳方法是什么?我已经开始使用源代码管理,例如 SVN。它工作得很好,除了有时我签入我想要同步但它们不编译的代码,并且它会干扰团队中从事同一项目的其他人。

我不想使用分支。当我从办公室回家时,每晚都进行分支是没有意义的。

4

13 回答 13

5

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

这里有关于如何在 subversion 中分支的描述。

于 2010-02-20T18:38:58.407 回答
5

其他好方法是MercurialGIT

它们与您要完成的任务相似,只是它们是 DSCM(分布式),因此您无需为此设置整个服务器。

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

于 2010-02-20T18:39:20.500 回答
3

使用 Microsoft Foldershare(现在称为 Live Sync)之类的东西。它是免费的,并且在 Mac 上运行良好。

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

于 2010-02-20T18:52:14.293 回答
2

使用 git。您拥有版本控制系统的所有优势,但可以在本地工作。如果您的项目代码已经在 SVN 中,则可以使用 git-svn 使 git 和 svn 协作。这是一个易于遵循的 git-svn 示例指南

使用 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 更新您的本地存储库,然后提交
于 2010-02-20T22:26:11.023 回答
2

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

于 2010-02-20T18:46:35.163 回答
2

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

于 2010-02-20T18:49:51.960 回答
2

我想很多人都把这件事复杂化了。解决方案很明显。只需使用便携式 USB 设备并将结帐目录放在那里。对于您给定的场景,这将很有意义。

于 2010-02-20T19:08:52.590 回答
1

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

于 2010-02-20T18:40:05.210 回答
1

使用Fuse 和 sshfs将工作机器上的相关目录挂载到家里的机器上。

于 2010-02-20T21:32:34.383 回答
0

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

于 2010-02-20T18:39:05.507 回答
0

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

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

我喜欢 Microsoft Live Mesh,它易于使用,您只需选择要同步的文件夹即可。

于 2010-02-20T19:07:33.710 回答
-2

有效的作弊解决方案:

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

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

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

编辑:哎呀,对不起,错过了团队方面。电子邮件解决方案仍然有效,但最好使用团队源代码控制,因为多个人正在修改相同的代码。我发现TFSVisual Source Safe并不是完美的解决方案。源代码控制系统的问题在于掌握它们的学习曲线。不幸的是,在团队环境中,这是一项必要的任务。

于 2010-02-20T18:53:06.287 回答