CVS SVN Git,我应该为项目使用什么?

时间:2012-07-11 10:47:21

标签: git svn cvs

我从来没有使用过这些项目来创建项目,我曾经将CVS用于项目,而且非常简单,只需更改或添加内容并提交它们。现在我写了一些项目,我希望通过上面提到的方式发布和更改这些来源。我创建了一个github帐户,但Git对我来说似乎太复杂了,创建了一个sourceforge帐户,但我找不到如何创建CVS项目。所以我真的被卡住了。所以我需要帮助。正如我所说,CVS非常简单,你能解释一下如何创建一个CVS项目并上传我的整个项目吗?

3 个答案:

答案 0 :(得分:3)

使用分布式版本控制系统(DVCS)。我并不特别在乎哪一个。我更喜欢Git;其他人更喜欢Mercurial;还有一些人更喜欢Bazaar;还有其他选择。

DVCS系统相对于集中版本控制系统(CVS或SVN)的优势已exhaustively documented全部over the place.实际上很难避免stumbling across这些帖子,其中许多人都说"there are almost no disadvantages to using a distributed version control system over a centralized one."

当然,"几乎没有"并不意味着"恰好为零"。如果你使用large binary filesextremely long commit history.有所不同,那就有缺点,它听起来并不像你为企业写作而可能不会遇到这些问题

个人项目是DVCS的完美尝试。 Documentationrich.用户communitiesstrong.多个authors of open source projects on your side.

总之:跳进来。水很好。

答案 1 :(得分:2)

你忽略了另一种可能性,即Mercurial。它是像Git这样的分布式版本控制系统,但更易于使用。

答案 2 :(得分:1)

像git / mercurial(hg)/ bazaar(bzr)这样的DVCS可能就是这样。

然而,他们在CVS和SVN方面有一个很大的缺点:截至2013年,大多数DVCS并不真正支持签入和结账。许多人有部分代表正在进行的工作,但有时会有复制,如复制整个历史,然后只检查一个子树。 (您想要的是克隆部分历史记录以及部分工作树。)

使用CVS,您可以通过签出子目录来进行部分签入和签出。

SVN让它更容易,可以说。

使用CVS,您可以通过将符号链接安排到不同的文件系统存储库,和/或通过检出网络存储库来创建多个存储库中的单个工作区,以便您可以将所有更改作为一个命令签入。

SVN导入使这更容易。

同样,DVCS已经开始这样做了,但至少可以说这种支持是笨重的。

总的来说,我建议使用现代DVCS,但值得注意的是,现有的DVCS在某些使用模式中,截至2013年,只是不明白。

更糟糕的是,许多DVCS开发人员根本不理解这些使用模式 - 虽然我会注意到我曾经向Linus提过我的问题,在他问了几个问题后他说“是的,我理解你想要的东西; git不知道不要这样做;你应该把它加成瓷器。“

主要使用模式:当您的项目边界流动时。您正在开始很可能最终进入库以便在其他项目中重用的代码 - 并且您不断地移动文件。而且你不希望那些其他项目必须获得完整的历史记录。

我的主目录是这样的:我部分重用的许多库。但我很少希望我的整个主目录树克隆到一个新站点,只是一个子集取决于我正在做什么。