【问题标题】:Hesitating between git and fossil在 git 和化石之间犹豫不决
【发布时间】:2012-04-16 03:06:43
【问题描述】:

这里是 Fossil(或任何其他版本控制系统)的新手。以前用过专有的,但自己从来没有设置过。

目前,我正在寻找设置一个,以便我和我的朋友可以将它用于项目。

我选择 Fossil 主要是因为分布式似乎是要走的路,它看起来很轻巧,并且包含一个错误跟踪器。但是 Git 似乎是很多人最喜欢的 SCM。支持 Git+someBugTracker 而不是 Fossil 是否值得增加复杂性?有没有更好的选择?我必须从 0 开始。

【问题讨论】:

    标签: git shared-hosting fossil


    【解决方案1】:

    只是一些想法,没有组织。

    如果您的朋友已经习惯了 gitting,Git 是一款出色且强大的分布式 SCM,提供出色的托管服务,例如 Github 或 Gitorious。

    不过,Git 的概念并不容易理解。 Fossil 有类似的概念,但可能更容易开始(没有暂存区,没有索引的概念,使用 revert 而不是 resetcheckout 恢复自上次提交以来的更改等)。没有过多选项的子命令过多,帮助简洁明了。如果您害怕迷路,请选择化石。当然,这也意味着使用化石你不能像使用 git 那样做很多事情(例如,没有变基,至少目前不是)。

    对于化石,有few hosting online services available。设置服务器以运行 Fossil 就像使用 Git 一样简单。

    另外,使用 Fossil,项目的历史记录存储在一个文件中,因此我发现备份所有项目非常容易:将所有存储库放在同一个文件夹中,并创建一个 rsync 任务。然而,这使得 增量 备份完全没用。

    虽然使用git,但在不同文件夹中的同一项目的两个分支上工作意味着在两个不同的.git/objects 目录中拥有整个项目历史记录和分支的两个副本,这可能是冗余且巨大的,默认使用 Fossil工作方案必须有一个单一的存储库,以及一个或多个与其连接的工作目录。也许如果磁盘使用很重要,这很重要。

    警告,Fossil bug 跟踪器(行话中的票务系统)和 wiki 都非常简陋(不过,它们运行良好)。

    【讨论】:

    • 默认情况下,同一分区上的 Git 克隆将创建硬链接。所以你唯一需要的空间就是工作树
    • @Benoit,请注意rsync-ing Fossil repos 是一种有点幼稚的方法,因为它不需要在备份时对该数据库文件进行任何写入活动。进行“在线”备份的唯一可靠方法是使用sqlite3 dump ... 并在之后备份转储文件。而且 Git 并没有那么难备份:你只需要使用 Git 本身来完成这项任务。此外,如果需要一个高调的解决方案,gitolite v3 会在推送时实现主/从复制。
    • @kostix:人们喜欢按位备份有几个原因。尽管我没有看到任何合理的理由来按位备份化石存储库而不进行 sqlite3 转储,但有些人会不愿意这样做。此外,fossil 具有复制功能,但不会复制某些数据(通常是 fossil scrub 将删除的数据)。如果不需要备份该数据,那么仅利用复制就足以进行备份。
    • 您可以使用git bundle 创建备份。请参考这个问题(和答案):stackoverflow.com/a/11163038/1047741
    • @bug:两个开发人员在一台机器上工作(例如构建服务器),他们每个人都希望在他们的主目录中进行独立的检查。签入转到他们已从中签出的repo.fossil 文件。比较 Git,即使它们在同一个盒子上,它们也必须相互推送更改。
    猜你喜欢
    • 2023-03-15
    • 2010-11-19
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 2015-03-28
    • 1970-01-01
    相关资源
    最近更新 更多