Version control 单机单用户免费版本控制

Version control 单机单用户免费版本控制,version-control,Version Control,有一些类似的问题,但其中一些问题已经5年了(因此可能会有更好的新东西),而其他问题并不能满足我的所有要求 我正在寻找版本控制软件的建议 必须免费用于商业用途 所有的开发将由一个人完成 所有的开发都将在一台机器上完成——64位Windows7机器 很多小项目——每个项目都很小——只有几周的工作时间。因此,启动一个新项目应该很快 应该有一个用于签入的命令行 应该有一个图形化的方式来查看文件的版本历史记录-例如,我键入“history file.cpp”-它应该给我一个窗口,显示该文件的所有版本&这

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

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

  • 必须免费用于商业用途
  • 所有的开发将由一个人完成
  • 所有的开发都将在一台机器上完成——64位Windows7机器
  • 很多小项目——每个项目都很小——只有几周的工作时间。因此,启动一个新项目应该很快
  • 应该有一个用于签入的命令行
  • 应该有一个图形化的方式来查看文件的版本历史记录-例如,我键入“history file.cpp”-它应该给我一个窗口,显示该文件的所有版本&这是一个简单的方式,我可以对历史记录中的任意两个版本进行视觉区分(使用可插入的difftool-我喜欢windiff)
  • 将使用不同的编程语言——(C、C++、java、VBScript等)。
  • 完全不需要IDE集成
  • 创建标记/标签应该快速且简单
  • 合并和分支永远不会完成,因此与这些相关的任何功能都不相关
  • 永远不需要解决冲突
  • 基本知识的快速学习曲线
  • 应该有一个命令签入一个目录下的所有签出文件,包括子目录。这应该在运行命令时不会抛出UI的情况下发生。i、 e.应从命令行接受所有文件共有的注释
i、 e.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.
    
  • 应该很容易备份。i、 每周一次,我用SyncToy把东西备份到外部硬盘上。我不介意使用不同的方法将版本控制存储库备份到外部HDD中,但备份应该很简单-如果我的笔记本电脑崩溃,我应该能够从备份中重新创建所有存储库,包括版本历史记录

  • 我在找轻便的东西。i、 e.不需要我设置单独的服务器等
在多个开发人员的大型项目环境中的不同时间,我都非常喜欢perforce和CVS。我从来都不太喜欢CVS,但在CVS中使用乌龟用户界面让它变得可以忍受

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


我知道任何一个系统都可能无法满足我的所有要求,但尽可能接近的系统将非常好。

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

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

我打算建议SVN,直到读到关于不添加目录的项目。据我对Mercurial哲学的描述所述,它管理的是文件,而不是目录,所以在添加文件时,它会自动添加任何缺少的目录


当然,对于任何流行的版本控制系统,都有可能实现这样的功能,但是如果您正在寻找开箱即用的功能,可能您想选中Mercurial…

虽然主题非常离题,但我会尝试一下

  • Subversion(和文件:///存储库协议)
  • 汞()
  • (附)

您知道在这些系统中,从后面备份和重新创建所有内容是否容易吗?+1。顺便说一句,为什么这应该是“offctopic”。SCM是程序员的日常活动;在其他站点(程序员?)上强制提问并不总是一个好主意。@yan-常见问题解答说,程序员对工具相关的问题不感兴趣。stackexchange.com@user93353-关于备份。A) SVN repo是目录树,您可以将其备份为普通目录或使用svnadmin存储完整的增量转储B)Mercurial repo是工作目录中的
.hg
目录,关于SVN的注释1适用于此处c)化石repo是单目录file@yan-非主题,因为FAQ明确说明:“你应该根据你所面临的实际问题,提出实际的、可回答的问题。喋喋不休的开放式问题削弱了我们网站的实用性,“哪种SCM更适合我”是没完没了的故事,也是flamewars的来源(你只是还没有Git粉丝)