我很想知道你们是如何处理的修改版本号对于新版本问题。
如何处理关联文件(例如手册页等)中的版本号?
该软件是使用 gnu 工具链构建的,因此 autoconf、automake 等可用并用于应用程序的版本号。这样信息就可以被重用。
git 被用作 vcs。
一种可能性是引入额外的、新的Makefile.am 中的目标执行 sed/awk 来替换所有关联文件中的版本号和日期。该目标可以在新版本开发开始时(在分支之后)调用一次。
然后,当人们执行以下操作时,该项目就可以使用正确的信息来构建克隆项目或发布 tarball 完成时。当然,在开始开发新版本时必须记住运行此 make 目标。
另一种选择是使用 dist 目标的钩子来替换 sed/awk。但这会使项目的 git 存储库处于没有正确版本号与关联文件关联的状态。
我更喜欢第一个解决方案,因为它还记录了correctgit 历史记录中的版本号。
当进行 sed/awk 替换时,您更喜欢在“文件内”进行替换,还是像 autoconf/automake 工具那样使用文件内模板进行替换。我看到这两种方法都有优点和缺点。
你如何处理版本控制相关文件。您是否在开发阶段开始时更改它们?您是否在开发阶段之前更改它们?shipping,您会进行内文件替换还是更喜欢使用模板?
THX.
现在常见的解决方案是使用 m4_esyscmd 参数调用 AC_INIT 以从 git 生成版本。例如,autoconf 的configure.ac 包含以下行:
AC_INIT([GNU Autoconf],
m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[[email protected]])
其中 build-aux/git-version-gen 是一个简单的脚本,它调用“git描述”来生成版本号。 (参见 gnulib)
这种方法有缺点,但它可能是有效的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)