Re: [PATCH 0/5] "diff --stat" counting fixes
Antoine Pelisse writes: > I feel like (but I can obviously be wrong): > 1. The info is redundant. When performing a merge, all diffs (without > --staged flag) are unmerged Yes, it is redundant. They are primarily meant as a warning to anybody who runs "git diff --stat" while their index is not fully merged so that they do not mistakenly think they are looking at meaningful numbers. The number of added lines likely includes the conflict markers you haven't dealt with ;-) > 2. While status shows the line once, while diff shows the diff for the file > once, while diff --shortstat counts the file once, diff --stat shows two > lines for the file. Yeah, don't use shortstat while your index is unmerged. > 3. diff --numstat shows two lines for the same file. As a script > writer (I guess that's what it's meant for), I would definitely expect > uniqueness in third column/filenames. Then your script wouldn't receive any hint in the output that you are reading from a nonsense input. When you see the same filename twice, you will know there is something strange (not just "I seem to have more added lines than I thought I added -- Ah, I see added files from both sides because I still have conflicts unresolved") that gives you a chance to notice. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 0/5] "diff --stat" counting fixes
Hi Junio, That does make a lot of sense and I would have indeed missed a couple of things here. I've been thinking about that "Unmerged" line quite a lot, and I can't get myself any good reason to keep it. Would you mind taking a couple of minutes to make it clear ? I feel like (but I can obviously be wrong): 1. The info is redundant. When performing a merge, all diffs (without --staged flag) are unmerged 2. While status shows the line once, while diff shows the diff for the file once, while diff --shortstat counts the file once, diff --stat shows two lines for the file. 3. diff --numstat shows two lines for the same file. As a script writer (I guess that's what it's meant for), I would definitely expect uniqueness in third column/filenames. Cheers, Antoine On Tue, Nov 27, 2012 at 10:21 PM, Junio C Hamano wrote: > > It turns out that there are at least two bugs in the diffstat > counting code. This series comes on top of the earlier 74faaa1 (Fix > "git diff --stat" for interesting - but empty - file changes, > 2012-10-17) to fix them. > > Junio C Hamano (5): > test: add failing tests for "diff --stat" to t4049 > diff --stat: status of unmodified pair in diff-q is not zero > diff --stat: use "file" temporary variable to refer to data->files[i] > diff --stat: move the "total count" logic to the last loop > diff --stat: do not count "unmerged" entries > > diff.c | 49 > +- > t/t4049-diff-stat-count.sh | 46 ++- > 2 files changed, 72 insertions(+), 23 deletions(-) > > -- > 1.8.0.1.331.g808d2af > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/5] "diff --stat" counting fixes
It turns out that there are at least two bugs in the diffstat counting code. This series comes on top of the earlier 74faaa1 (Fix "git diff --stat" for interesting - but empty - file changes, 2012-10-17) to fix them. Junio C Hamano (5): test: add failing tests for "diff --stat" to t4049 diff --stat: status of unmodified pair in diff-q is not zero diff --stat: use "file" temporary variable to refer to data->files[i] diff --stat: move the "total count" logic to the last loop diff --stat: do not count "unmerged" entries diff.c | 49 +- t/t4049-diff-stat-count.sh | 46 ++- 2 files changed, 72 insertions(+), 23 deletions(-) -- 1.8.0.1.331.g808d2af -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html