From bc82a8eaaf99fb0ada2a9fd2cd3c082113d4690c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 11 Jul 2010 12:18:38 +0200 Subject: Pass '--relative' to 'git diff-index'. Instead of using faulty prefix-stripping code on 'git diff-index' results, simply pass '--relative' to it. Thanks to that, git will do all the stripping itself and return only changes in the current directory. --- bin/repoman | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) (limited to 'bin/repoman') diff --git a/bin/repoman b/bin/repoman index 3243438e2..750bc6664 100755 --- a/bin/repoman +++ b/bin/repoman @@ -938,18 +938,10 @@ if vcs == "svn": mychanged = [ "./" + elem.split()[-1:][0] for elem in svnstatus if elem and elem[:1] in "MR" ] mynew = [ "./" + elem.split()[-1:][0] for elem in svnstatus if elem.startswith("A") ] elif vcs == "git": - strip_levels = repolevel - 1 - - mychanged = os.popen("git diff-index --name-only --diff-filter=M HEAD").readlines() - if strip_levels: - mychanged = [elem[repo_subdir_len:] for elem in mychanged \ - if elem[:repo_subdir_len] == repo_subdir] + mychanged = os.popen("git diff-index --name-only --relative --diff-filter=M HEAD").readlines() mychanged = ["./" + elem[:-1] for elem in mychanged] - mynew = os.popen("git diff-index --name-only --diff-filter=A HEAD").readlines() - if strip_levels: - mynew = [elem[repo_subdir_len:] for elem in mynew \ - if elem[:repo_subdir_len] == repo_subdir] + mynew = os.popen("git diff-index --name-only --relative --diff-filter=A HEAD").readlines() mynew = ["./" + elem[:-1] for elem in mynew] elif vcs == "bzr": bzrstatus = os.popen("bzr status -S .").readlines() @@ -2161,24 +2153,13 @@ else: for prop in props if " - " in prop) elif vcs == "git": - strip_levels = repolevel - 1 - - mychanged = os.popen("git diff-index --name-only --diff-filter=M HEAD").readlines() - if strip_levels: - mychanged = [elem[repo_subdir_len:] for elem in mychanged \ - if elem[:repo_subdir_len] == repo_subdir] + mychanged = os.popen("git diff-index --name-only --relative --diff-filter=M HEAD").readlines() mychanged = ["./" + elem[:-1] for elem in mychanged] - mynew = os.popen("git diff-index --name-only --diff-filter=A HEAD").readlines() - if strip_levels: - mynew = [elem[repo_subdir_len:] for elem in mynew \ - if elem[:repo_subdir_len] == repo_subdir] + mynew = os.popen("git diff-index --name-only --relative --diff-filter=A HEAD").readlines() mynew = ["./" + elem[:-1] for elem in mynew] - myremoved = os.popen("git diff-index --name-only --diff-filter=D HEAD").readlines() - if strip_levels: - myremoved = [elem[repo_subdir_len:] for elem in myremoved \ - if elem[:repo_subdir_len] == repo_subdir] + myremoved = os.popen("git diff-index --name-only --relative --diff-filter=D HEAD").readlines() myremoved = ["./" + elem[:-1] for elem in myremoved] if vcs == "bzr": -- cgit v1.2.3-1-g7c22