swh:1:snp:87728f882295b5ba27035837248a04c5be121c53

sort by:
Revision Author Date Message Commit Date
7d182f5 Documentation: receive.denyCurrentBranch defaults to 'refuse' acd2a45 (Refuse updating the current branch in a non-bare repository via push, 2009-02-11) changed the default to refuse such a push, but it forgot to update the docs. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2010, 18:07:06 UTC
d23e757 bash: complete *_HEAD refs if present We already complete HEAD, of course, and might as well complete the other common refs mentioned in the rev-parse man page: FETCH_HEAD, ORIG_HEAD, and MERGE_HEAD. Signed-off-by: Ian Ward Comfort <icomfort@stanford.edu> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2010, 18:03:44 UTC
14cd458 Improve error messages from 'git stash show' The previous error message "fatal: Needed a single revision" is not very informative. Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2010, 02:23:24 UTC
3aff874 daemon.c: avoid accessing ss_family member of struct sockaddr_storage When NO_SOCKADDR_STORAGE is set for a platform, either sockaddr_in or sockaddr_in6 is used intead. Neither of which has an ss_family member. They have an sin_family and sin6_family member respectively. Since the addrcmp() function accesses the ss_family member of a sockaddr_storage struct, compilation fails on platforms which define NO_SOCKADDR_STORAGE. Since any sockaddr_* structure can be cast to a struct sockaddr and have its sa_family member read, do so here to workaround this issue. Thanks to Martin Storsjö for pointing out the fix, and Gary Vaughan for drawing attention to the issue. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2010, 02:07:09 UTC
e01de1c refs: ref entry with NULL sha1 is can be a dangling symref Brandon Casey noticed that t5505 had accidentally broken its && chain, hiding inconsistency between the code that writes the warning to the standard output and the test that expects to see the warning on the standard error, which was introduced by f8948e2 (remote prune: warn dangling symrefs, 2009-02-08). It turns out that the issue is deeper than that. After f8948e2, a symref that is dangling is marked with a NULL sha1, and the idea of using NULL sha1 to mean a deleted ref was scrapped, but somehow a follow-up eafb452 (do_one_ref(): null_sha1 check is not about broken ref, 2009-07-22) incorrectly reorganized do_one_ref(), still thinking NULL sha1 is never used in the code. Fix this by: - adopt Brandon's fix to t5505 test; - introduce REF_BROKEN flag to mark a ref that fails to resolve (dangling symref); - move the check for broken ref back inside the "if we are skipping dangling refs" code block. Signed-off-by: Junio C Hamano <gitster@pobox.com> 16 March 2010, 06:37:42 UTC
7325283 Documentation/git-read-tree: clarify 2-tree merge Clarify the description of the 2-tree merge by defining the terms which are used in the table, and by applying some small linguistic changes. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 March 2010, 22:25:17 UTC
71928f7 Documentation/git-read-tree: fix table layout Asciidoc takes the first non-space character in the first line of the paragraph as a reference point for preformatted layout, so adjust to that to make the table align. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 March 2010, 22:20:03 UTC
b75aea8 tests for "git add ignored-dir/file" without -f Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 March 2010, 07:23:22 UTC
29209cb dir: fix COLLECT_IGNORED on excluded prefixes As we walk the directory tree, if we see an ignored path, we want to add it to the ignored list only if it matches any pathspec that we were given. We used to check for the pathspec to appear explicitly. E.g., if we see "subdir/file" and it is excluded, we check to see if we have "subdir/file" in our pathspec. However, this interacts badly with the optimization to avoid recursing into ignored subdirectories. If "subdir" as a whole is ignored, then we never recurse, and consider only whether "subdir" itself is in our pathspec. It would not match a pathspec of "subdir/file" explicitly, even though it is the reason that subdir/file would be excluded. This manifests itself to the user as "git add subdir/file" failing to correctly note that the pathspec was ignored. This patch extends the in_pathspec logic to include prefix directory case. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 March 2010, 07:23:08 UTC
0d7c243 t0050: mark non-working test as such The test is to prepare an empty file "camelcase" in the index, remove and replace it with another file "CamelCase" with "1" as its contents in the working tree, and add it to the index, in a repository configured to be case insensitive. However, the test actually checked ls-files knows about a pathname that matches "camelcase" case insensitively. It didn't check if the added contents actually was the updated one. Mark the test as non-working. Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 March 2010, 07:22:50 UTC
8fcaca3 don't use default revision if a rev was specified If a revision is specified, it happens not to have any commits, don't use the default revision. By doing so, surprising and undesired behavior can happen, such as showing the reflog for HEAD when a branch was specified. [jc: squashed a test from René] Signed-off-by: Dave Olszewski <cxreg@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 March 2010, 05:23:43 UTC
8ca7880 for_each_recent_reflog_ent(): use strbuf, fix offset handling As Vladimir reported, "git log -g refs/stash" surprisingly showed the reflog of HEAD if the message in the reflog file was too long. To fix this, convert for_each_recent_reflog_ent() to use strbuf_getwholeline() instead of fgets(), for safety and to avoid any size limits for reflog entries. Also reverse the logic of the part of the function that only looks at file tails. It used to close the file if fgets() succeeded. The following fgets() call in the while loop was likely to fail in this case, too, so passing an offset to for_each_recent_reflog_ent() never worked. Change it to error out if strbuf_getwholeline() fails instead. Reported-by: Vladimir Panteleev <vladimir@thecybershadow.net> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> 13 March 2010, 21:18:09 UTC
34b383e t/Makefile: remove test artifacts upon "make clean" Signed-off-by: Junio C Hamano <gitster@pobox.com> 13 March 2010, 20:41:20 UTC
00fb3d2 blame: fix indent of line numbers Correct the calculation of the number of digits for line counts of the form 10^n-1 (9, 99, ...) in lineno_width(). This makes blame stop printing an extra space before the line numbers of files with that many total lines. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> 13 March 2010, 20:04:17 UTC
4a2284b t9400: Use test_cmp when appropriate Consistently using test_cmp would make debugging test scripts far easier, as output from them run under "-v" option becomes readable. Besides, some platforms' "diff" implementations lack "-q" option. Signed-off-by: Junio C Hamano <gitster@pobox.com> 12 March 2010, 05:40:33 UTC
7ff8b79 Merge accumulated fixes to prepare for 1.7.0.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 March 2010, 08:50:37 UTC
6eb3adf Merge branch 'mw/maint-gcc-warns-unused-write' into maint * mw/maint-gcc-warns-unused-write: run-command.c: fix build warnings on Ubuntu 08 March 2010, 08:36:02 UTC
990169b Merge branch 'fn/maint-mkdtemp-compat' into maint * fn/maint-mkdtemp-compat: Fix gitmkdtemp: correct test for mktemp() return value 08 March 2010, 08:36:02 UTC
bd08ecc Merge branch 'gb/maint-submodule-env' into maint * gb/maint-submodule-env: is_submodule_modified(): clear environment properly submodules: ensure clean environment when operating in a submodule shell setup: clear_local_git_env() function rev-parse: --local-env-vars option Refactor list of of repo-local env vars 08 March 2010, 08:36:02 UTC
030bc0a Merge branch 'as/maint-expire' into maint * as/maint-expire: reflog: honor gc.reflogexpire=never prune: honor --expire=never 08 March 2010, 08:36:01 UTC
193c7aa Merge branch 'ml/maint-grep-doc' into maint * ml/maint-grep-doc: grep docs: document --no-index option grep docs: --cached and <tree>... are incompatible grep docs: use AsciiDoc literals consistently grep docs: pluralize "Example" section 08 March 2010, 08:36:01 UTC
57c118c Merge branch 'jk/maint-push-tracking-wo-remote' into maint * jk/maint-push-tracking-wo-remote: push: fix segfault for odd config 08 March 2010, 08:36:01 UTC
2dd96ea Merge branch 'jc/fetch-param' into maint * jc/fetch-param: fetch --all/--multiple: keep all the fetched branch information builtin-fetch --all/--multi: propagate options correctly t5521: fix and modernize 08 March 2010, 08:36:00 UTC
162b464 Merge branch 'ne/pack-local-doc' into maint * ne/pack-local-doc: pack-objects documentation: Fix --honor-pack-keep as well. pack-objects documentation: reword "objects that appear in the standard input" Documentation: pack-objects: Clarify --local's semantics. 08 March 2010, 08:36:00 UTC
9194513 Merge branch 'jk/maint-add--interactive-delete' into maint * jk/maint-add--interactive-delete: add-interactive: fix bogus diff header line ordering 08 March 2010, 08:36:00 UTC
493e433 Merge branch 'mm/mkstemps-mode-for-packfiles' into maint * mm/mkstemps-mode-for-packfiles: Use git_mkstemp_mode instead of plain mkstemp to create object files git_mkstemps_mode: don't set errno to EINVAL on exit. Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later. git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument. Move gitmkstemps to path.c Add a testcase for ACL with restrictive umask. 08 March 2010, 08:36:00 UTC
6ae611f Merge branch 'jc/maint-fix-mailinfo-strip' into maint * jc/maint-fix-mailinfo-strip: mailinfo: do not strip leading spaces even for a header line 08 March 2010, 08:35:59 UTC
1f54d69 Merge branch 'jc/grep-author-all-match-implicit' into maint * jc/grep-author-all-match-implicit: "log --author=me --grep=it" should find intersection, not union 08 March 2010, 08:35:59 UTC
89cd4aa Merge branch 'jc/checkout-detached' into maint * jc/checkout-detached: Reword "detached HEAD" notification 08 March 2010, 08:35:59 UTC
4ac23f3 Merge branch 'maint-1.6.6' into maint * maint-1.6.6: 08 March 2010, 08:35:58 UTC
c214f2c Merge branch 'jc/maint-fix-test-perm' into maint-1.6.6 * jc/maint-fix-test-perm: lib-patch-mode.sh: Fix permission t6000lib: Fix permission 07 March 2010, 22:54:05 UTC
8499da0 Merge branch 'sp/maint-push-sideband' into maint-1.6.6 * sp/maint-push-sideband: receive-pack: Send internal errors over side-band #2 t5401: Use a bare repository for the remote peer receive-pack: Send hook output over side band #2 receive-pack: Wrap status reports inside side-band-64k receive-pack: Refactor how capabilities are shown to the client send-pack: demultiplex a sideband stream with status data run-command: support custom fd-set in async run-command: Allow stderr to be a caller supplied pipe 07 March 2010, 22:54:01 UTC
47b333f Merge branch 'hm/maint-imap-send-crlf' into maint-1.6.6 * hm/maint-imap-send-crlf: git-imap-send: Convert LF to CRLF before storing patch to draft box 07 March 2010, 22:53:57 UTC
b7380fa Merge branch 'gf/maint-sh-setup-nongit-ok' into maint-1.6.6 * gf/maint-sh-setup-nongit-ok: require_work_tree broken with NONGIT_OK 07 March 2010, 22:53:53 UTC
cb16bcc Merge branch 'jk/maint-rmdir-fix' into maint-1.6.6 * jk/maint-rmdir-fix: rm: fix bug in recursive subdirectory removal 07 March 2010, 22:53:50 UTC
11a1a49 Merge branch 'rs/optim-text-wrap' into maint-1.6.6 * rs/optim-text-wrap: utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text() utf8.c: remove strbuf_write() utf8.c: remove print_spaces() utf8.c: remove print_wrapped_text() 07 March 2010, 22:53:45 UTC
7b576f9 Merge branch 'tr/maint-cherry-pick-list' into maint-1.6.6 * tr/maint-cherry-pick-list: cherry_pick_list: quit early if one side is empty 07 March 2010, 22:53:40 UTC
7f43e75 Merge branch 'cc/maint-bisect-paths' into maint-1.6.6 * cc/maint-bisect-paths: bisect: error out when passing bad path parameters 07 March 2010, 22:53:35 UTC
8b12413 color: allow multiple attributes In configuration files (and "git config --color" command line), we supported one and only one attribute after foreground and background color. Accept combinations of attributes, e.g. [diff.color] old = red reverse bold Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 20:00:36 UTC
97222d9 Git 1.7.0.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 19:07:51 UTC
5565f47 unset GREP_OPTIONS in test-lib.sh I used to set GREP_OPTIONS to exclude *.orig and *.rej files. But with this the test t4252-am-options.sh fails because it calls grep with a .rej file: grep "@@ -1,3 +1,3 @@" file-2.rej Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 19:05:18 UTC
59f5ced t3417: Add test cases for "rebase --whitespace=fix" The command "git rebase --whitespace=fix HEAD~<N>" is supposed to only clean up trailing whitespace, and the expectation is that it cannot fail. Unfortunately, if one commit adds a blank line at the end of a file and a subsequent commit adds more non-blank lines after the blank line, "git apply" (used indirectly by "git rebase") will fail to apply the patch of the second commit. Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 07:53:00 UTC
c1376c1 t4124: Add additional tests of --whitespace=fix Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 07:53:00 UTC
5166714 apply: Allow blank context lines to match beyond EOF "git apply --whitespace=fix" will not always succeed when used on a series of patches in the following circumstances: * One patch adds a blank line at the end of a file. (Since --whitespace=fix is used, the blank line will *not* be added.) * The next patch adds non-blank lines after the blank line introduced in the first patch. That patch will not apply because the blank line that is expected to be found at end of the file is no longer there. A patch series that starts by deleting lines at the end will fail in a similar way. Fix this problem by allowing a blank context line at the beginning of a hunk to match if parts of it falls beyond end of the file. We still require that at least one non-blank context line match before the end of the file. If the --ignore-space-change option is given (as well as the --whitespace=fix option), blank context lines falling beyond the end of the file will be copied unchanged to the target file (i.e. they will have the same line terminators and extra spaces will not be removed). Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 07:53:00 UTC
24ff4d5 apply: Remove the quick rejection test In the next commit, we will make it possible for blank context lines to match beyond the end of the file. That means that a hunk with a preimage that has more lines than present in the file may be possible to successfully apply. Therefore, we must remove the quick rejection test in find_pos(). find_pos() will already work correctly without the quick rejection test, but that might not be obvious. Therefore, comment the test for handling out-of-range line numbers in find_pos() and cast the "line" variable to the same (unsigned) type as img->nr. What are performance implications of removing the quick rejection test? It can only help "git apply" to reject a patch faster. For example, if I have a file with one million lines and a patch that removes slightly more than 50 percent of the lines and try to apply that patch twice, the second attempt will fail slightly faster with the test than without (based on actual measurements). However, there is the pathological case of a patch with many more context lines than the default three, and applying that patch using "git apply -C1". Without the rejection test, the running time will be roughly proportional to the number of context lines times the size of the file. That could be handled by writing a more complicated rejection test (it would have to count the number of blanks at the end of the preimage), but I don't find that worth doing until there is a real-world use case that would benfit from it. It would be possible to keep the quick rejection test if --whitespace=fix is not given, but I don't like that from a testing point of view. Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 07:53:00 UTC
9b25949 apply: Don't unnecessarily update line lengths in the preimage In match_fragment(), the line lengths in the preimage are updated just before calling update_pre_post_images(). That is not necessary, since update_pre_post_images() itself will update the line lengths based on the buffer passed to it. Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 07:53:00 UTC
5d00592 stash: suggest the correct command line for unknown options. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 04:00:42 UTC
c9c8c56 t7406: Fix submodule init config tests These tests have been broken since they were introduced in commits ca2cedb (git-submodule: add support for --rebase., 2009-04-24) and 42b4917 (git-submodule: add support for --merge., 2009-06-03). 'git submodule init' expects the submodules to exist in the index. In this case, the submodules don't exist and therefore looking for the submodules will always fail. To make matters worse, git submodule fails visibly to the user by saying: error: pathspec 'rebasing' did not match any file(s) known to git. Did you forget to 'git add'? but doesn't return an error code. This allows the test to fail silently. Fix it by adding the submodules first. Cc: Johan Herland <johan@herland.net> Cc: Peter Hutterer <peter.hutterer@who-t.net> Cc: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2010, 04:00:02 UTC
3609ad8 Update draft release notes to 1.7.0.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 05 March 2010, 06:39:38 UTC
7d18122 Merge branch 'jn/gitweb-config-error-die' into maint * jn/gitweb-config-error-die: gitweb: Die if there are parsing errors in config file 05 March 2010, 06:27:12 UTC
6914c66 Merge branch 'jn/maint-fix-pager' into maint * jn/maint-fix-pager: tests: Fix race condition in t7006-pager t7006-pager: if stdout is not a terminal, make a new one tests: Add tests for automatic use of pager am: Fix launching of pager git svn: Fix launching of pager git.1: Clarify the behavior of the --paginate option Make 'git var GIT_PAGER' always print the configured pager Fix 'git var' usage synopsis 05 March 2010, 06:27:04 UTC
712d352 Merge branch 'tr/maint-cherry-pick-list' into maint * tr/maint-cherry-pick-list: cherry_pick_list: quit early if one side is empty 05 March 2010, 06:26:44 UTC
8cc3709 Merge branch 'ld/maint-diff-quiet-w' into maint * ld/maint-diff-quiet-w: git-diff: add a test for git diff --quiet -w git diff --quiet -w: check and report the status 05 March 2010, 06:26:39 UTC
868cfe0 Merge branch 'rs/optim-text-wrap' into maint * rs/optim-text-wrap: utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text() utf8.c: remove strbuf_write() utf8.c: remove print_spaces() utf8.c: remove print_wrapped_text() 05 March 2010, 06:26:33 UTC
780fc9a Merge branch 'dp/read-not-mmap-small-loose-object' into maint * dp/read-not-mmap-small-loose-object: hash-object: don't use mmap() for small files 05 March 2010, 06:26:17 UTC
035aa76 Merge branch 'np/compress-loose-object-memsave' into maint * np/compress-loose-object-memsave: sha1_file: be paranoid when creating loose objects sha1_file: don't malloc the whole compressed result when writing out objects 05 March 2010, 06:26:05 UTC
6c4ee22 Merge branch 'jc/maint-status-preload' into maint * jc/maint-status-preload: status: preload index to optimize lstat(2) calls 05 March 2010, 06:25:45 UTC
801bad3 Merge branch 'gf/maint-sh-setup-nongit-ok' into maint * gf/maint-sh-setup-nongit-ok: require_work_tree broken with NONGIT_OK 05 March 2010, 06:25:37 UTC
ce5044d Merge branch 'cc/maint-bisect-paths' into maint * cc/maint-bisect-paths: bisect: error out when passing bad path parameters 05 March 2010, 06:25:23 UTC
507665e Merge branch 'maint-1.6.6' into maint * maint-1.6.6: Remove extra '-' from git-am(1) 05 March 2010, 06:24:25 UTC
e8a285e Merge branch 'maint-1.6.5' into maint-1.6.6 * maint-1.6.5: Remove extra '-' from git-am(1) 05 March 2010, 06:24:19 UTC
8024d59 Remove extra '-' from git-am(1) Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz> Signed-off-by: Junio C Hamano <gitster@pobox.com> 05 March 2010, 06:02:44 UTC
90ff12a run-command.c: fix build warnings on Ubuntu Building git on Ubuntu 9.10 warns that the return value of write(2) isn't checked. These warnings were introduced in commits: 2b541bf8 ("start_command: detect execvp failures early") a5487ddf ("start_command: report child process setup errors to the parent's stderr") GCC details: $ gcc --version gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1 Silence the warnings by reading (but not making use of) the return value of write(2). Signed-off-by: Michael Wookey <michaelwookey@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 March 2010, 06:47:24 UTC
511da22 Start preparing for 1.7.0.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 03 March 2010, 07:11:36 UTC
b46946a Merge branch 'tc/maint-transport-ls-remote-with-void' into maint * tc/maint-transport-ls-remote-with-void: transport: add got_remote_refs flag 03 March 2010, 06:55:22 UTC
be8198b Merge branch 'hm/maint-imap-send-crlf' into maint * hm/maint-imap-send-crlf: git-imap-send: Convert LF to CRLF before storing patch to draft box 03 March 2010, 06:55:03 UTC
a886ba2 Merge branch 'sp/maint-push-sideband' into maint * sp/maint-push-sideband: receive-pack: Send internal errors over side-band #2 t5401: Use a bare repository for the remote peer receive-pack: Send hook output over side band #2 receive-pack: Wrap status reports inside side-band-64k receive-pack: Refactor how capabilities are shown to the client send-pack: demultiplex a sideband stream with status data run-command: support custom fd-set in async run-command: Allow stderr to be a caller supplied pipe Conflicts: builtin-receive-pack.c run-command.c t/t5401-update-hooks.sh 03 March 2010, 06:54:50 UTC
a625740 Merge branch 'jc/maint-fix-test-perm' into maint * jc/maint-fix-test-perm: lib-patch-mode.sh: Fix permission t6000lib: Fix permission 03 March 2010, 06:38:02 UTC
f54555c Merge branch 'np/fast-import-idx-v2' into maint * np/fast-import-idx-v2: fast-import: use the diff_delta() max_delta_size argument fast-import: honor pack.indexversion and pack.packsizelimit config vars fast-import: make default pack size unlimited fast-import: use write_idx_file() instead of custom code fast-import: use sha1write() for pack data fast-import: start using struct pack_idx_entry 03 March 2010, 06:28:49 UTC
9be3614 gitweb: Fix project-specific feature override behavior This commit fixes a bug in processing project-specific override in a situation when there is no project, e.g. for the projects list page. When 'snapshot' feature had project specific config override enabled by putting $feature{'snapshot'}{'override'} = 1; (or equivalent) in $GITWEB_CONFIG, and when viewing toplevel gitweb page, which means the projects list page (to be more exact this happens for any project-less action), gitweb would put the following Perl warnings in error log: gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at gitweb.cgi line 2065. fatal: error processing config file(s) gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at gitweb.cgi line 2221. gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at gitweb.cgi line 2218. The problem is in the following fragment of code: # path to the current git repository our $git_dir; $git_dir = "$projectroot/$project" if $project; # list of supported snapshot formats our @snapshot_fmts = gitweb_get_feature('snapshot'); @snapshot_fmts = filter_snapshot_fmts(@snapshot_fmts); For the toplevel gitweb page, which is the list of projects, $project is not defined, therefore neither is $git_dir. gitweb_get_feature() subroutine calls git_get_project_config() if project specific override is turned on... but we don't have project here. Those errors mentioned above occur in the following fragment of code in git_get_project_config(): # get config if (!defined $config_file || $config_file ne "$git_dir/config") { %config = git_parse_project_config('gitweb'); $config_file = "$git_dir/config"; } git_parse_project_config() calls git_cmd() which has '--git-dir='.$git_dir There are (at least) three possible solutions: 1. Harden gitweb_get_feature() so that it doesn't call git_get_project_config() if $project (and therefore $git_dir) is not defined; there is no project for project specific config. 2. Harden git_get_project_config() like you did in your fix, returning early if $git_dir is not defined. 3. Harden git_cmd() so that it doesn't add "--git-dir=$git_dir" if $git_dir is not defined, and change git_get_project_config() so that it doesn't even try to access $git_dir if it is not defined. This commit implements both 1.) and 2.), i.e. gitweb_get_feature() doesn't call project-specific override if $git_dir is not defined (if there is no project), and git_get_project_config() returns early if $git_dir is not defined. Add a test for this bug to t/t9500-gitweb-standalone-no-errors.sh test. Reported-by: Eli Barzilay <eli@barzilay.org> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 March 2010, 20:14:44 UTC
964ad92 gitweb multiple project roots documentation This commit adds in the gitweb/README file a description of how to use gitweb with several project roots using apache virtualhost rewrite rules. Signed-off-by: Sylvain Rabot <sylvain@abstraction.fr> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 March 2010, 20:14:20 UTC
8f69f72 bisect: error out when passing bad path parameters As reported by Mark Lodato, "git bisect", when it was started with path parameters that match no commit was kind of working without taking account of path parameters and was reporting something like: Bisecting: -1 revisions left to test after this (roughly 0 steps) It is more correct and safer to just error out in this case, before displaying the revisions left, so this patch does just that. Note that this bug is very old, it exists at least since v1.5.5. And it is possible to detect that case earlier in the bisect algorithm, but it is not clear that it would be an improvement to error out earlier, on the contrary it may change the behavior of "git rev-list --bisect-all" for example, which is currently correct. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 March 2010, 09:04:35 UTC
c5e5f60 Git 1.7.0.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 February 2010, 19:41:24 UTC
c0d3a38 Remove reference to GREP_COLORS from documentation There is no longer support for external grep, as per bbc09c2 (grep: rip out support for external grep, 2010-01-12), so remove the reference to it from the documentation. Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 February 2010, 19:13:11 UTC
77e8466 sha1_name: fix segfault caused by invalid index access The code to see if user input "git show :path" makes sense tried to access the index without properly checking the array bound. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 February 2010, 18:32:06 UTC
4a9f439 reflog: honor gc.reflogexpire=never Previously, if gc.reflogexpire or gc.reflogexpire were set to "never" or "false", the builtin default values were used instead. Signed-off-by: Adam Simpkins <simpkins@facebook.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 February 2010, 18:28:26 UTC
cbf731e prune: honor --expire=never Previously, prune treated an expiration time of 0 to mean that no expire argument was supplied, and everything should be pruned. As a result, "prune --expire=never" would prune all unreachable objects, regardless of their timestamp. prune can be called with --expire=never automatically by gc, when the gc.pruneExpire configuration is set to "never". Signed-off-by: Adam Simpkins <simpkins@facebook.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 February 2010, 18:28:05 UTC
64da6e2 Merge branch 'maint-1.6.6' into maint * maint-1.6.6: t3301-notes: insert a shbang line in ./fake_editor.sh 26 February 2010, 07:21:42 UTC
2e48fcd grep docs: document --no-index option Also clarify --cached and <tree>. Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 February 2010, 06:41:44 UTC
ec2537b grep docs: --cached and <tree>... are incompatible In the synopsis for git-grep(1), show that --cached and <tree>... cannot be used together. Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 February 2010, 06:39:13 UTC
bfb8306 grep docs: use AsciiDoc literals consistently The convention for this particular page is to use AsciiDoc literal strings only for options (`-x` or `--long`), but not for definition list terms and not for <meta-vars>. Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 February 2010, 06:39:12 UTC
0441601 grep docs: pluralize "Example" section Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 February 2010, 06:39:09 UTC
97a449e t3301-notes: insert a shbang line in ./fake_editor.sh This is required on Windows because git-notes is now a built-in rather than a shell script. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 20:20:16 UTC
1f80c2a Fix gitmkdtemp: correct test for mktemp() return value In gitmkdtemp, the return value of mktemp is not tested correctly. mktemp() always returns its 'template' argument, even upon failure. An error is signalled by making the template an empty string. Signed-off-by: Filippo Negroni <fnegroni@flexerasoftware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 20:08:22 UTC
18879bc pack-objects documentation: Fix --honor-pack-keep as well. Signed-off-by: Nelson Elhage <nelhage@mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 03:10:22 UTC
5ce9086 is_submodule_modified(): clear environment properly Rather than only clearing GIT_INDEX_FILE, take the list of environment variables to clear from local_repo_env, appending the settings for GIT_DIR and GIT_WORK_TREE. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 00:24:25 UTC
74ae141 submodules: ensure clean environment when operating in a submodule git-submodule used to take care of clearing GIT_DIR whenever it operated on a submodule index or configuration, but forgot to unset GIT_WORK_TREE or other repo-local variables. This would lead to failures e.g. when GIT_WORK_TREE was set. This only happened in very unusual contexts such as operating on the main worktree from outside of it, but since "git-gui: set GIT_DIR and GIT_WORK_TREE after setup" (a9fa11fe5bd5978bb) such failures could also be provoked by invoking an external tool such as "git submodule update" from the Git Gui in a standard setup. Solve by using the newly introduced clear_local_git_env() shell function to ensure that all repo-local environment variables are unset. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 00:24:25 UTC
7d750f0 shell setup: clear_local_git_env() function Introduce an auxiliary function to clear all repo-local environment variables. This should be invoked by any shell script that switches repository during execution, to ensure that the environment is clean and that things such as the git dir and worktree are set up correctly. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 00:24:25 UTC
94c8cca rev-parse: --local-env-vars option This prints the list of repo-local environment variables. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 00:24:25 UTC
48a7c1c Refactor list of of repo-local env vars Move the list of GIT_* environment variables that are local to a repository into a static list in environment.c, as it is also useful elsewhere. Also add the missing GIT_CONFIG variable to the list. Make it easy to use the list both by NULL-termination and by size; the latter (excluding the terminating NULL) is stored in the local_repo_env_size define. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2010, 00:24:25 UTC
3909f14 pack-objects documentation: reword "objects that appear in the standard input" These were written back when we always read objects from the standard input. These days --revs and its friends can feed only the start and end points and have the command internally enumerate the objects. Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2010, 23:41:27 UTC
8bb45b2 commit: quote the user name in the example If the user runs git config --global user.name Your Name as suggested, user.name will be set to "Your". With this patch, the suggested command will be git config --global user.name "Your Name" which will set user.name to "Your Name" and hopefully help users avoid the former mistake. Signed-off-by: Matt Kraai <kraai@ftbfs.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2010, 23:34:00 UTC
d951615 Merge branch 'ml/maint-grep-doc' into maint * ml/maint-grep-doc: grep documentation: clarify what files match 24 February 2010, 23:33:23 UTC
e6cc510 fetch --all/--multiple: keep all the fetched branch information Since "git fetch" learned "--all" and "--multiple" options, it has become tempting for users to say "git pull --all". Even though it may fetch from remotes that do not need to be fetched from for merging with the current branch, it is handy. "git fetch" however clears the list of fetched branches every time it contacts a different remote. Unless the current branch is configured to merge with a branch from a remote that happens to be the last in the list of remotes that are contacted, "git pull" that fetches from multiple remotes will not be able to find the branch it should be merging with. Make "fetch" clear FETCH_HEAD (unless --append is given) and then append the list of branches fetched to it (even when --append is not given). That way, "pull" will be able to find the data for the branch being merged in FETCH_HEAD no matter where the remote appears in the list of remotes to be contacted by "git fetch". Reported-by: Michael Lukashov Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2010, 19:16:36 UTC
db03b55 push: fix segfault for odd config If you have a branch.$X.merge config option, but no branch.$X.remote, and your configuration tries to push tracking branches, git will segfault. The problem is that even though branch->merge_nr is 1, you don't actually have an upstream since there is no remote. Other callsites generally check explicitly that branch->merge is not NULL, so let's do that here, too. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2010, 19:16:14 UTC
bba5322 builtin-fetch --all/--multi: propagate options correctly When running a subfetch, the code propagated some options but not others. Propagate --force, --update-head-ok and --keep options as well. Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2010, 18:51:07 UTC
13e65fe t5521: fix and modernize All of these tests were bogus, as they created new directory and tried to run "git pull" without even running "git init" in there. They were mucking with the repository in $TEST_DIRECTORY. While fixing it, modernize the style not to chdir around outside of subshell. Otherwise a failed test will take us to an unexpected directory and we need to chdir back to the test directory in each test, which is ugly and error prone. Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2010, 18:41:12 UTC
29b6754 am: remove rebase-apply directory before gc When git am does an automatic gc it doesn't clean up the rebase-apply directory until after this has finished. This means that if the user aborts the gc then future am or rebase operations will report that an existing operation is in progress, which is undesirable and confusing. Reported by Mark Brown <broonie@debian.org> through http://bugs.debian.org/570966 Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 February 2010, 22:26:29 UTC
689b8c2 rerere: fix memory leak if rerere images can't be read Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 February 2010, 22:24:43 UTC
1675862 Documentation: mention conflict marker size argument (%L) for merge driver 23a64c9e (conflict-marker-size: new attribute, 2010-01-16) introduced the new attribute and also pass the conflict marker size as %L to merge driver commands. This documents the substitution. Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 February 2010, 21:11:28 UTC
back to top