summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-11-27diff --stat: do not count "unmerged" entriesLibravatar Junio C Hamano2-3/+5
Even though we show a separate *UNMERGED* entry in the patch and diffstat output (or in the --raw format, for that matter) in addition to and separately from the diff against the specified stage (defaulting to #2) for unmerged paths, they should not be counted in the total number of files affected---that would lead to counting the same path twice. The separation done by the previous step makes this fix simple and straightforward. Among the filepairs in diff_queue, paths that weren't modified, and the extra "unmerged" entries do not count as total number of files. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-27diff --stat: move the "total count" logic to the last loopLibravatar Junio C Hamano2-10/+13
The diffstat generation logic, with --stat-count limit, is implemented as three loops. - The first counts the width necessary to show stats up to specified number of entries, and notes up to how many entries in the data we need to iterate to show the graph; - The second iterates that many times to draw the graph, adjusts the number of "total modified files", and counts the total added/deleted lines for the part that was shown in the graph; - The third iterates over the remainder and only does the part to count "total added/deleted lines" and to adjust "total modified files" without drawing anything. Move the logic to count added/deleted lines and modified files from the second loop to the third loop. This incidentally fixes a bug. The third loop was not filtering binary changes (counted in bytes) from the total added/deleted as it should. The second loop implemented this correctly, so if a binary change appeared earlier than the --stat-count cutoff, the code counted number of added/deleted lines correctly, but if it appeared beyond the cutoff, the number of lines would have mixed with the byte count in the buggy third loop. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-27diff --stat: use "file" temporary variable to refer to data->files[i]Libravatar Junio C Hamano1-13/+13
The generated code shouldn't change but it is easier to read. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-27diff --stat: status of unmodified pair in diff-q is not zeroLibravatar Junio C Hamano1-1/+1
It is spelled DIFF_STATUS_UNKNOWN these days, and is different from zero. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-27test: add failing tests for "diff --stat" to t4049Libravatar Junio C Hamano1-1/+45
There are a few problems in diff.c around --stat area, partially caused by the recent 74faaa1 (Fix "git diff --stat" for interesting - but empty - file changes, 2012-10-17), and largely caused by the earlier change that introduced when --stat-count was added. Add a few test pieces to t4049 to expose the issues. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-17Fix "git diff --stat" for interesting - but empty - file changesLibravatar Linus Torvalds4-36/+42
The behavior of "git diff --stat" is rather odd for files that have zero lines of changes: it will discount them entirely unless they were renames. Which means that the stat output will simply not show files that only had "other" changes: they were created or deleted, or their mode was changed. Now, those changes do show up in the summary, but so do renames, so the diffstat logic is inconsistent. Why does it show renames with zero lines changed, but not mode changes or added files with zero lines changed? So change the logic to not check for "is_renamed", but for "is_interesting" instead, where "interesting" is judged to be any action but a pure data change (because a pure data change with zero data changed really isn't worth showing, if we ever get one in our diffpairs). So if you did chmod +x Makefile git diff --stat before, it would show empty (" 0 files changed"), with this it shows Makefile | 0 1 file changed, 0 insertions(+), 0 deletions(-) which I think is a more correct diffstat (and then with "--summary" it shows *what* the metadata change to Makefile was - this is completely consistent with our handling of renamed files). Side note: the old behavior was *really* odd. With no changes at all, "git diff --stat" output was empty. With just a chmod, it said "0 files changed". No way is our legacy behavior sane. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-17Git 1.8.0-rc3Libravatar Junio C Hamano2-5/+4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-17Merge git://github.com/git-l10n/git-poLibravatar Junio C Hamano2-914/+913
* git://github.com/git-l10n/git-po: l10n: vi.po: update from v1.8.0-rc2-4-g42e55 l10n: Update Swedish translation (1964t0f0u)
2012-10-17Sync with 1.7.12.4Libravatar Junio C Hamano2-1/+25
2012-10-17Git 1.7.12.4Libravatar Junio C Hamano4-3/+27
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-17Merge branch 'jk/maint-http-half-auth-push' into maintLibravatar Junio C Hamano3-6/+6
* jk/maint-http-half-auth-push: http: fix segfault in handle_curl_result
2012-10-17Merge branch 'rr/git-uri-doc' into maintLibravatar Junio C Hamano1-2/+6
* rr/git-uri-doc: Git url doc: mark ftp/ftps as read-only and deprecate them
2012-10-17Merge branch 'bw/cp-a-is-gnuism' into maintLibravatar Junio C Hamano3-3/+3
* bw/cp-a-is-gnuism: tests: "cp -a" is a GNUism
2012-10-17Merge branch 'nd/doc-ignore' into maintLibravatar Junio C Hamano1-1/+5
* nd/doc-ignore: gitignore.txt: suggestions how to get literal # or ! at the beginning
2012-10-17Merge branch 'jc/doc-long-options' into maintLibravatar Junio C Hamano1-1/+11
* jc/doc-long-options: gitcli: parse-options lets you omit tail of long options
2012-10-17Merge branch 'jc/maint-t1450-fsck-order-fix' into maintLibravatar Junio C Hamano1-3/+1
* jc/maint-t1450-fsck-order-fix: t1450: the order the objects are checked is undefined
2012-10-17Merge branch 'rr/test-use-shell-path-not-shell' into maintLibravatar Junio C Hamano1-16/+16
* rr/test-use-shell-path-not-shell: test-lib: use $SHELL_PATH, not $SHELL
2012-10-17Merge branch 'rr/test-make-sure-we-have-git' into maintLibravatar Junio C Hamano2-10/+9
* rr/test-make-sure-we-have-git: t/test-lib: make sure Git has already been built
2012-10-17Merge branch 'po/maint-docs' into maintLibravatar Junio C Hamano5-15/+28
* po/maint-docs: Doc branch: show -vv option and alternative Doc clean: add See Also link Doc add: link gitignore Doc: separate gitignore pattern sources Doc: shallow clone deepens _to_ new depth
2012-10-17Merge branch 'jc/ll-merge-binary-ours' into maintLibravatar Junio C Hamano5-12/+41
* jc/ll-merge-binary-ours: ll-merge: warn about inability to merge binary files only when we can't attr: "binary" attribute should choose built-in "binary" merge driver merge: teach -Xours/-Xtheirs to binary ll-merge driver
2012-10-17Merge branch 'db/doc-custom-xmlto' into maintLibravatar Junio C Hamano1-2/+3
* db/doc-custom-xmlto: Documentation/Makefile: Allow custom XMLTO binary
2012-10-17Merge branch 'master' of https://github.com/nafmo/git-l10n-svLibravatar Jiang Xin1-441/+438
* 'master' of https://github.com/nafmo/git-l10n-sv: l10n: Update Swedish translation (1964t0f0u)
2012-10-17Merge branch 'master' of git://github.com/vnwildman/gitLibravatar Jiang Xin1-473/+475
* 'master' of git://github.com/vnwildman/git: l10n: vi.po: update from v1.8.0-rc2-4-g42e55
2012-10-17l10n: vi.po: update from v1.8.0-rc2-4-g42e55Libravatar Tran Ngoc Quan1-473/+475
* translate 3 new messages * review quotes Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2012-10-16Documentation/RelNotes: remove "updated up to this revision" markersLibravatar Thomas Ackermann5-25/+0
These were used to keep track of the last commit a release notes entry was written for, and should have been removed when cutting the final release. Signed-off-by: Thomas Ackermann <th.acker@arcor.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-16Update draft release notes to 1.8.0Libravatar Junio C Hamano1-0/+7
We are almost there... Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-16Merge branch 'jk/maint-http-half-auth-push'Libravatar Junio C Hamano3-6/+6
Fixes a regression in maint-1.7.11 (v1.7.11.7), maint (v1.7.12.1) and master (v1.8.0-rc0). * jk/maint-http-half-auth-push: http: fix segfault in handle_curl_result
2012-10-16l10n: Update Swedish translation (1964t0f0u)Libravatar Peter Krefting1-441/+438
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2012-10-16l10n: Update git.pot (3 new, 6 removed messages)Libravatar Jiang Xin1-437/+415
This po/git.pot update is generated from v1.8.0-rc2-4-g42e55. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-10-16Merge branch 'master' of git://github.com/vnwildman/gitLibravatar Jiang Xin1-672/+4096
* 'master' of git://github.com/vnwildman/git: l10n: vi.po: update translation upto cc76011
2012-10-15l10n: vi.po: update translation upto cc76011Libravatar Tran Ngoc Quan1-672/+4096
* translate all new messages (100%) * review some others Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2012-10-13Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: Fix spelling error in post-receive-email hook
2012-10-13Fix spelling error in post-receive-email hookLibravatar Richard Fearn1-1/+1
Signed-off-by: Richard Fearn <richardfearn@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-12Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: gitweb.cgi: fix "comitter_tz" typo in feed
2012-10-12http: fix segfault in handle_curl_resultLibravatar Jeff King3-6/+6
When we create an http active_request_slot, we can set its "results" pointer back to local storage. The http code will fill in the details of how the request went, and we can access those details even after the slot has been cleaned up. Commit 8809703 (http: factor out http error code handling) switched us from accessing our local results struct directly to accessing it via the "results" pointer of the slot. That means we're accessing the slot after it has been marked as finished, defeating the whole purpose of keeping the results storage separate. Most of the time this doesn't matter, as finishing the slot does not actually clean up the pointer. However, when using curl's multi interface with the dumb-http revision walker, we might actually start a new request before handing control back to the original caller. In that case, we may reuse the slot, zeroing its results pointer, and leading the original caller to segfault while looking for its results inside the slot. Instead, we need to pass a pointer to our local results storage to the handle_curl_result function, rather than relying on the pointer in the slot struct. This matches what the original code did before the refactoring (which did not use a separate function, and therefore just accessed the results struct directly). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-12gitweb.cgi: fix "comitter_tz" typo in feedLibravatar Dylan Alex Simon1-1/+1
gitweb's feeds sometimes contained committer timestamps in the wrong timezone due to a misspelling. Signed-off-by: Dylan Simon <dylan@dylex.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-11Git 1.8.0-rc2Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-10Merge branch 'rr/git-uri-doc'Libravatar Junio C Hamano1-2/+6
* rr/git-uri-doc: Git url doc: mark ftp/ftps as read-only and deprecate them
2012-10-10Merge branch 'bw/cp-a-is-gnuism'Libravatar Junio C Hamano3-3/+3
* bw/cp-a-is-gnuism: tests: "cp -a" is a GNUism
2012-10-10Merge branch 'nd/doc-ignore'Libravatar Junio C Hamano1-1/+5
* nd/doc-ignore: gitignore.txt: suggestions how to get literal # or ! at the beginning
2012-10-10Merge branch 'jc/doc-long-options'Libravatar Junio C Hamano1-1/+11
* jc/doc-long-options: gitcli: parse-options lets you omit tail of long options
2012-10-10Sync with maintLibravatar Junio C Hamano1-0/+5
* maint: attr: a note about the order of .gitattributes lookup
2012-10-10Merge git://bogomips.org/git-svnLibravatar Junio C Hamano2-2/+25
* git://bogomips.org/git-svn: svn test: escape peg revision separator using empty peg rev git svn: work around SVN 1.7 mishandling of svn:special changes
2012-10-10svn test: escape peg revision separator using empty peg revLibravatar Jonathan Nieder1-1/+1
This test script uses "svn cp" to create a branch with an @-sign in its name: svn cp "pr ject/trunk" "pr ject/branches/not-a@{0}reflog" That sets up for later tests that fetch the branch and check that git svn mangles the refname appropriately. Unfortunately, modern svn versions interpret path arguments with an @-sign as an example of path@revision syntax (which pegs a path to a particular revision) and truncate the path or error out with message "svn: E205000: Syntax error parsing peg revision '{0}reflog'". When using subversion 1.6.x, escaping the @ sign as %40 avoids trouble (see 08fd28bb, 2010-07-08). Newer versions are stricter: $ svn cp "$repo/pr ject/trunk" "$repo/pr ject/branches/not-a%40{reflog}" svn: E205000: Syntax error parsing peg revision '%7B0%7Dreflog' The recommended method for escaping a literal @ sign in a path passed to subversion is to add an empty peg revision at the end of the path ("branches/not-a@{0}reflog@"). Do that. Pre-1.6.12 versions of Subversion probably treat the trailing @ as another literal @-sign (svn issue 3651). Luckily ever since v1.8.0-rc0~155^2~7 (t9118: workaround inconsistency between SVN versions, 2012-07-28) the test can survive that. Tested with Debian Subversion 1.6.12dfsg-6 and 1.7.5-1 and r1395837 of Subversion trunk (1.8.x). Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Tested-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2012-10-10git svn: work around SVN 1.7 mishandling of svn:special changesLibravatar Jonathan Nieder1-1/+24
Subversion represents symlinks as ordinary files with content starting with "link " and the svn:special property set to "*". Thus a file can switch between being a symlink and a non-symlink simply by toggling its svn:special property, and new checkouts will automatically write a file of the appropriate type. Likewise, in subversion 1.6 and older, running "svn update" would notice changes in filetype and update the working copy appropriately. Starting in subversion 1.7 (issue 4091), changes to the svn:special property trip an assertion instead: $ svn up svn-tree Updating 'svn-tree': svn: E235000: In file 'subversion/libsvn_wc/update_editor.c' \ line 1583: assertion failed (action == svn_wc_conflict_action_edit \ || action == svn_wc_conflict_action_delete || action == \ svn_wc_conflict_action_replace) Revisions prepared with ordinary svn commands ("svn add" and not "svn propset") don't trip this because they represent these filetype changes using a replace operation, which is approximately equivalent to removal followed by adding a new file and works fine. Follow suit. Noticed using t9100. After this change, git-svn's file-to-symlink changes are sent in a format that modern "svn update" can handle and tests t9100.11-13 pass again. [ew: s,git-svn\.perl,perl/Git/SVN/Editor.pm,g] Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2012-10-10MALLOC_CHECK: Allow checking to be disabled from config.makLibravatar Ramsay Jones1-0/+1
The malloc checks can be disabled using the TEST_NO_MALLOC_CHECK variable, either from the environment or command line of an 'make test' invocation. In order to allow the malloc checks to be disabled from the 'config.mak' file, we add TEST_NO_MALLOC_CHECK to the environment using an export directive. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-10attr: a note about the order of .gitattributes lookupLibravatar Nguyen Thai Ngoc Duy1-0/+5
This is the documentation part of 1a9d7e9 (attr.c: read .gitattributes from index as well. - 2007-08-14) 06f33c1 (Read attributes from the index that is being checked out - 2009-03-13) Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-09Merge branch 'maint'Libravatar Junio C Hamano1-7/+7
* maint: l10n: de.po: fix a few minor typos
2012-10-09configure.ac: Add missing comma to CC_LD_DYNPATHLibravatar Øyvind A. Holm1-1/+1
40bfbde ("build: don't duplicate substitution of make variables", 2012-09-11) by mistake removed a necessary comma at the end of "CC_LD_DYNPATH=-Wl,rpath," in line 414. When executing "./configure --with-zlib=PATH", this resulted in [...] CC xdiff/xhistogram.o AR xdiff/lib.a LINK git-credential-store /usr/bin/ld: bad -rpath option collect2: ld returned 1 exit status make: *** [git-credential-store] Error 1 $ during make. Signed-off-by: Øyvind A. Holm <sunny@sunbase.org> Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-09Merge branch 'maint' of git://github.com/git-l10n/git-po into maintLibravatar Junio C Hamano1-7/+7
* 'maint' of git://github.com/git-l10n/git-po: l10n: de.po: fix a few minor typos