在 Fossil 中更新分支

Posted

技术标签:

【中文标题】在 Fossil 中更新分支【英文标题】:Updating branch in Fossil 【发布时间】:2018-12-02 14:10:28 【问题描述】:

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

【问题讨论】:

“主文件”到底是什么意思? trunk 分支中的文件,还是别的什么? 【参考方案1】:

Fossil 与 Git 不同,一次推送/拉出 所有 分支和标签*。原因(除了设计之外)是 Fossil 存储库是一个数据库,push/full 会在各自的方向上同步数据库。

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

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

默认情况下,私有提交/分支被排除在推/拉之外。要同时包含这些,请使用 --private 选项(请参阅 fossil help 以获得 fossil push --private)。

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

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

【讨论】:

【参考方案2】:

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

我唯一能想到的就是你使用的皮肤有一个链接到dir?ci=tip 的“文件”菜单项。 tip 是最近提交的特殊名称。这意味着,如果您在与 trunk 不同的分支中提交,“文件”菜单项现在将向您显示其他分支的文件。

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

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

【讨论】:

以上是关于在 Fossil 中更新分支的主要内容,如果未能解决你的问题,请参考以下文章

在 fork 中更新主分支 [重复]

Git 更新分支到 master

git远程分支创建,本地分支关联远程分支,第一次发布更新分支

TFS:使用来自 main 的更改更新分支

当在VSTS中更新目标分支时,是否可以获得PR以重新启动合并?

git 合并或更新代码的步骤