Show a warning if .SRCINFO is unchanged

Warn users when a remote ref update does not change the content of
.SRCINFO such that users are reminded of updating package meta data.

Implements FS#46130.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2015-09-29 08:03:26 +02:00
parent 693e4b50a3
commit 612300b39c

View file

@ -169,6 +169,9 @@ def die(msg):
sys.stderr.write("error: {:s}\n".format(msg)) sys.stderr.write("error: {:s}\n".format(msg))
exit(1) exit(1)
def warn(msg):
sys.stderr.write("warning: {:s}\n".format(msg))
def die_commit(msg, commit): def die_commit(msg, commit):
sys.stderr.write("error: The following error " + sys.stderr.write("error: The following error " +
"occurred when parsing commit\n") "occurred when parsing commit\n")
@ -282,6 +285,13 @@ for commit in walker:
if not fname in commit.tree: if not fname in commit.tree:
die_commit('missing source file: {:s}'.format(fname), str(commit.id)) die_commit('missing source file: {:s}'.format(fname), str(commit.id))
# Display a warning if .SRCINFO is unchanged.
if sha1_old != "0000000000000000000000000000000000000000":
srcinfo_id_old = repo[sha1_old].tree['.SRCINFO'].id
srcinfo_id_new = repo[sha1_new].tree['.SRCINFO'].id
if srcinfo_id_old == srcinfo_id_new:
warn(".SRCINFO unchanged. The package database will not be updated!")
# Read .SRCINFO from the HEAD commit. # Read .SRCINFO from the HEAD commit.
srcinfo_raw = repo[repo[sha1_new].tree['.SRCINFO'].id].data.decode() srcinfo_raw = repo[repo[sha1_new].tree['.SRCINFO'].id].data.decode()
srcinfo_raw = srcinfo_raw.split('\n') srcinfo_raw = srcinfo_raw.split('\n')