Version control 化石:添加文件到现有的回购协议,我需要先打开吗?

Version control 化石:添加文件到现有的回购协议,我需要先打开吗?,version-control,fossil,Version Control,Fossil,我希望控制目录的版本,我们称之为“项目”,并将化石文件保存在另一个名为“化石”的目录中。我成功地创建了“project.fsl”存储库,添加了我的项目文件,提交并关闭了它。我的问题是理解如何采取下一步 下面是我所做的,遵循fossilbook的建议 $ cd project $ fossil new ../fossils/project.fsl $ fossil open ../fossils/project.fsl $ fossil add . $ fossil ci -m "first co

我希望控制目录的版本,我们称之为“项目”,并将化石文件保存在另一个名为“化石”的目录中。我成功地创建了“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
现在我已经完成了我的项目,编辑了一些文件,删除了一些文件,创建了一些文件,重命名了一些文件。我想将项目的当前状态添加到存储库中。我该怎么做

根据我在文档中读到的内容,我的印象是我必须首先打开存储库,然后添加文件,然后提交。如果我没有打开存储库,我会在打开的签出中收到
消息。
消息。但如果我
open
fossil想用旧文件覆盖我的目录。(如果我从
化石
目录中打开,我会得到复制到化石目录中的项目的“解包”版本,而不是我想要的)

这里,fossil想用旧版本覆盖我的项目。我对每一个建议都说不。我怀疑
open
不是正确的方法,但如果不是,那是什么

我想将我的更改添加到存储库中,因此现在project.fsl已打开,我尝试以下操作:

$ 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-diff
fossil-ui
或类似的事情,直到我需要深入研究我的项目历史时,我希望这永远不会发生

编辑。我完全是个新手。我不确定自己是否理解
签出
清单
叶子
,等等的含义。因此,尽管花了无数的时间尝试,我还是很难从手册中获得任何东西。我不太明白这一页关于化石开放的内容:

化石开放是正确的做法。在您的例子中,不需要的是
化石关闭

此时,您应该执行
folse open../folses/project.fsl--keep
打开回购协议,同时保留所有更改

open命令将当前目录标记为工作目录(用化石术语来说,是签出)。我建议您在需要移动回购或工作目录本身之前不要关闭它。就我个人而言,只有当我换台电脑时才会发生这种情况

要让fossil识别所有更改,只需执行
fossil addremove
;然后,化石将添加所有新文件,并删除所有已删除的文件,以便存储库再次匹配工作目录。当然,您仍然需要在之后提交更改

注意
addremove
不会自动识别文件重命名!如果已重命名文件,则在执行
addremove
命令之前,应使用
folse rename
命令让folse知道每个文件的这一点。当然,如果你不介意破坏特定文件的编辑历史记录,你可以跳过它,让fossil认为一个文件被删除了,另一个文件被添加了。

低调而简单的开始 对于单个开发人员来说,化石存储库的生命周期可能非常简单:

  • fossil new
    来创建存储库文件本身
  • 打开
    以创建第一个(或可能只有一个)活动工作区
  • 化石添加
    化石删除
    化石重命名
    化石添加删除
    ,让化石了解要跟踪的文件
  • 化石提交
    将更改提交到存储库
  • 在项目的整个生命周期中,根据需要重复步骤3和步骤4

    这是化石最大的优点之一:它的设计非常简单。您可以单独维护一个非常复杂的项目,并且实际上只能定期使用
    fossilcommit

    下一步 成熟度的下一个阶段可以向几个方向发展。如果您想与第二位开发人员共享项目工作,您将需要了解有关克隆存储库和同步更新的更多信息。如果您想允许在不破坏主干构建的情况下独立处理功能,您可以了解有关分支和合并的更多信息。如果您想利用wiki和票证跟踪器功能,您需要了解
    化石用户界面
    化石服务器
    ,或者配置web服务器以启动化石

    但是这些用例都不需要使用
    folsicclose
    命令。事实上,
    fossil help
    的输出最近被拆分为大多数用户所需的较短命令列表和较长的所有命令列表。在该部门,
    fossil close
    没有进入短名单。它执行的唯一功能是验证文件是否为未保存的更改,以及从个人签出列表中删除打开的签出(可用于
    fossil all
    命令),而这些功能不容易通过简单的文件删除来完成

    化石特有词汇 即使是一个开发人员也会想学习fossil文档中使用的一些词汇

    • “签入”:文件的特定修订集,由UUID标识,可能由一个或多个标记标识
    • “签出”:与特定存储库关联的文件夹树(通过
      folse open
      )。大多数化石命令要求当前目录位于打开的签出内
    • “UUID”:存储的任何特定对象的唯一标识符
      $ 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