The wiki source of YSLib documentation.
Revisión | da4459448b6b77554ad54d900f7a3d6be6c0508f (tree) |
---|---|
Tiempo | 2022-09-27 16:30:20 |
Autor | FrankHB <frankhb1989@gmai...> |
Commiter | FrankHB |
Tools/Scripts.zh-CN.md: 更新 Tools/Scripts/PatchRevision.sh 的说明。
@@ -82,12 +82,28 @@ | ||
82 | 82 | |
83 | 83 | 开发过程中使用 [RevisionPatcher](RevisionPatcher.zh-CN.md) 维护源文件中版本号的脚本。 |
84 | 84 | |
85 | - 当前只支持 Mercurial 版本库的已添加或修改的未提交文件。 | |
85 | + 当前只支持 Mercurial 或 Git 版本库的已添加或修改的未提交文件。 | |
86 | 86 | |
87 | - 脚本首先把未提交的这些修改导出为补丁备份到版本库根目录的 `bak.patch` ,然后使用这些内容调用 RevisionPatcher 取得文件和对应的新的版本号列表,最后使用 `sed` 查找对应文件并更新版本号。 | |
87 | + 以下环境变量确定使用 Mercurial 或 Git : | |
88 | + | |
89 | +* 若环境变量 `PatchHg` 非空,则检查 `hg` 命令可用; | |
90 | +* 否则,若环境变量 `PatchGit` 非空,则检查 `git` 命令可用; | |
91 | +* 否则,依次检查 `hg` 和 `git` 命令可用,若 `hg` 可用则不再检查 `git` 。 | |
92 | + | |
93 | + 检查可用的命令要求在对应的仓库中,同时确定仓库的顶层目录路径(对 Git ,要求存在工作区)。否则,若检查都失败,则脚本出错,不再继续运行。 | |
94 | + | |
95 | + 脚本利用 `hg` 或 `git` 命令把未提交的这些修改导出为补丁备份到版本库根目录的 `bak.patch` ,然后使用这些内容调用 RevisionPatcher 取得文件和对应的新的版本号列表,最后使用 `sed` 查找对应文件并更新版本号。 | |
96 | + | |
97 | + 使用的 `sed` 应支持 `-b -i` 选项。可使用 Linux 或 MSYS2 的发行版中的 sed 4.8 程序。 | |
98 | + | |
99 | +**警告** 某些 Win32 版本的 `sed` ,如 MSYS2 MinGW64 sed 4.4 可能损坏文本文件的行尾。有些替代版本可能解决[这一问题](https://stackoverflow.com/questions/4652652)。 | |
100 | + | |
101 | +**注释** 当前不检查特定版本 `sed` 对选项的支持。 | |
88 | 102 | |
89 | 103 | 若没有找到 `\version r` 模式的版本号前缀则忽略写入版本号。写入的版本号不影响换行符。 |
90 | 104 | |
105 | +**注释** 这个脚本可用于自动化。例如,在 Mercurial 仓库的 `hgrc` 的 `[hooks]` 节中添加 `precommit.PatchRevision = bash Tools/Scripts/PatchRevision.sh` 可在每次提交前调用这个脚本。在 YSLib 中,仅在主分支版本中启用。 | |
106 | + | |
91 | 107 | ### 变量 PatchBegin |
92 | 108 | |
93 | 109 | 匹配版本号的起始行,应为一个表示行数的正整数。默认值为 `"1"` 。 |
@@ -98,7 +114,17 @@ | ||
98 | 114 | |
99 | 115 | ### 变量 RevisionPatcher |
100 | 116 | |
101 | - 调用 RevisionPatcher 的命令。默认直接使用 `which RevisionPatcher` 的结果,一般要求可执行文件在环境变量 `PATH` 中。 | |
117 | + 调用 RevisionPatcher 的命令。默认值为 `which RevisionPatcher` 的结果。 | |
118 | + | |
119 | +**注释** 可执行文件可以在环境变量 `PATH` 中。 | |
120 | + | |
121 | +### 变量 PatchHg | |
122 | + | |
123 | + 指定使用 Mercurial 。参见以上确定使用 Mercurial 或 Git 的说明。 | |
124 | + | |
125 | +### 变量 PatchGit | |
126 | + | |
127 | + 指定使用 Git 。参见以上确定使用 Mercurial 或 Git 的说明。 | |
102 | 128 | |
103 | 129 | ## Tools/Scripts/SHBuild-bootstrap.sh |
104 | 130 |