使用git

时间:2018-06-27 21:47:40

标签: python git git-commit

我有一个在本地开发的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代码的连续版本。

1 个答案:

答案 0 :(得分:0)

Change version file automatically on commit with git中所述, git hooks,更具体地说,可以使用pre-commit钩子。

在Python的特定情况下,可以在.git/hooks/pre-commit脚本中使用versioneerbumpversion

#!/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 loggit rev-parse --short HEAD的当前提交ID(7位数字是短SHA的Git默认值)进行比较。