8

我正在指导一个高中机器人团队的编程小组。我想建立一个源代码控制存储库,以避免手动复制用于共享/备份的目录并手动合并这些目录的混乱。构建位置通常没有网络访问权限,因此这导致我使用了我不熟悉的分布式版本控制系统 (DVCS)。

最大的要求如下:

  1. 适用于 Windows XP 和 Vista。(绝对必须)
  2. 可以在本地提交更改。(似乎所有 DVCS 都是这种情况)
  3. 无需网络访问即可合并来自多台计算机的存储库。(可能通过将存储库存储在 USB 驱动器上并将驱动器交换到另一台机器,然后从那里合并)

它还应该易于学习和使用,最好是通过图形 UI,因为我正在与从未使用过版本控制系统的高中生一起工作。

关于哪种 DVCS 最适合此的任何建议。

编辑:

感谢您的回答。Mercurial 看起来不错,但它是否支持将存储库从一个目录合并到另一个目录,还是我必须设置一个本地网络才能合并?

4

6 回答 6

6

Git 很可爱,但它对 Windows 的支持极其松懈(即使使用MSysGit 也是如此)。我会推荐 Mercurial。我自己并没有真正使用过它,但我听说它的 Windows 支持非常有用。此外,对于来自传统 VCS(如 SVN)的人来说,它的学习曲线稍微容易一些。

于 2008-10-17T16:29:34.050 回答
5

Mercurial在 Windows 和 Linux 上都非常易于使用。 TortoiseHg是一个集成到资源管理器中的 Windows gui 前端;它工作正常。两者都是开源的。据我了解,在 Windows 下使用 Git 没有那么简单。

感谢您的回答。Mercurial 看起来不错,但它是否支持将存储库从一个目录合并到另一个目录,还是我必须设置一个本地网络才能合并?

Mercurial/TortoiseHg 将执行此操作(以及更多),所有其他分布式版本控制工具(据我所知)也将执行此操作。我相信它会解决你的问题。它是一个 DVCS,并且与 TortoiseHg 一起,它很容易在 Windows 上使用。其他分布式版本控制工具可能也可以工作(例如 bzr),但我对它们的经验较少。Subversion (svn) 是一个中心化的版本控制工具。通过一些变通方法,您可以让它在您的环境中运行,但它实际上并不能解决您想要解决的问题。我不知道为什么其他响应者建议这样做。

于 2008-10-17T16:30:18.387 回答
2

我想Mercurial很适合您的需求。

  • 它是用 Python 编写的,因此在 Windows 下运行它不会有任何问题。
  • 使用补丁或捆绑包可以轻松地在本地应用更改
  • 有几个可用的GUI 工具(寻找 TurtoiseHG)

Mercurial 是我个人使用的 VCS。真的很容易学。您肯定想通过 Git 尝试它,因为它对 Windows 的支持要好得多。

于 2008-10-17T16:38:37.950 回答
2

我喜欢集市:http ://bazaar-vcs.org/

它拥有您所要求的一切,而且非常易于使用。

于 2008-10-17T18:14:29.643 回答
2

感谢您的回答。Mercurial 看起来不错,但它是否支持将存储库从一个目录合并到另一个目录,还是我必须设置一个本地网络才能合并?

是的,它确实。 所有的 DVCS 都支持这一点。这与从服务器合并之间的唯一区别通常是您将适当的命令传递给本地文件路径而不是 URL。

在 Mercurial 中,它看起来像这样:

假设您有两个存储库,一个在硬盘上 (C:\Project),另一个在闪存驱动器上 (F:\Project):

cd C:\Project

hg pull F:\Project

同样,如果您在同一系统上有两个存储库:

cd C:\Project

hg pull C:\Project1

如果需要合并,它将创建两个“头”并要求您将它们与hg merge.

added 1 changesets with 1 changes to 1 files (+1 heads)

(run 'hg heads' to see heads, 'hg merge' to merge)

请注意,这与从服务器中提取和合并相同。

于 2008-10-17T18:42:43.940 回答
0

我发现 SVN 的设置和使用非常简单,尤其是对于单个用户!

我发现非常有趣的一件事——ssh+svn 协议使用 SSH 在远程系统上运行命令行的能力来实际启动 SVN,因此在为您的存储库创建目录之外实际上根本没有在服务器上进行任何设置。

如果你不喜欢 CLI(Windows 上的 TortiseSVN),SVN 有很多 shell——所以它和其他任何东西一样容易使用。

于 2008-10-17T16:36:32.697 回答