使用 Fossil 避开目录

Pat*_*ckT 3 version-control fossil

Fossil 有一个回避机制,我相信它可以用来使某些文件免受版本控制。

我有一个名为 的目录R,我希望控制该目录,但其中的子目录名为library,我希望排除该子目录。我怎样才能“避开”子目录?

我通常的工作流程是这样的:

fossil new ../fossils/R.fsl
fossil open ../fossils/R.fsl
fossil add .
fossil ci -m "a commit"
fossil close R.fsl
Run Code Online (Sandbox Code Playgroud)

帮助页面在这里,但我仍然无法弄清楚:

http://www.fossil-scm.org/index.html/doc/trunk/www/shunning.wiki

Mar*_*ijn 5

如果我正确地阅读了您的问题,那么您正在寻找一种使特定文件不受版本控制的方法。

在这种情况下,您可能正在寻找设置ignore-glob

该设置允许您指定应从存储库中排除的路径(块)。

例如,如果您想要将所有文件保留在子目录中skip,并且还希望将所有*.bak文件保留在存储库之外,则可以使用以下命令来实现:

fossil set ignore-glob "skip/,*.bak"
Run Code Online (Sandbox Code Playgroud)

采用fossil set ignore-glob逗号分隔的列表,因此这意味着任何以 开头的文件都skip/将被忽略,并且所有与*.bakglob 匹配的文件也将被忽略。

如果您想先测试您的ignore-glob设置(根据我的经验,正确设置可能有点棘手),您可以使用extras命令进行测试。fossil extras通常会显示工作文件夹(及其子文件夹)中存在但不在存储库中的所有文件。ignore-glob您可以使用--override命令行开关覆盖该设置;从而允许您对其进行测试。如果工作正常,您可以使用该命令保存该忽略全局变量settings,如上所述。

不要为此使用 shun!

正如文档明确指出的那样,不建议回避。只有当您准确理解它的作用时才应该非常小心地使用它,因为如果您以错误的方式使用它,您可能会严重搞砸您的存储库。你的问题清楚地表明你不理解它的用途,所以我强烈建议你忘记 sun ,直到你更熟悉 Fossil 的工作原理。