我有一个在本地开发的Python网络服务器(使用Bottle或Flask或其他工具):
BUILDVERSION = "0.0.128"
@route('/')
def homepage():
... # using a template, and the homepage shows the BUILDVERSION in the footer
# so that I always know which live version is running
...
run(host='0.0.0.0', port=8080)
每次进行重大更新时,我都会这样做:
git commit -am "Commit name" && git push
,并且更新远程版本。 (注意:我在远程仓库上使用git config receive.denyCurrentBranch updateInstead
。
问题:我经常忘记在每次提交时手动递增BUILDVERSION
,然后区分正在运行的版本并不容易,等等。(因为两个连续的提交可能具有相同的BUILDVERSION
!)
问题:是否可以使用Python + Git在每次提交时自动递增BUILDVERSION
?或类似的方法(BUILDVERSION也可以是提交ID ... ),这些字符将以小字符显示在网站的页脚中,从而可以区分Python代码的连续版本。
答案 0 :(得分:0)
如Change version file automatically on commit with git中所述,
git hooks,更具体地说,可以使用pre-commit
钩子。
在Python的特定情况下,可以在.git/hooks/pre-commit
脚本中使用versioneer或bumpversion:
#!/bin/sh
bumpversion minor
git add versionfile
另一种选择是使用git commit id代替BUILDVERSION
:
import git
COMMITID = git.Repo().head.object.hexsha[:7] # 270ac70
(这首先需要pip install gitpython
)
然后可以将其与具有git log
或git rev-parse --short HEAD
的当前提交ID(7位数字是短SHA的Git默认值)进行比较。