更新 Fossil 中的分支

Updating branch in Fossil

我正在做一个项目,使用 Fossil 进行版本控制和组织。除了我的主干分支之外,我还有一些分支,并且只想更新(提交)一个分支。提交会将我在分支上的更改推送到主文件(我在 Chiselapp 上托管我的项目) .如何在不影响主文件的情况下仅更新或提交单个分支?

一个提交只会影响一个分支。除了可能在合并两个分支之后,但我假设你还没有这样做。

我唯一能想到的是,您使用的皮肤有一个 "Files" 菜单项 link 到 dir?ci=tiptip 是最近提交的特殊名称。这意味着,如果您在与 trunk 不同的分支中进行提交,该 "Files" 菜单项现在将向您显示该其他分支的文件。

解决这个问题的临时方法是在 trunk 之后进行提交,以便 tip 再次引用 trunk。但这并不理想。

永久修复此问题的最简单方法是选择一个不会这样做的不同皮肤,或者编辑皮肤的 header,并将 link 替换为 dir?ci=tip 例如另一个 link,dir?ci=trunk。这样,该菜单项将始终显示 trunk 分支中的文件。

化石不像 Git pushes/pulls 所有 分支和标签一次*。原因(除了设计之外)是 Fossil 存储库是一个数据库,push/full 在各自的方向同步数据库。

这意味着如果您在多个分支上提交了更改,那么所有这些更改都将被推送到远程。

*除非,更改是在 private 分支上完成的(请参阅 fossil help 了解 fossil commit --branch --privatefossil branch new --private)。

私有 commits/branches 默认情况下从 push/pull 中排除。要同时包含这些,请使用 --private 选项(请参阅 fossil help 了解 fossil push --private)。

一旦更改被推送,它们就会集成到远程仓库中,并且可以在远程仓库的 web-GUI 中作为单独的提交或通过它们所属的分支查看。该视图包括反映提交版本的回购内容(快照)的 Files 部分。

回答您的问题:如果您提交对现有 trunk 分支的更改,它们也将被推送到远程 trunk。如果您不想对远程 trunk 进行更改,请在您的新分支(将作为新分支推送)或您的私有分支(默认情况下不会推送)中进行更改。