Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r12359 - main/trunk/bin
Date: Sun, 28 Dec 2008 20:29:26
Message-Id: E1LH2GI-0008Ii-Vg@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-12-28 20:29:22 +0000 (Sun, 28 Dec 2008)
3 New Revision: 12359
4
5 Modified:
6 main/trunk/bin/repoman
7 Log:
8 Bug #252727 - Use `git diff-index --name-only --diff-filter=M HEAD` instead
9 of `git ls-files -m --with-tree=HEAD` since the latter doesn't behave
10 like we want for files that have been added to the index. Also, use `git
11 diff-index` instead of `git diff` since the latter is considered a high-level
12 "porcelain" command which means that it's interface may not be reliable.
13
14
15 Modified: main/trunk/bin/repoman
16 ===================================================================
17 --- main/trunk/bin/repoman 2008-12-28 01:14:37 UTC (rev 12358)
18 +++ main/trunk/bin/repoman 2008-12-28 20:29:22 UTC (rev 12359)
19 @@ -746,11 +746,16 @@
20 mychanged = [ "./" + elem.split()[-1:][0] for elem in svnstatus if elem and elem[:1] in "MR" ]
21 mynew = [ "./" + elem.split()[-1:][0] for elem in svnstatus if elem.startswith("A") ]
22 elif vcs == "git":
23 - mychanged = os.popen("git ls-files -m --with-tree=HEAD").readlines()
24 - mychanged = [ "./" + elem[:-1] for elem in mychanged ]
25 - mynew = os.popen("git diff --cached --name-only --diff-filter=A").readlines()
26 strip_levels = repolevel - 1
27 +
28 + mychanged = os.popen("git diff-index --name-only --diff-filter=M HEAD").readlines()
29 if strip_levels:
30 + mychanged = [elem[repo_subdir_len:] for elem in mychanged \
31 + if elem[:repo_subdir_len] == repo_subdir]
32 + mychanged = ["./" + elem[:-1] for elem in mychanged]
33 +
34 + mynew = os.popen("git diff-index --name-only --diff-filter=A HEAD").readlines()
35 + if strip_levels:
36 mynew = [elem[repo_subdir_len:] for elem in mynew \
37 if elem[:repo_subdir_len] == repo_subdir]
38 mynew = ["./" + elem[:-1] for elem in mynew]
39 @@ -1742,15 +1747,21 @@
40 for prop in props if " - " in prop)
41
42 elif vcs == "git":
43 - mychanged = os.popen("git ls-files -m --with-tree=HEAD").readlines()
44 - mychanged = [ "./" + elem[:-1] for elem in mychanged ]
45 - mynew = os.popen("git diff --cached --name-only --diff-filter=A").readlines()
46 strip_levels = repolevel - 1
47 +
48 + mychanged = os.popen("git diff-index --name-only --diff-filter=M HEAD").readlines()
49 if strip_levels:
50 + mychanged = [elem[repo_subdir_len:] for elem in mychanged \
51 + if elem[:repo_subdir_len] == repo_subdir]
52 + mychanged = ["./" + elem[:-1] for elem in mychanged]
53 +
54 + mynew = os.popen("git diff-index --name-only --diff-filter=A HEAD").readlines()
55 + if strip_levels:
56 mynew = [elem[repo_subdir_len:] for elem in mynew \
57 if elem[:repo_subdir_len] == repo_subdir]
58 mynew = ["./" + elem[:-1] for elem in mynew]
59 - myremoved = os.popen("git diff --cached --name-only --diff-filter=D").readlines()
60 +
61 + myremoved = os.popen("git diff-index --name-only --diff-filter=D HEAD").readlines()
62 if strip_levels:
63 myremoved = [elem[repo_subdir_len:] for elem in myremoved \
64 if elem[:repo_subdir_len] == repo_subdir]