我从来没有使用这些创建过项目,我曾经在一个项目中使用过 CVS,它非常简单,只需更改或添加内容并提交它们。现在我已经编写了一些项目,我希望通过我上面提到的方式来发布和更改这些资源。我创建了一个 github 帐户,但 Git 对我来说似乎太复杂了,创建了一个 sourceforge 帐户,但我找不到如何创建 CVS 项目。所以我真的被困住了。所以我需要帮助。正如我所说,CVS 真的很简单,你能解释一下如何创建一个 CVS 项目并将我的整个项目上传到上面吗?
3 回答
使用分布式版本控制系统 (DVCS)。我不是特别在意哪一个。我更喜欢 Git;其他人更喜欢 Mercurial;还有一些人更喜欢集市;还有其他选择。
DVCS 系统相对于集中式版本控制系统(la CVS 或 SVN)的优势已被详尽地记录在案。实际上很难避免偶然发现这些帖子,其中许多都说“使用分布式版本控制系统比使用集中式版本控制系统几乎没有缺点”。
当然,“几乎没有”并不意味着“精确为零”。如果您使用大型二进制文件或具有极长的提交历史,则存在缺点。尽管如此,这听起来不像是在为企业写作,而且很可能不会遇到这些问题。
个人项目是 DVCS 的完美尝试。文档丰富。用户社区很强大。许多开源项目的作者站在你这边。
总之:跳进去。水很好。
您忽略了另一种可能性,即 Mercurial。它是一个类似于 Git 的分布式版本控制系统,但使用起来更简单。
像 git / mercurial (hg) / bazaar (bzr) 这样的 DVCS 可能是要走的路。
但是,它们相对于 CVS 和 SVN 有一个很大的缺点:截至 2013 年,大多数 DVCS 并不真正支持签入和签出。许多人正在进行部分代表工作,但有时会有诸如复制整个历史记录然后只检查子树的问题。(而您想要的是克隆部分历史记录和部分工作树。)
使用 CVS,您只需签出子目录即可进行部分签入和签出。
可以说,SVN 使它变得更加容易。
使用 CVS,您可以通过将符号链接安排到不同的文件系统存储库和/或签出网络存储库,从多个存储库中创建单个工作区,以便您可以将所有更改签入到它们所属的任何位置作为一个命令。
SVN 导入使这更加容易。
同样,DVCS 开始这样做,但至少可以说支持很笨拙。
总体而言,我建议使用现代 DVCS,但值得注意的是,截至 2013 年,现代 DVCS 尚不了解某些使用模型。
更糟糕的是,许多 DVCS 开发人员根本不了解这些使用模型——尽管我会注意到我曾经向 Linus 提到过我的问题,在他问了几个问题后,他说“是的,我明白你想要什么;git 不那个;你应该把它加成瓷器。”
主要使用模型:当你的项目边界是流动的。您正在开始编写很可能最终会进入库以在其他项目中重用的代码——并且您不断地移动文件。并且您不希望那些其他项目必须获得完整的历史记录。
我的主目录是这样的:许多我部分重用的库。但我很少希望我的整个主目录树克隆到一个新站点,只是一个取决于我正在处理的内容的子集。