我希望控制目录的版本,让它称之为“项目”,并将化石文件保存在另一个名为“fossils”的目录中。我成功创建了“project.fsl”存储库,添加了我的项目文件,已提交并已关闭。我的问题是了解如何采取下一步。
根据fossilbook
建议,这是我的工作。
$ cd project
$ fossil new ../fossils/project.fsl
$ fossil open ../fossils/project.fsl
$ fossil add .
$ fossil ci -m "first commit"
$ fossil close project.fsl
现在我已经完成了我的项目,编辑了一些文件,删除了一些文件,创建了一些文件,重命名了一些文件。我想将项目的当前状态添加到存储库。我该怎么做?
根据我在文档中读到的内容,我的印象是我必须首先打开存储库,然后添加文件,然后提交。如果我不打开存储库,则会收到Not within an open checkout.
消息。但是,如果我open
化石想用旧文件覆盖我的目录。 (如果我从fossils
目录中打开,我会将我的项目的“解压缩”版本复制到化石目录中,而不是我想要的那样)
$ cd project
$ fossil open ../fossils/project.fsl
这里的化石想要用旧版本覆盖我的项目。我对每一个建议都说不。我怀疑open
不是正确的方法,但如果不是,那么是什么?
我想将我的更改添加到存储库,所以现在project.fsl是open
,我试试这个:
$ fossil add .
ADDED Slides/tmp.tex
$ fossil commit -m "no idea what I'm doing, this will not end well"
would fork. "update" first or use --allow-fork.
$ fossil close
there are unsaved changes in the current checkout
此时我删除了名为.fslckout
.fossil
的所有隐藏文件,然后重试,结果同样令人失望。
坦率地说,我对fossil
的唯一兴趣是保留我的项目历史。我没有共同作者,并且不打算做fossil diff
或fossil ui
或类似的事情,直到我需要深入了解我的历史时,我希望永远不会发生这种情况。项目。
编辑。我是一个新手。我不确定我是否理解checkout
,manifest
,leaf
等的含义,所以这让我很难从手册中获取任何内容,尽管花费了不计其数的时间。 。我对fossil open
:http://fossil-scm.org/fossil/help/open
答案 0 :(得分:4)
fossil open
是正确的做法。在您的情况下,它是fossil close
不必要的。
此时,您应该fossil open ../fossils/project.fsl --keep
打开您的仓库,同时保留所有更改。
打开命令将当前目录标记为工作目录(在化石术语中,结帐)。我建议你不要关闭它,直到你需要移动你的仓库或工作目录本身。就个人而言,只有当我搬到另一台计算机时才会发生这种情况。
要让化石识别所有变化,只需fossil addremove
;然后化石将添加所有新文件,并删除所有已删除的文件,以便存储库再次与工作目录匹配。当然,您仍然需要在之后提交更改。
注意 addremove
不会自动识别文件重命名!如果您已重命名文件,则应在执行fossil rename
命令之前使用addremove
命令在之前让Fossil了解每个文件。当然,如果你不介意打破特定文件的编辑历史记录,你可以自由跳过它,让化石认为一个文件被删除而另一个文件被添加。
答案 1 :(得分:4)
对于单个开发人员来说,化石库的生命周期可以非常简单:
fossil new
创建存储库文件本身。 fossil open
创建第一个(或可能只有)活动工作区fossil add
,fossil remove
,fossil rename
和fossil addremove
让化石了解要追踪的文件。fossil commit
提交对存储库的更改在项目的整个生命周期中根据需要重复步骤3和4。
这是化石最强大的优势之一:它的设计非常低。您可以单独维护一个非常精细的项目,并且实际上只能定期使用fossil commit
。
复杂的下一阶段可以向多个方向发展。如果要与第二个开发人员共享项目工作,您将需要了解有关克隆存储库和同步更新的更多信息。如果要在不破坏主干版本的情况下允许对功能进行独立工作,可以了解有关分支和合并的更多信息。如果您想利用Wiki和票证跟踪器功能,您需要了解fossil ui
,fossil server
或配置您的Web服务器以启动化石。
但是这些用例都不会要求使用fossil close
命令。实际上,fossil help
的输出最近被分成了大多数用户需要的较短命令列表,以及所有命令的较长列表。在那个部门fossil close
没有列出短名单。它通过简单删除文件轻松完成的唯一功能是验证他们未进行未保存的更改,并从{{1}可用的个人结帐列表中删除打开的结帐}命令。
即使是单个开发人员也希望学习化石文档中使用的一些词汇。
fossil all
)。大多数化石命令要求当前目录在开放结账中。fossil open
创建的,可以从网络界面查看。任何用户都希望了解化石的Web界面。简单的第一步是在开放式结账时说fossil commit
。时间轴显示每个签入的节点的开发历史记录,以及绘制用于显示分支和合并的行。 Web界面具有高度可配置性,提供了wiki和票证跟踪器,还提供了一个gui,可以从中调整与项目和存储库相关的大多数设置。
Fossil本身是存储库内容的高效Web服务器。实际上,fossil's official web site的大多数页面都是由化石本身从源代码库中提供的化石服务。
除web site以及fossil ui
提供的个别命令帮助外,还有其他一些资源,许多用户都应该注意这些资源。
fossil-users list具有始终如一的高信噪比。关键开发人员关注它,许多有用且知识渊博的用户也是如此。该列表至少有一个archive,以及开发人员讨论新功能和计划的单独列表,但是化石开发不会有趣,除非您想要在化石本身的内部工作
Jim Schimpf有book试图成为教程和完整参考,并包含一些关于最佳实践的建议。非常值得一读。
内置命令行帮助以及Web界面所理解的所有页面URL的文档也可以从任何存储库网站/help
URL中的化石网页界面获得。 。该帮助文本包括每个命令的文档,包括不受支持的内部测试命令。
最后,StackOverflow的[化石标签] [标签]不能作为资源被忽略。