mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-22 11:56:49 +01:00
support git packed refs in version generator
(cherry picked from commit 77cf65804c732431574a99063f2132567d54a6be)
This commit is contained in:
parent
4a453e6121
commit
9dae8cd2a5
14
methods.py
14
methods.py
@ -108,9 +108,21 @@ def update_version(module_version_string=""):
|
||||
if os.path.isfile(os.path.join(gitfolder, "HEAD")):
|
||||
head = open_utf8(os.path.join(gitfolder, "HEAD"), "r").readline().strip()
|
||||
if head.startswith("ref: "):
|
||||
head = os.path.join(gitfolder, head[5:])
|
||||
ref = head[5:]
|
||||
head = os.path.join(gitfolder, ref)
|
||||
packedrefs = os.path.join(gitfolder, "packed-refs")
|
||||
if os.path.isfile(head):
|
||||
githash = open(head, "r").readline().strip()
|
||||
elif os.path.isfile(packedrefs):
|
||||
# Git may pack refs into a single file. This code searches .git/packed-refs file for the current ref's hash.
|
||||
# https://mirrors.edge.kernel.org/pub/software/scm/git/docs/git-pack-refs.html
|
||||
for line in open(packedrefs, "r").read().splitlines():
|
||||
if line.startswith("#"):
|
||||
continue
|
||||
(line_hash, line_ref) = line.split(" ")
|
||||
if ref == line_ref:
|
||||
githash = line_hash
|
||||
break
|
||||
else:
|
||||
githash = head
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user