3

有一些类似的问题,但其中一些已经有 5 年历史了(所以可能会有更好的新东西),而其他的并不能满足我的所有要求。

我正在寻找有关版本控制软件的建议。

  • 必须免费用于商业用途。
  • 所有开发将由一个人完成。
  • 所有开发都将在一台机器上完成 - 64 位 Windows 7 机器。
  • 许多小项目——每个项目都很小——只需要几个星期的工作。所以启动一个新项目应该很快。
  • 应该有一个用于签入的命令行。
  • 应该有一种图形方式来查看文件的版本历史记录 - 即我输入“history file.cpp” - 它应该给我一个包含该文件所有版本的窗口和一个简单的方法让我做一个视觉差异(带有pluggable difftool - 我喜欢历史上任何两个版本的windiff)。
  • 这项工作将涉及不同的编程语言(C、C++、Java、VBScript 等)。
  • IDE 集成根本不需要。
  • 创建标签/标签应该快速简单。
  • 永远不会进行合并和分支,因此与这些相关的任何功能都不相关。
  • 永远不需要解决冲突。
  • 基本东西的快速学习曲线。
  • 应该有一个命令来签入一个目录下的所有签出文件,包括子目录。这应该不会在运行命令时引发 UI 的情况下发生。即所有文件共有的注释应该从命令行接受。

即 checkin -r *.cpp -c “添加了新的东西”。

  • 我喜欢我使用的 perforce 客户端中的一些功能
    • 虽然有一个结帐命令,但我也可以在不结帐的情况下强制保存文件并继续工作。然后只运行一个命令搜索目录/子目录中的所有文件,这些文件已被强制保存并为您签出。
  • 不应该要求我在存储库中添加新目录。在目录中添加文件应该会自动添加目录 - 即我需要在新目录中创建一个新文件 A.java。我会做

    md new
    cd new
    // edit and create the file A.java
    // create and checkin the new file A.java into the repository 
    // without complaining that the directory doesn't exist in the repository.
    
  • 应该很容易备份。即每周一次,我使用 SyncToy 将内容备份到外部硬盘。我不介意使用不同的方式将版本控制存储库备份到外部硬盘中,但备份应该很简单——万一我的笔记本电脑崩溃了,我应该能够从备份中重新创建所有存储库,包括版本历史记录。

  • 我正在寻找轻量级的东西。即不需要我设置单独的服务器等。

在多开发人员大型项目环境中的不同时间,我使用过 perforce 和 CVS - 非常喜欢 perforce。从来不喜欢 CVS,但使用 CVS 的 Tortoise UI 让它可以忍受。

然而,对于这些版本控制系统,我一直是用户——从来不是管理员(即开发人员不管理版本控制系统——有单独的版本控制专家)——即我从未创建过新的存储库——所以我的知识只是客户端的东西。

我知道任何一个系统都可能无法满足我的所有要求 - 但尽可能接近的东西会很棒。

4

2 回答 2

2

[免责声明:我将 SVN 用于我的工作和个人项目,并且没有使用 Mercurial 的经验。]

大多数流行的版本控制系统都能满足您的大多数需求。

在阅读有关不添加目录的项目之前,我将建议使用 SVN。据我从 Mercurial 哲学的描述中回忆,它管理文件,而不是目录,因此在添加文件时它会自动添加任何丢失的目录。

当然,任何流行的版本控制系统都可以实现这样的东西,但如果你正在寻找开箱即用的这样的功能,可能你想检查 Mercurial...

于 2013-04-20T19:03:47.983 回答
2

虽然这里的主题 离题,但我会尝试

于 2013-04-20T21:12:40.633 回答