b91779f | Junio C Hamano | 15 December 2010, 19:45:36 UTC | Git 1.7.2.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2010, 19:45:36 UTC |
9db41eb | Junio C Hamano | 15 December 2010, 19:40:40 UTC | Git 1.7.1.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2010, 19:40:40 UTC |
cb198b3 | Junio C Hamano | 15 December 2010, 19:38:19 UTC | Git 1.7.0.9 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2010, 19:38:19 UTC |
abf411e | Junio C Hamano | 15 December 2010, 19:32:57 UTC | Git 1.6.6.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2010, 19:32:57 UTC |
ec82874 | Junio C Hamano | 15 December 2010, 19:27:41 UTC | Git 1.6.5.9 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2010, 19:27:41 UTC |
88fcc52 | Junio C Hamano | 15 December 2010, 19:19:11 UTC | Git 1.6.4.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2010, 19:19:11 UTC |
3017ed6 | Jakub Narebski | 14 December 2010, 23:34:01 UTC | gitweb: Introduce esc_attr to escape attributes of HTML elements It is needed only to escape attributes of handcrafted HTML elements, and not those generated using CGI.pm subroutines / methods for HTML generation. While at it, add esc_url and esc_html where needed, and prefer to use CGI.pm HTML generating methods than handcrafted HTML code. Most of those are probably unnecessary (could be exploited only by person with write access to gitweb config, or at least access to the repository). This fixes CVE-2010-3906 Reported-by: Emanuele Gentili <e.gentili@tigersecurity.it> Helped-by: John 'Warthog9' Hawley <warthog9@kernel.org> Helped-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 December 2010, 19:16:31 UTC |
2850c1a | Junio C Hamano | 02 December 2010, 22:28:01 UTC | Git 1.7.2.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2010, 22:28:01 UTC |
bd01c6d | Junio C Hamano | 02 December 2010, 20:18:49 UTC | Git 1.7.1.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2010, 20:18:49 UTC |
cbcab75 | Junio C Hamano | 02 December 2010, 20:06:06 UTC | Git 1.7.0.8 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2010, 20:13:27 UTC |
2de132f | Junio C Hamano | 02 December 2010, 00:40:20 UTC | Merge branch 'maint-1.7.1' into maint-1.7.2 * maint-1.7.1: add: introduce add.ignoreerrors synonym for add.ignore-errors | 02 December 2010, 00:40:20 UTC |
e760924 | Junio C Hamano | 02 December 2010, 00:37:34 UTC | Merge branch 'maint-1.7.0' into maint-1.7.1 * maint-1.7.0: add: introduce add.ignoreerrors synonym for add.ignore-errors | 02 December 2010, 00:37:34 UTC |
6b3020a | Jonathan Nieder | 01 December 2010, 18:36:15 UTC | add: introduce add.ignoreerrors synonym for add.ignore-errors The "[add] ignore-errors" tweakable introduced by v1.5.6-rc0~30^2 (Add a config option to ignore errors for git-add, 2008-05-12) does not follow the usual convention for naming values in the git configuration file. What convention? Glad you asked. The section name indicates the affected subsystem. The subsection name, if any, indicates which of an unbound set of things to set the value for. The variable name describes the effect of tweaking this knob. The section and variable names can be broken into words using bumpyCaps in documentation as a hint to the reader. These word breaks are not significant at the level of code, since the section and variable names are not case sensitive. The name "add.ignore-errors" includes a dash, meaning a naive configuration file like [add] ignoreErrors does not have any effect. Avoid such confusion by renaming to the more consistent add.ignoreErrors, but keep the old version for backwards compatibility. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2010, 21:40:12 UTC |
bd40d25 | knittl | 01 December 2010, 13:17:00 UTC | bash: Match lightweight tags in prompt The bash prompt would display a commit's object name when having checked out a lightweight tag. Provide `--tags` to `git describe` in the completion script, so it will display lightweight tag names, as it already does for annotated tags. Signed-off-by: Daniel Knittl-Frank <knittl89+git@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2010, 19:51:59 UTC |
dc91e1b | Jari Aalto | 01 December 2010, 14:51:25 UTC | git-commit.txt: (synopsis): move -i and -o before "--" All options, including -i and -o, must come before "--" which is the end of options marker. Reported-by: Joey Hess <joey@kitenet.net> Signed-off-by: Jari Aalto <jari.aalto@cante.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2010, 19:26:43 UTC |
e22148f | Junio C Hamano | 11 September 2010, 17:53:29 UTC | t3101: modernise style Also add a few " &&" cascade that were missing. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2010, 20:46:58 UTC |
d555ff5 | René Scharfe | 11 September 2010, 09:59:18 UTC | compat/nedmalloc: don't force NDEBUG on the rest of git Define the nedmalloc feature configuration macros for nedmalloc.o, only. This keeps assert(3) working for the rest of the git source; it was turned off for nedmalloc users before by defining NDEBUG globally. Also remove -DUSE_NED_ALLOCATOR as this macro isn't used anywhere. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 September 2010, 17:23:03 UTC |
9904fad | Mark Lodato | 10 September 2010, 01:39:37 UTC | config.txt: fix placement of diff.noprefix In git-config(1), diff.noprefix was placed in between diff.mnemonicprefix and the list of mnemonic prefixes, which is obviously incorrect and very confusing to readers. Now, it is located after the end of the explanation of mnemonicprefix, which makes much more sense. Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 September 2010, 16:31:13 UTC |
1b6ecba | Brandon Casey | 09 September 2010, 19:02:46 UTC | xdiff-interface.c: always trim trailing space from xfuncname matches Generally, trailing space is removed from the string matched by the xfuncname patterns. The exception is when the matched string exceeds the length of the fixed-size buffer that it will be copied in to. But, a string that exceeds the buffer can still contain trailing space in the portion of the string that will be copied into the buffer. So, simplify this code slightly, and just perform the trailing space removal always. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 September 2010, 00:18:29 UTC |
ef5644e | Brandon Casey | 09 September 2010, 19:02:45 UTC | diff.c: call regfree to free memory allocated by regcomp when necessary Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 September 2010, 00:18:04 UTC |
04df568 | Elijah Newren | 06 September 2010, 21:53:24 UTC | revert: Fix trivial comment style issue Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 September 2010, 00:33:59 UTC |
e92fa51 | Elijah Newren | 06 September 2010, 21:40:16 UTC | cache_tree_free: Fix small memory leak Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 September 2010, 00:32:28 UTC |
af24059 | Junio C Hamano | 06 September 2010, 07:11:59 UTC | Merge branch 'xx/trivial' into maint * xx/trivial: tag.c: whitespace breakages fix Fix whitespace issue in object.c t5505: add missing && | 06 September 2010, 07:11:59 UTC |
d2c030d | Junio C Hamano | 06 September 2010, 05:32:05 UTC | tag.c: whitespace breakages fix Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 September 2010, 05:32:05 UTC |
55b4e9e | Jared Hance | 05 September 2010, 19:36:33 UTC | Fix whitespace issue in object.c Change some expanded tabs (spaces) to tabs in object.c. Signed-off-by: Jared Hance <jaredhance@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 September 2010, 05:12:29 UTC |
65b26eb | Jens Lehmann | 05 September 2010, 12:56:11 UTC | t5505: add missing && Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 September 2010, 05:10:22 UTC |
dd34b6b | Junio C Hamano | 03 September 2010, 16:38:53 UTC | Git 1.7.2.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 September 2010, 16:38:53 UTC |
e78d01b | Thiago Farina | 30 August 2010, 03:30:22 UTC | builtin/merge_recursive.c: Add an usage string and make use of it. This improves the usage output by adding builtin_merge_recursive_usage string that follows the same pattern used by the other builtin commands. The previous output for git merger-recursive was: usage: merge-recursive <base>... -- <head> <remote> ... Now the output is: usage: git merge-recursive <base>... -- <head> <remote> ... Since cmd_merge_recursive is used to handle four different commands we need the %s in the usage string, so the following example: $ git merge-subtree -h Will output: usage: git merge-subtree <base>... -- <head> <remote> ... Signed-off-by: Thiago Farina <tfransosi@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 September 2010, 16:37:10 UTC |
22da742 | Junio C Hamano | 01 September 2010, 21:15:35 UTC | Prepare for 1.7.2.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 September 2010, 22:10:03 UTC |
af6c6e0 | Junio C Hamano | 01 September 2010, 21:05:05 UTC | Merge branch 'gp/pack-refs-remove-empty-dirs' into maint * gp/pack-refs-remove-empty-dirs: pack-refs: remove newly empty directories | 01 September 2010, 21:05:05 UTC |
c7f649a | Junio C Hamano | 01 September 2010, 20:57:23 UTC | Merge branch 'sg/rerere-gc-old-still-used' into maint * sg/rerere-gc-old-still-used: rerere: fix overeager gc mingw_utime(): handle NULL times parameter | 01 September 2010, 20:57:23 UTC |
e4f8fce | Junio C Hamano | 01 September 2010, 20:56:10 UTC | Merge branch 'np/maint-huge-delta-generation' into maint * np/maint-huge-delta-generation: fix >4GiB source delta assertion failure | 01 September 2010, 20:56:10 UTC |
6da28b4 | Junio C Hamano | 01 September 2010, 20:52:10 UTC | Merge branch 'dj/fetch-tagopt' into maint * dj/fetch-tagopt: fetch: allow command line --tags to override config | 01 September 2010, 20:52:10 UTC |
e917918 | Junio C Hamano | 01 September 2010, 20:50:46 UTC | Merge branch 'da/fix-submodule-sync-superproject-config' into maint * da/fix-submodule-sync-superproject-config: submodule sync: Update "submodule.<name>.url" | 01 September 2010, 20:50:46 UTC |
061219f | Junio C Hamano | 01 September 2010, 20:43:55 UTC | Merge branch 'en/rebase-against-rebase-fix' into maint * en/rebase-against-rebase-fix: pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches t5520-pull: Add testcases showing spurious conflicts from git pull --rebase | 01 September 2010, 20:43:55 UTC |
d3fd3d1 | Junio C Hamano | 30 August 2010, 06:36:57 UTC | Merge branch 'maint-1.7.1' into maint * maint-1.7.1: t0003: add missing && at end of lines | 30 August 2010, 06:36:57 UTC |
520ea85 | Matthieu Moy | 28 August 2010, 18:18:36 UTC | t0003: add missing && at end of lines Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 August 2010, 05:36:32 UTC |
ea16a03 | Jay Soffian | 26 August 2010, 21:34:29 UTC | for-each-ref: fix objectname:short bug When objectname:short was introduced, it forgot to copy the result of find_unique_abbrev. Because the result of find_unique_abbrev is a pointer to static buffer, this resulted in the same value being substituted in for each ref. Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 August 2010, 23:42:25 UTC |
2244eab | Elijah Newren | 25 August 2010, 02:53:11 UTC | tree-walk: Correct bitrotted comment about tree_entry() There was a code comment that referred to the "above two functions" but over time the functions immediately preceding the comment have changed. Just mention the relevant functions by name. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2010, 23:31:21 UTC |
1fda91b | Linus Torvalds | 24 August 2010, 17:33:59 UTC | Fix 'git log' early pager startup error case We start the pager too early for several git commands, which results in the errors sometimes going to the pager rather than show up as errors. This is often hidden by the fact that we pass in '-X' to less by default, which causes 'less' to exit for small output, but if you do export LESS=-S you can then clearly see the problem by doing git log --prretty which shows the error message ("fatal: unrecognized argument: --prretty") being sent to the pager. This happens for pretty much all git commands that use USE_PAGER, and then check arguments separately. But "git diff" does it too early too (even though it does an explicit setup_pager() call) This only fixes it for the trivial "git log" family case. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2010, 19:11:59 UTC |
ef45e4d | Jonathan Nieder | 22 August 2010, 16:26:38 UTC | parse-options: clarify PARSE_OPT_NOARG description Here "takes no argument" means "does not take an argument". The latter phrasing might make it clearer that PARSE_OPT_NOARG does not make an option with an argument that can optionally be left off. Noticed-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2010, 17:37:39 UTC |
6325ca3 | Jonathan Nieder | 24 August 2010, 07:14:53 UTC | t3302 (notes): Port to Solaris The time_notes script, which uses POSIX shell features, is currently sometimes run with a non-POSIX /bin/sh. Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2010, 16:58:40 UTC |
22e5e58 | Ralf Wildenhues | 22 August 2010, 11:12:12 UTC | Typos in code comments, an error message, documentation Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 August 2010, 20:25:08 UTC |
506049c | Nicolas Pitre | 21 August 2010, 05:00:13 UTC | fix >4GiB source delta assertion failure When people try insane things such as delta-compressing 4GiB files, they get this assertion: diff-delta.c:285: create_delta_index: Assertion `packed_entry - (struct index_entry *)mem == entries' failed. This happens because: 1) the 'entries' variable is an unsigned int 2) it is assigned with entries = (bufsize - 1) / RABIN_WINDOW (that itself is not a problem unless bufsize > 4G * RABIN_WINDOW) 3) the buffer is indexed from top to bottom starting at "data = buffer + entries * RABIN_WINDOW" and the multiplication here does indeed overflows, making the resulting top of the buffer much lower than expected. This makes the number of actually produced index entries smaller than what was computed initially, hence the assertion. Furthermore, the current delta encoding format cannot represent offsets into a reference buffer with more than 32 bits anyway. So let's just limit the number of entries to what the delta format can encode. Reported-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 August 2010, 06:53:26 UTC |
0eb032d | Jens Lehmann | 18 August 2010, 21:20:33 UTC | t7403: add missing &&'s Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 August 2010, 06:00:31 UTC |
ae3f721 | Mark Rada | 21 August 2010, 16:18:37 UTC | Tell ignore file about generate files in /gitweb/static Signed-off-by: Mark Rada <marada@uwaterloo.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 August 2010, 05:09:13 UTC |
55c6e6d | Junio C Hamano | 20 August 2010, 19:53:09 UTC | Merge branch 'jc/maint-follow-rename-fix' into maint * jc/maint-follow-rename-fix: log: test for regression introduced in v1.7.2-rc0~103^2~2 diff --follow: do call diffcore_std() as necessary diff --follow: do not waste cycles while recursing | 20 August 2010, 19:53:09 UTC |
16bfbe6 | Junio C Hamano | 20 August 2010, 19:53:09 UTC | Merge branch 'jn/maint-plug-leak' into maint * jn/maint-plug-leak: write-tree: Avoid leak when index refers to an invalid object read-tree: stop leaking tree objects core: Stop leaking ondisk_cache_entrys | 20 August 2010, 19:53:09 UTC |
316fa40 | Junio C Hamano | 20 August 2010, 19:53:09 UTC | Merge branch 'jn/fix-abbrev' into maint * jn/fix-abbrev: examples/commit: use --abbrev for commit summary checkout, commit: remove confusing assignments to rev.abbrev archive: abbreviate substituted commit ids again | 20 August 2010, 19:53:09 UTC |
7d61b31 | Junio C Hamano | 20 August 2010, 19:53:08 UTC | Merge branch 'vs/doc-spell' into maint * vs/doc-spell: Documentation: spelling fixes | 20 August 2010, 19:53:08 UTC |
09c6a8e | Junio C Hamano | 20 August 2010, 19:53:08 UTC | Merge branch 'jn/rebase-rename-am' into maint * jn/rebase-rename-am: rebase: protect against diff.renames configuration t3400 (rebase): whitespace cleanup Teach "apply --index-info" to handle rename patches t4150 (am): futureproof against failing tests t4150 (am): style fix | 20 August 2010, 19:53:08 UTC |
1e62788 | Junio C Hamano | 20 August 2010, 19:53:08 UTC | Merge branch 'jn/doc-pull' into maint * jn/doc-pull: Documentation: flesh out “git pull” description | 20 August 2010, 19:53:08 UTC |
0fd26f4 | Junio C Hamano | 20 August 2010, 19:53:07 UTC | Merge branch 'bc/use-more-hardlinks-in-install' into maint * bc/use-more-hardlinks-in-install: Makefile: make hard/symbolic links for non-builtins too Makefile: link builtins residing in bin directory to main git binary too | 20 August 2010, 19:53:07 UTC |
443938d | Junio C Hamano | 20 August 2010, 19:53:07 UTC | Merge branch 'tr/rfc-reset-doc' into maint * tr/rfc-reset-doc: Documentation/reset: move "undo permanently" example behind "make topic" Documentation/reset: reorder examples to match description Documentation/reset: promote 'examples' one section up Documentation/reset: separate options by mode Documentation/git-reset: reorder modes for soft-mixed-hard progression | 20 August 2010, 19:53:07 UTC |
8bd9fd5 | Matthieu Moy | 20 August 2010, 15:09:51 UTC | xmalloc: include size in the failure message Out-of-memory errors can either be actual lack of memory, or bugs (like code trying to call xmalloc(-1) by mistake). A little more information may help tracking bugs reported by users. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 August 2010, 16:27:38 UTC |
8c67c39 | Junio C Hamano | 19 August 2010, 23:03:18 UTC | Git 1.7.2.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 August 2010, 23:03:18 UTC |
745654f | Junio C Hamano | 19 August 2010, 22:49:54 UTC | Merge branch 'tr/xsize-bits' into maint * tr/xsize-bits: xsize_t: check whether we lose bits | 19 August 2010, 22:49:54 UTC |
6baa9bd | Junio C Hamano | 19 August 2010, 22:49:24 UTC | Merge branch 'jc/sha1-name-find-fix' into maint * jc/sha1-name-find-fix: sha1_name.c: fix parsing of ":/token" syntax Conflicts: sha1_name.c | 19 August 2010, 22:49:24 UTC |
0a4139b | Junio C Hamano | 18 August 2010, 23:30:11 UTC | Merge branch 'sp/fix-smart-http-deadlock-on-error' into maint * sp/fix-smart-http-deadlock-on-error: smart-http: Don't deadlock on server failure | 18 August 2010, 23:30:11 UTC |
0b9dca4 | David Aguilar | 18 August 2010, 15:58:33 UTC | submodule sync: Update "submodule.<name>.url" When "git submodule sync" synchronizes the repository URLs it only updates submodules' .git/config. However, the old URLs still exist in the super-project's .git/config. Update the super-project's configuration so that commands such as "git submodule update" use the URLs from .gitmodules. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 August 2010, 20:54:30 UTC |
6511312 | Ævar Arnfjörð Bjarmason | 15 August 2010, 10:16:25 UTC | log: test for regression introduced in v1.7.2-rc0~103^2~2 Add a regression test for the git log -M --follow $diff_option bug introduced in v1.7.2-rc0~103^2~2, $diff_option being diff related options like -p, --stat, --name-only etc. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 August 2010, 02:20:11 UTC |
ed36854 | Daniel Johnson | 11 August 2010, 22:57:20 UTC | fetch: allow command line --tags to override config Originally, if remote.<name>.tagopt was set, the --tags and option would have no effect when given to git fetch. So if tagopt="--no-tags" git fetch --tags would not actually fetch tags. This patch changes this behavior to only follow what is written in the config if there is no option passed by the command line. Signed-off-by: Daniel Johnson <ComputerDruid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 August 2010, 02:24:23 UTC |
44c48a9 | Junio C Hamano | 13 August 2010, 19:17:45 UTC | diff --follow: do call diffcore_std() as necessary Usually, diff frontends populate the output queue with filepairs without any rename information and call diffcore_std() to sort the renames out. When --follow is in effect, however, diff-tree family of frontend has a hack that looks like this: diff-tree frontend -> diff_tree_sha1() . populate diff_queued_diff . if --follow is in effect and there is only one change that creates the target path, then -> try_to_follow_renames() -> diff_tree_sha1() with no pathspec but with -C -> diffcore_std() to find renames . if rename is found, tweak diff_queued_diff and put a single filepair that records the found rename there -> diffcore_std() . tweak elements on diff_queued_diff by - rename detection - path ordering - pickaxe filtering We need to skip parts of the second call to diffcore_std() that is related to rename detection, and do so only when try_to_follow_renames() did find a rename. Earlier 1da6175 (Make diffcore_std only can run once before a diff_flush, 2010-05-06) tried to deal with this issue incorrectly; it unconditionally disabled any second call to diffcore_std(). This hopefully fixes the breakage. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 August 2010, 19:17:45 UTC |
39f75d2 | Junio C Hamano | 13 August 2010, 17:36:01 UTC | diff --follow: do not waste cycles while recursing The "--follow" logic is called from diff_tree_sha1() function, but the input trees to diff_tree_sha1() are not necessarily the top-level trees (compare_tree_entry() calls it while it recursively descends into subtrees). When a newly created path lives in somewhere deep in the source hierarchy, e.g. "platform/", but the rename source is in a totally different place in the destination hierarchy, e.g. "lang-api/src/com/...", running "try_to_find_renames()" while base is set to "platform/" is a wasted call. We only need to run the rename following at the very top level. Signed-off-by: Junio C Hamano <gitster@pobox.com> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> | 13 August 2010, 18:01:51 UTC |
cf65426 | Elijah Newren | 13 August 2010, 01:50:50 UTC | pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches Prior to c85c792 (pull --rebase: be cleverer with rebased upstream branches, 2008-01-26), pull --rebase would run git rebase $merge_head which resulted in a call to git format-patch ... --ignore-if-in-upstream $merge_head..$cur_branch This resulted in patches from $merge_head..$cur_branch being applied, as long as they did not already exist in $cur_branch..$merge_head. Unfortunately, when upstream is rebased, $merge_head..$cur_branch also refers to "old" commits that have already been rebased upstream, meaning that many patches that were already fixed upstream would be reapplied. This could result in many spurious conflicts, as well as reintroduce patches that were intentionally dropped upstream. So the algorithm was changed in c85c792 (pull --rebase: be cleverer with rebased upstream branches, 2008-01-26) and d44e712 (pull: support rebased upstream + fetch + pull --rebase, 2009-07-19). Defining $old_remote_ref to be the most recent entry in the reflog for @{upstream} that is an ancestor of $cur_branch, pull --rebase was changed to run git rebase --onto $merge_head $old_remote_ref which results in a call to git format-patch ... --ignore-if-in-upstream $old_remote_ref..$cur_branch The whole point of this change was to reduce the number of commits being reapplied, by avoiding commits that upstream already has or had. In the rebased upstream case, this change achieved that purpose. It is worth noting, though, that since $old_remote_ref is always an ancestor of $cur_branch (by its definition), format-patch will not know what upstream is and thus will not be able to determine if any patches are already upstream; they will all be reapplied. In the non-rebased upstream case, this new form is usually the same as the original code but in some cases $old_remote_ref can be an ancestor of $(git merge-base $merge_head $cur_branch) meaning that instead of avoiding reapplying commits that upstream already has, it actually includes more such commits. Combined with the fact that format-patch can no longer detect commits that are already upstream (since it is no longer told what upstream is), results in lots of confusion for users (e.g. "git is giving me lots of conflicts in stuff I didn't even change since my last push.") Cases where additional commits could be reapplied include forking from a commit other than the tracking branch, or amending/rebasing after pushing. Cases where the inability to detect upstreamed commits cause problems include independent discovery of a fix and having your patches get upstreamed by some alternative route (e.g. pulling your changes to a third machine, pushing from there, and then going back to your original machine and trying to pull --rebase). Fix the non-rebased upstream case by ignoring $old_remote_ref whenever it is contained in $(git merge-base $merge_head $cur_branch). This should have no affect on the rebased upstream case. Acked-by: Santi Béjar <santi@agolina.net> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 August 2010, 04:23:23 UTC |
3cee923 | Elijah Newren | 13 August 2010, 01:50:49 UTC | t5520-pull: Add testcases showing spurious conflicts from git pull --rebase Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 August 2010, 04:22:55 UTC |
452c6d5 | Matthieu Moy | 02 August 2010, 13:42:44 UTC | push: mention "git pull" in error message for non-fast forwards The message remains fuzzy to include "git pull", "git pull --rebase" and others, but directs the user to the simplest solution in the vast majority of cases. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 August 2010, 01:06:07 UTC |
9874606 | Jonathan Nieder | 12 August 2010, 22:11:15 UTC | Standardize do { ... } while (0) style Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 August 2010, 22:44:51 UTC |
0d1d6e5 | Brandon Casey | 12 August 2010, 20:55:54 UTC | t/t7003: replace \t with literal tab in sed expression The sed utilities on IRIX and Solaris do not interpret the sequence '\t' to mean a tab character; they read a literal character 't'. So, use a literal tab instead. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 August 2010, 22:35:04 UTC |
6e2a09d | Nelson Elhage | 12 August 2010, 14:18:12 UTC | index-pack: Don't follow replace refs. Without this, attempting to index a pack containing objects that have been replaced results in a fatal error that looks like: fatal: SHA1 COLLISION FOUND WITH <replaced-object> ! Signed-off-by: Nelson Elhage <nelhage@ksplice.com> Acked-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 August 2010, 20:26:05 UTC |
b5e233e | Matthieu Moy | 11 August 2010, 08:14:13 UTC | post-receive-email: remove spurious commas in email subject The previous form produced subjects like [SCM] project.git branch, foo, updated. ... The new one will produce the lighter [SCM] project.git branch foo updated. ... Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 August 2010, 18:23:25 UTC |
7e7db5e | Raja R Harinath | 13 July 2010, 11:51:48 UTC | fast-import: export correctly marks larger than 2^20-1 dump_marks_helper() has a bug when dumping marks larger than 2^20-1, i.e., when the sparse array has more than two levels. The bug was that the 'base' counter was being shifted by 20 bits at level 3, and then again by 10 bits at level 2, rather than a total shift of 20 bits in this argument to the recursive call: (base + k) << m->shift There are two ways to fix this correctly, the elegant: (base + k) << 10 and the one I chose due to edit distance: base + (k << m->shift) Signed-off-by: Raja R Harinath <harinath@hurrynot.org> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 August 2010, 17:45:15 UTC |
5536934 | Ævar Arnfjörð Bjarmason | 10 August 2010, 12:14:25 UTC | t/lib-git-svn.sh: use $PERL_PATH for perl, not perl from $PATH Change the git-svn tests to use $PERL_PATH, not the "perl" in $PATH. Using perl in $PATH was added by Sam Vilain in v1.6.6-rc0~95^2~3, Philippe Bruhat introduced $PERL_PATH to the test suite in v1.6.6-rc0~9^2, but the lib-git-svn.sh tests weren't updated to use the new convention. This resulted in the git-svn tests always being skipped on my system. My /usr/bin/perl has access to SVN::Core and SVN::Repos, but the perl in my $PATH does not. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 August 2010, 17:41:08 UTC |
b6b56ac | Jonathan Nieder | 10 August 2010, 03:32:11 UTC | write-tree: Avoid leak when index refers to an invalid object Noticed by valgrind during test t0000.35 “writing this tree without --missing-ok”. Even in the cherry-pick foo..bar code path, such an error is the end of the line. But maybe some day an interactive porcelain will want to link to libgit, making this matter. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 August 2010, 16:58:38 UTC |
1ce584b | Jonathan Nieder | 10 August 2010, 03:33:44 UTC | read-tree: stop leaking tree objects The underlying problem is that the fill_tree_descriptor() API is easy to misuse, and this patch does not fix that. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 August 2010, 16:58:18 UTC |
59efba6 | Jonathan Nieder | 10 August 2010, 03:28:07 UTC | core: Stop leaking ondisk_cache_entrys Noticed with valgrind. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 August 2010, 16:57:43 UTC |
d8faea9 | Jakub Narebski | 09 August 2010, 14:50:53 UTC | diff: strip extra "/" when stripping prefix There are two ways a user might want to use "diff --relative": 1. For a file in a directory, like "subdir/file", the user can use "--relative=subdir/" to strip the directory. 2. To strip part of a filename, like "foo-10", they can use "--relative=foo-". We currently handle both of those situations. However, if the user passes "--relative=subdir" (without the trailing slash), we produce inconsistent results. For the unified diff format, we collapse the double-slash of "a//file" correctly into "a/file". But for other formats (raw, stat, name-status), we end up with "/file". We can do what the user means here and strip the extra "/" (and only a slash). We are not hurting any existing users of (2) above with this behavior change because the existing output for this case was nonsensical. Patch by Jakub, tests and commit message by Jeff King. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 August 2010, 16:46:47 UTC |
497d9c3 | Jonathan Nieder | 07 August 2010, 21:56:47 UTC | gitweb: clarify search results page when no matching commit found When searching commits for a string that never occurs, the results page looks something like this: projects / foo.git / search \o/ summary | ... | tree [commit] search: [ kfjdkas ] [ ]re first ⋅ prev ⋅ next Merge branch 'maint' Foo: a demonstration project Without a list of hits to compare it to, the header describing the commit named by the hash parameter (usually HEAD) may itself look like a hit. Add some text (“No match.”) to replace the empty list of hits and avoid this confusion. While at it, remove some nearby dead code, left behind from a simplification a few years ago (v1.5.4-rc0~276^2~4, 2007-11-01). Noticed-by: Erick Mattos <erick.mattos@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 20:05:35 UTC |
977ed83 | Jonathan Nieder | 09 August 2010, 01:32:43 UTC | Documentation: add a FILES section for show-ref A peek at where the refs are kept might help understanding, even if, as the DESCRIPTION section suggests, direct access is not part of the public API. Balance that out with a pointer to update-ref. Suggested-by: Geoff Russell <geoffrey.russell@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 19:33:50 UTC |
48c250a | Jonathan Nieder | 08 August 2010, 21:48:59 UTC | Makefile: add missing dependency on http.h v1.7.1-rc0~65^2~2 (http: init and cleanup separately from http-walker, 2010-03-02) introduced a direct dependency from http-fetch on the HTTP request library. Declare it. Detected with "make CHECK_HEADER_DEPENDENCIES=1". Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 19:13:27 UTC |
5fedde3 | Jonathan Nieder | 08 August 2010, 21:25:11 UTC | Makefile: add missing dependencies on url.h v1.7.2-rc0~56^2 and its parent (decode file:// and ssh:// URLs, 2010-05-23) introduced a new url library. Update the Makefile with the relevant dependencies. Detected with "make CHECK_HEADER_DEPENDENCIES=1". Cc: Jeff King <peff@peff.net> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 19:12:22 UTC |
b1c7946 | Michael J Gruber | 08 August 2010, 15:31:34 UTC | Documentation/git-log: Clarify --full-diff The current description gives the impression that "--full-diff" affects "log -p" only. Make it clearer that it affects all diff-based output types. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 18:53:32 UTC |
1bc6bf6 | Willy Tarreau | 08 August 2010, 05:13:32 UTC | git-rebase: fix typo when parsing --force-rebase Due to two missing hyphens, The "force" keyword on the command line would be taken as an alias for the --force-rebase option. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 18:51:50 UTC |
1702b13 | Ævar Arnfjörð Bjarmason | 07 August 2010, 23:09:45 UTC | imap-send: Fix sprintf usage When composing a command for the imap server, imap-send uses a single nfsnprintf() invocation for brevity instead of dealing separately with the case when there is a message to be sent and the case when there isn’t. The unused argument in the second case, while valid, is confusing for static analyzers and human readers. v1.6.4-rc0~117 (imap-send: add support for IPv6, 2009-05-25) mistakenly used %hu as the format for an int “port”, by analogy with existing usage for the unsigned short “addr.sin_port”. Use %d instead. Noticed with clang. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 18:35:46 UTC |
24aea03 | René Scharfe | 06 August 2010, 20:28:05 UTC | prune: allow --dry-run for -n and --verbose for -v For consistency with other git commands, let git prune accept the long options --dry-run and --verbose for the respective short ones -n and -v. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 17:13:18 UTC |
e93487d | René Scharfe | 06 August 2010, 20:28:09 UTC | notes: allow --dry-run for -n and --verbose for -v For consistency with other git commands, let the prune subcommand of git notes accept the long options --dry-run and --verbose for the respective short ones -n and -v. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 17:12:50 UTC |
cf958af | Matthieu Moy | 05 August 2010, 16:14:25 UTC | Document -B<n>[/<m>], -M<n> and -C<n> variants of -B, -M and -C These options take an optional argument, but this optional argument was not documented. Original patch by Matthieu Moy, but documentation for -B mostly copied from the explanations of Junio C Hamano. While we're there, fix a typo in a comment in diffcore.h. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 16:16:11 UTC |
08b2982 | Brad King | 03 August 2010, 18:41:50 UTC | Documentation: cite git-am from git-apply Users reading git-apply documentation may also be interested in git-am, especially after receiving an email created with git-format-patch. The documentation for git-am already references git-apply. Add the reverse. Signed-off-by: Brad King <brad.king@kitware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 16:15:41 UTC |
3c8710a | Thomas Rast | 29 July 2010, 15:10:22 UTC | t7003: fix subdirectory-filter test The test would not fail if the filtering failed to do anything, since in test -z "$(git diff HEAD directorymoved:newsubdir)"' 'directorymoved:newsubdir' is not valid, so git-diff fails without printing anything on stdout. But then the exit status of git-diff is lost, whereas test -z "" succeeds. Use 'git diff --exit-code' instead, which does the right thing and has the added bonus of showing the differences if there are any. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2010, 16:15:01 UTC |
b4ee10f | Shawn O. Pearce | 06 August 2010, 21:19:44 UTC | smart-http: Don't deadlock on server failure If the remote HTTP server fails (e.g. returns 404 or 500) when we posted the RPC to it, we won't have sent anything to the background Git process that is supposed to handle the stream. Because we didn't send anything, its waiting for input from remote-curl, and remote-curl cannot read its response payload because doing so would lead to a deadlock. Send the background task EOF on its input before we try to read its response back, that way it will break out of its read loop and terminate. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 August 2010, 22:30:16 UTC |
49cc460 | Jonathan Nieder | 06 August 2010, 03:39:22 UTC | Allow "check-ref-format --branch" from subdirectory check-ref-format --branch requires access to the repository to resolve refs like @{-1}. Noticed by Nguyễn Thái Ngọc Duy. Cc: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 August 2010, 17:01:45 UTC |
cfbe22f | Jonathan Nieder | 06 August 2010, 03:36:07 UTC | check-ref-format: handle subcommands in separate functions The code for each subcommand should be easier to read and manipulate this way. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 August 2010, 17:00:39 UTC |
2429e8d | Matthieu Moy | 05 August 2010, 13:08:05 UTC | pretty-options.txt: match --format's documentation with implementation. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 August 2010, 16:49:49 UTC |
bb89e84 | Junio C Hamano | 03 August 2010, 22:17:34 UTC | Merge branch 'sv/maint-diff-q-clear-fix' into maint * sv/maint-diff-q-clear-fix: Fix DIFF_QUEUE_CLEAR refactoring | 03 August 2010, 22:17:34 UTC |
7b6e6b3 | Junio C Hamano | 03 August 2010, 22:17:11 UTC | Merge branch 'rr/svn-fe' into maint * rr/svn-fe: contrib/svn-fe: Add the svn-fe target to .gitignore contrib/svn-fe: Fix IncludePath | 03 August 2010, 22:17:11 UTC |
e9aa241 | Junio C Hamano | 03 August 2010, 22:16:38 UTC | Merge branch 'pt/git-gui' into maint * pt/git-gui: git-gui: fix size and position of window panes on startup git-gui: mc cannot be used before msgcat has been loaded git-gui: use textconv filter for diff and blame git-gui: Avoid using the <<Copy>> binding as a menu accelerator on win32 git-gui: fix shortcut creation on cygwin git-gui: fix PATH environment for mingw development environment git-gui: fix usage of _gitworktree when creating shortcut for windows git-gui: fix "Explore Working Copy" for Windows again git-gui: fix usage of themed widgets variable git-gui: Handle failure of core.worktree to identify the working directory. git-gui: check whether systems nice command works or disable it | 03 August 2010, 22:16:38 UTC |
755a605 | Ramkumar Ramachandra | 29 July 2010, 05:36:20 UTC | contrib/svn-fe: Add the svn-fe target to .gitignore Add the svn-fe target to .gitignroe. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 August 2010, 13:49:22 UTC |
199f549 | Ramkumar Ramachandra | 29 July 2010, 05:36:19 UTC | contrib/svn-fe: Fix IncludePath Include the path "../../vcs-svn" while compiling it in the Makefile and change svn-fe.c to include svndump.h. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 August 2010, 13:49:20 UTC |
3f8fc18 | Jonathan Nieder | 02 August 2010, 21:39:30 UTC | Documentation: flesh out “git pull” description The current description in the pull man page does not say much more than that “git pull” is fetch + merge. Though that is all a person needs to know in the end, it would be useful to summarize a bit about what those commands do for new readers. Most of this description is taken from the “git merge” docs. Now that we explain how to back out of a failed merge (reset --merge), we can tone down the warning against that a bit. Except, as Thomas noticed, there’s a risk with that because people might read this version of the manpage online and then conclude that it is safe to try a merge with uncommitted changes, only to find that their “git reset” doesn't support --merge yet. Or worse, verify that their git-reset has --merge by a quick test (1b5b465 is in 1.6.2) but then find that it does not help with backing out of a merge (e11d7b5 is only in 1.7.0!). So keep the warning. With clarifications from Ævar, Thomas, and Junio. Noticed-by: Geoff Russell <geoffrey.russell@gmail.com> Cc: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Cc: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 August 2010, 22:48:18 UTC |
f7bff00 | Junio C Hamano | 02 August 2010, 21:37:06 UTC | sha1_name.c: fix parsing of ":/token" syntax The parser tried to clean up the object flags it used while finding commits with matching string, but was not doing a very good job at it. This caused "checkout -b new ':/token'", which internally tries to parse ':/token' twice as an object name, to fail when the commit in question was reachable from only one ref. The mask bits given to pop_most_recent_commit(&list, MASK) means "I have already been on the list to be processed, so please do not place me again even if I am found to be a parent of some other commit on the list." So mark them when we add them to the list at the beginning. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 August 2010, 21:40:48 UTC |