Show More
@@ -2654,19 +2654,28 def diffstatdata(lines): | |||
|
2654 | 2654 | if filename: |
|
2655 | 2655 | results.append((filename, adds, removes, isbinary)) |
|
2656 | 2656 | |
|
2657 | # inheader is used to track if a line is in the | |
|
2658 | # header portion of the diff. This helps properly account | |
|
2659 | # for lines that start with '--' or '++' | |
|
2660 | inheader = False | |
|
2661 | ||
|
2657 | 2662 | for line in lines: |
|
2658 | 2663 | if line.startswith('diff'): |
|
2659 | 2664 | addresult() |
|
2660 |
# s |
|
|
2665 | # starting a new file diff | |
|
2666 | # set numbers to 0 and reset inheader | |
|
2667 | inheader = True | |
|
2661 | 2668 | adds, removes, isbinary = 0, 0, False |
|
2662 | 2669 | if line.startswith('diff --git a/'): |
|
2663 | 2670 | filename = gitre.search(line).group(2) |
|
2664 | 2671 | elif line.startswith('diff -r'): |
|
2665 | 2672 | # format: "diff -r ... -r ... filename" |
|
2666 | 2673 | filename = diffre.search(line).group(1) |
|
2667 |
elif line.startswith(' |
|
|
2674 | elif line.startswith('@@'): | |
|
2675 | inheader = False | |
|
2676 | elif line.startswith('+') and not inheader: | |
|
2668 | 2677 | adds += 1 |
|
2669 |
elif line.startswith('-') and not |
|
|
2678 | elif line.startswith('-') and not inheader: | |
|
2670 | 2679 | removes += 1 |
|
2671 | 2680 | elif (line.startswith('GIT binary patch') or |
|
2672 | 2681 | line.startswith('Binary file')): |
@@ -105,3 +105,83 diffstat within directories: | |||
|
105 | 105 | $ hg diff --stat --root . -I old |
|
106 | 106 | |
|
107 | 107 | $ cd .. |
|
108 | ||
|
109 | Files with lines beginning with '--' or '++' should be properly counted in diffstat | |
|
110 | ||
|
111 | $ hg up -Cr tip | |
|
112 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
113 | $ rm dir1/new | |
|
114 | $ rm dir2/new | |
|
115 | $ rm "file with spaces" | |
|
116 | $ cat > file << EOF | |
|
117 | > line 1 | |
|
118 | > line 2 | |
|
119 | > line 3 | |
|
120 | > EOF | |
|
121 | $ hg commit -Am file | |
|
122 | adding file | |
|
123 | ||
|
124 | Lines added starting with '--' should count as additions | |
|
125 | $ cat > file << EOF | |
|
126 | > line 1 | |
|
127 | > -- line 2, with dashes | |
|
128 | > line 3 | |
|
129 | > EOF | |
|
130 | ||
|
131 | $ hg diff --root . | |
|
132 | diff -r be1569354b24 file | |
|
133 | --- a/file Thu Jan 01 00:00:00 1970 +0000 | |
|
134 | +++ b/file * (glob) | |
|
135 | @@ -1,3 +1,3 @@ | |
|
136 | line 1 | |
|
137 | -line 2 | |
|
138 | +-- line 2, with dashes | |
|
139 | line 3 | |
|
140 | ||
|
141 | $ hg diff --root . --stat | |
|
142 | file | 2 +- | |
|
143 | 1 files changed, 1 insertions(+), 1 deletions(-) | |
|
144 | ||
|
145 | Lines changed starting with '--' should count as deletions | |
|
146 | $ hg commit -m filev2 | |
|
147 | $ cat > file << EOF | |
|
148 | > line 1 | |
|
149 | > -- line 2, with dashes, changed again | |
|
150 | > line 3 | |
|
151 | > EOF | |
|
152 | ||
|
153 | $ hg diff --root . | |
|
154 | diff -r 160f7c034df6 file | |
|
155 | --- a/file Thu Jan 01 00:00:00 1970 +0000 | |
|
156 | +++ b/file * (glob) | |
|
157 | @@ -1,3 +1,3 @@ | |
|
158 | line 1 | |
|
159 | --- line 2, with dashes | |
|
160 | +-- line 2, with dashes, changed again | |
|
161 | line 3 | |
|
162 | ||
|
163 | $ hg diff --root . --stat | |
|
164 | file | 2 +- | |
|
165 | 1 files changed, 1 insertions(+), 1 deletions(-) | |
|
166 | ||
|
167 | Lines changed starting with '--' should count as deletions | |
|
168 | and starting with '++' should count as additions | |
|
169 | $ cat > file << EOF | |
|
170 | > line 1 | |
|
171 | > ++ line 2, switched dashes to plusses | |
|
172 | > line 3 | |
|
173 | > EOF | |
|
174 | ||
|
175 | $ hg diff --root . | |
|
176 | diff -r 160f7c034df6 file | |
|
177 | --- a/file Thu Jan 01 00:00:00 1970 +0000 | |
|
178 | +++ b/file * (glob) | |
|
179 | @@ -1,3 +1,3 @@ | |
|
180 | line 1 | |
|
181 | --- line 2, with dashes | |
|
182 | +++ line 2, switched dashes to plusses | |
|
183 | line 3 | |
|
184 | ||
|
185 | $ hg diff --root . --stat | |
|
186 | file | 2 +- | |
|
187 | 1 files changed, 1 insertions(+), 1 deletions(-) |
General Comments 0
You need to be logged in to leave comments.
Login now