在Git上确认

因为FreeBSD 12.0的发布接近了,所以我正在做一些确认工作。FreeBSD的主要源代码管理系统是SVN,但我也在github上有一个副本,所以我使用git进行操作。

这个计划的进展似乎是这样的。

12-CURRENT.png

在FreeBSD中,修正会被放入head并进行合并,然后将其反映到每个分支。(在FreeBSD中,修正会被放入主分支并合并到当前分支以反映在每个分支上。)

如果您想构建包括尚未经过审核的源代码和私有源代码在内的版本,您可以按照以下方式操作。但是,对于在12-CURRENT版本上进行过审核并已合并到head(master)的代码,可以直接使用stable/12分支进行构建。

反映正在审查中的物品。

% arc export --revision D13583 --git | patch -V none

从其他分支合并

% git checkout zrouter -- sys/geom/geom_flashmap.c

通过上述操作,会得到以下状态。

% git status
On branch stable/12
Your branch is up to date with 'upstream/stable/12'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   sys/geom/geom_flashmap.c

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   sys/conf/options
        modified:   sys/fs/tmpfs/tmpfs.h
        modified:   sys/fs/tmpfs/tmpfs_vfsops.c

构建这个树时,在启动时会显示为”脏”状态。

FreeBSD 12.0-BETA4 #0 e78279655eb(stable/12)-dirty

还原的方法如下。如果使用checkout命令,似乎无法将其他分支带回。

% git reset --hard HEAD

上述的两个补丁是为了进行远程更新而准备的。一个是为了绕过tmpfs大小的检查而设计的解决方案,另一个是用于从dts的分区映射中找到rootfs的固件的补丁。通过使用这些补丁,可以顺利进行远程更新,并且可以轻松进行确认。

广告
将在 10 秒后关闭
bannerAds