Я нашел этот код в книге.Как там сказано - каждый раз, когда код обновляется, он может давать определенную временную метку.Но, как я заметил, это просто дает время последнего коммита .Есть ли способ получить текущее время каждого обновления кода без его коммитов?
import subprocess
from datetime import datetime
def get_git_changeset(absolute_path):
repo_dir = absolute_path
git_show = subprocess.Popen(
'git show --pretty=format:%ct --quiet HEAD',
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
shell=True, cwd=repo_dir, universal_newlines=True,
)
timestamp = git_show.communicate()[0].partition('\n')[0]
try:
timestamp = \
datetime.utcfromtimestamp(int(timestamp))
except ValueError:
return ""
changeset = timestamp.strftime('%Y%m%d%H%M%S')
return changeset
ОБНОВЛЕНИЕ: Для тех, кто каким-то образом попадает на эту страницу - рабочий код заменяет первые 3 строкис этим:
timestamp = max(map(lambda x: os.path.getmtime(x[0]), os.walk(absolute_path)))