正如评论中所建议的那样,您可以使用git pre-commit挂钩在提交时生成README.rst文件。你可以使用现有的工具,如cog,或者你可以用bash做一些简单的事情。
例如,创建一个RST “模板” 文件:
README.rst.tmpl
Test Git pre-commit hook project
--------------------------------
>>> INSERTION POINT FOR HELP OUTPUT <<<
的.git /钩/预提交
# Sensible to set -e to ensure we exit if anything fails
set -e
# Get the output from your tool.
# Paths are relative to the root of the repo
output=$(tools/my-cmd-line-tool --help)
cat README.rst.tmpl |
while read line
do
if [[ $line == ">>> INSERTION POINT FOR HELP OUTPUT <<<" ]]
then
echo "$output"
else
echo "$line"
fi
done > README.rst
git add README.rst
如果未在命令行上传递提交消息,则会在提示您输入提交消息之前运行此操作。因此,如果在README.rst.tmpl或工具输出发生任何更改时发生提交,则会使用它更新README.rst。
编辑
我相信这应该在Windows上工作过,或非常类似的东西,因为Git自带了Windows上的bash的实现,但我没有测试它。
我不知道我的理解正确:与'--help'输出选项生成'README.rst'编程方式从其他手动编辑的文件一起? – bli
我不确定“如何”,但我知道结果应该是什么样子。我希望'myprod --help'的输出在README中可见。自动更新自述文件将是一个解决方案。做某种包括将是首选,因为我不希望在git中自动创建文本。我被告知所有创建的东西(比如来自编译器的二进制文件)不应该在git中。 – guettli
也许你应该在你的问题中加入这些信息。 尽管关于git的一般建议,我会自动从两个文件(帮助后的文本和文本之后的文本)和'myprod --help'的输出或一些其他等效设置(自动替换)重新创建自述文件,并将其与'myprod'的更新一起提交。你可能会在git下有这个README文件,所以我猜这个“不跟踪自动生成文件的变化”的建议在这里并不重要。 – bli