diff options
author | Johannes Berg <johannes.berg@intel.com> | 2014-04-24 21:19:38 +0200 |
---|---|---|
committer | Luis R. Rodriguez <mcgrof@do-not-panic.com> | 2014-05-01 18:44:13 -0700 |
commit | 9399b9d9116e3e0eee78c4f87f040f54b6e4d1c9 (patch) | |
tree | 8082a80ecdfea310dde0cb776cc0259fa729174e /devel | |
parent | 2a25483c93f9f7b0c36c8dcca7e1aae54f7602f8 (diff) |
git-tracker: restrict shortlog to existing files
When the git-tracker updates through a merge commit or
otherwise multiple kernel commits, it appends a shortlog
of all the changes. That's fine, but is often unhelpful
since it's so large - restrict it to the files that are
actually backported to make it more readable.
While at it, rewrite the bpgit.status() helper function
to actually do something useful.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Diffstat (limited to 'devel')
-rwxr-xr-x | devel/git-tracker.py | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/devel/git-tracker.py b/devel/git-tracker.py index 3bd62f9d..01b1d6cc 100755 --- a/devel/git-tracker.py +++ b/devel/git-tracker.py @@ -46,7 +46,8 @@ def update_cache_objects(gittree, objdir): git.remote_update(objdir) def handle_commit(args, msg, branch, treename, kernelobjdir, tmpdir, wgitdir, backport_rev, kernel_rev, - prev_kernel_rev=None, defconfig=None, env={}, commit_failure=True): + prev_kernel_rev=None, defconfig=None, env={}, commit_failure=True, + append_shortlog=None): log = [] def logwrite(l): log.append(l) @@ -73,6 +74,7 @@ def handle_commit(args, msg, branch, treename, kernelobjdir, tmpdir, wgitdir, ba for l in log: print(l) newline='' + append_shortlog=None if prev_kernel_rev: msg += '\n%s%s-last-success: %s' % (PREFIX, tree, prev_kernel_rev) @@ -86,18 +88,25 @@ def handle_commit(args, msg, branch, treename, kernelobjdir, tmpdir, wgitdir, ba else: git.reset(opts=['-q'], tree=wdir) - msg += '''%(newline)s + if not failure or commit_failure: + if append_shortlog: + files = [] + for d in git.status(tree=wdir): + files.extend(d[1:]) + msg += git.shortlog(append_shortlog[0], append_shortlog[1], + tree=kernelobjdir, files=files) + + msg += '''%(newline)s %(PREFIX)sbackport: %(bprev)s %(PREFIX)s%(tree)s: %(krev)s ''' % { - 'newline': newline, - 'PREFIX': PREFIX, - 'bprev': backport_rev, - 'tree': treename, - 'krev': kernel_rev, - } + 'newline': newline, + 'PREFIX': PREFIX, + 'bprev': backport_rev, + 'tree': treename, + 'krev': kernel_rev, + } - if not failure or commit_failure: git.commit(msg, tree=wdir, env=env, opts=['-q', '--allow-empty']) git.push(opts=['-f', '-q', 'origin', branch], tree=wdir) os.rename(os.path.join(wdir, '.git'), wgitdir) @@ -226,14 +235,15 @@ if __name__ == '__main__': for commit in commits: print('updating to commit %s' % commit) env = git.commit_env_vars(commit, tree=kernelobjdir) + append_shortlog = None if prev_commits[commit] == prev: # committing multiple commits msg = git.commit_message(commit, kernelobjdir) try: # add information about commits that went into this - shortlog = git.shortlog(prev, '%s^2' % commit, - tree=kernelobjdir) - msg += "\nCommits in this merge:\n\n" + shortlog + git.rev_parse('%s^2' % commit, tree=kernelobjdir) + msg += "\nCommits in this merge:\n\n" + append_shortlog = (prev, '%s^2' % commit) except git.ExecutionError as e: # will fail if it wasn't a merge commit pass @@ -241,11 +251,12 @@ if __name__ == '__main__': # multiple commits env = backport_author_env msg = "update multiple kernel commits\n\nCommits taken:\n\n" - msg += git.shortlog(prev, commit, tree=kernelobjdir) + append_shortlog = (prev, commit) failure = handle_commit(args, msg, branch, tree, kernelobjdir, branch_tmpdir, wgitdir, backport_rev, commit, env=env, prev_kernel_rev=prev, defconfig=defconfig, - commit_failure=not catch_up_from_failure) + commit_failure=not catch_up_from_failure, + append_shortlog=append_shortlog) if not failure: prev = commit catch_up_from_failure = False |