bafc478 | Junio C Hamano | 15 September 2012, 03:57:23 UTC | Git 1.7.11.7 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 September 2012, 03:57:23 UTC |
19ece72 | Junio C Hamano | 15 September 2012, 03:48:31 UTC | Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log' into maint-1.7.11 * jk/maint-quiet-is-synonym-to-s-in-log: log: fix --quiet synonym for -s | 15 September 2012, 03:48:31 UTC |
ddbca33 | Junio C Hamano | 15 September 2012, 03:48:22 UTC | Merge branch 'jc/maint-ident-missing-human-name' into maint-1.7.11 * jc/maint-ident-missing-human-name: split_ident_line(): make best effort when parsing author/committer line | 15 September 2012, 03:48:22 UTC |
dabdc01 | Junio C Hamano | 15 September 2012, 03:46:39 UTC | Merge branch 'rj/test-regex' into maint-1.7.11 * rj/test-regex: test-regex: Add a test to check for a bug in the regex routines | 15 September 2012, 03:46:39 UTC |
f463cc5 | Junio C Hamano | 15 September 2012, 03:45:55 UTC | Merge branch 'da/gitk-reload-tag-contents' into maint-1.7.11 * da/gitk-reload-tag-contents: gitk: Rename 'tagcontents' to 'cached_tagcontent' gitk: Teach "Reread references" to reload tags gitk: Avoid Meta1-F5 | 15 September 2012, 03:45:55 UTC |
6711759 | Junio C Hamano | 15 September 2012, 03:45:03 UTC | Merge branch 'jc/maint-checkout-fileglob-doc' into maint-1.7.11 * jc/maint-checkout-fileglob-doc: gitcli: contrast wildcard given to shell and to git gitcli: formatting fix Document file-glob for "git checkout -- '*.c'" | 15 September 2012, 03:45:03 UTC |
1403db4 | Junio C Hamano | 12 September 2012, 21:00:52 UTC | Merge branch 'jc/apply-binary-p0' into maint-1.7.11 "git apply -p0" did not parse pathnames on "diff --git" line correctly. This caused patches that had pathnames in no other places to be mistakenly rejected (most notably, binary patch that does not rename nor change mode). Textual patches, renames or mode changes have preimage and postimage pathnames in different places in a form that can be parsed unambiguously and did not suffer from this problem. * jc/apply-binary-p0: apply: compute patch->def_name correctly under -p0 | 12 September 2012, 21:00:53 UTC |
eaff724 | Junio C Hamano | 12 September 2012, 21:00:34 UTC | Merge branch 'jc/dotdot-is-parent-directory' into maint-1.7.11 "git log .." errored out saying it is both rev range and a path when there is no disambiguating "--" is on the command line. Update the command line parser to interpret ".." as a path in such a case. * jc/dotdot-is-parent-directory: specifying ranges: we did not mean to make ".." an empty set | 12 September 2012, 21:00:34 UTC |
1b8bc86 | Junio C Hamano | 12 September 2012, 20:59:58 UTC | Merge branch 'jc/maint-doc-checkout-b-always-takes-branch-name' into maint-1.7.11 The synopsis said "checkout [-B branch]" to make it clear the branch name is a parameter to the option, but the heading for the option description was "-B::", not "-B branch::", making the documentation misleading. * jc/maint-doc-checkout-b-always-takes-branch-name: doc: "git checkout -b/-B/--orphan" always takes a branch name | 12 September 2012, 20:59:58 UTC |
7d9483c | Junio C Hamano | 12 September 2012, 20:58:22 UTC | Merge branch 'jk/maint-http-half-auth-push' into maint-1.7.11 Pushing to smart HTTP server with recent Git fails without having the username in the URL to force authentication, if the server is configured to allow GET anonymously, while requiring authentication for POST. * jk/maint-http-half-auth-push: http: prompt for credentials on failed POST http: factor out http error code handling t: test http access to "half-auth" repositories t: test basic smart-http authentication t/lib-httpd: recognize */smart/* repos as smart-http t/lib-httpd: only route auth/dumb to dumb repos t5550: factor out http auth setup t5550: put auth-required repo in auth/dumb | 12 September 2012, 20:58:23 UTC |
92c830d | Junio C Hamano | 12 September 2012, 20:57:43 UTC | Merge branch 'kk/maint-for-each-ref-multi-sort' into maint-1.7.11 "git for-each-ref" did not honor multiple "--sort=<key>" arguments correctly. * kk/maint-for-each-ref-multi-sort: for-each-ref: Fix sort with multiple keys t6300: test sort with multiple keys | 12 September 2012, 20:57:43 UTC |
e09e402 | Junio C Hamano | 11 September 2012, 18:18:48 UTC | Git 1.7.11.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 September 2012, 18:18:48 UTC |
23242a6 | Junio C Hamano | 11 September 2012, 18:10:23 UTC | Merge branch 'jc/maint-mergetool-style-fix' into maint-1.7.11 * jc/maint-mergetool-style-fix: mergetool: style fixes | 11 September 2012, 18:10:23 UTC |
ee7a83f | Junio C Hamano | 11 September 2012, 18:10:17 UTC | Merge branch 'sz/submodule-force-update' into maint-1.7.11 * sz/submodule-force-update: Make 'git submodule update --force' always check out submodules. | 11 September 2012, 18:10:17 UTC |
ef92392 | Junio C Hamano | 11 September 2012, 18:10:12 UTC | Merge branch 'ph/stash-rerere' into maint-1.7.11 * ph/stash-rerere: stash: invoke rerere in case of conflict test: git-stash conflict sets up rerere | 11 September 2012, 18:10:12 UTC |
91feb38 | Junio C Hamano | 11 September 2012, 18:09:19 UTC | Merge branch 'jc/maint-sane-execvp-notdir' into maint-1.7.11 * jc/maint-sane-execvp-notdir: sane_execvp(): ignore non-directory on $PATH | 11 September 2012, 18:09:19 UTC |
4c3fda0 | Junio C Hamano | 11 September 2012, 18:09:09 UTC | Merge branch 'jc/maint-config-exit-status' into maint-1.7.11 * jc/maint-config-exit-status: config: "git config baa" should exit with status 1 | 11 September 2012, 18:09:09 UTC |
f6854ca | Junio C Hamano | 11 September 2012, 18:09:01 UTC | Merge branch 'mh/maint-config-doc-proxy-command' into maint-1.7.11 * mh/maint-config-doc-proxy-command: git-config doc: unconfuse an example git-config.txt: fix example | 11 September 2012, 18:09:01 UTC |
fe31b2a | Junio C Hamano | 11 September 2012, 18:08:55 UTC | Merge branch 'hv/submodule-path-unmatch' into maint-1.7.11 * hv/submodule-path-unmatch: Let submodule command exit with error status if path does not exist | 11 September 2012, 18:08:55 UTC |
ef66ac3 | Junio C Hamano | 11 September 2012, 18:08:48 UTC | Merge branch 'mz/empty-rebase-test' into maint-1.7.11 * mz/empty-rebase-test: add tests for 'git rebase --keep-empty' | 11 September 2012, 18:08:48 UTC |
515cd19 | Junio C Hamano | 11 September 2012, 18:08:40 UTC | Merge branch 'jk/docs-docbook-monospace-display' into maint-1.7.11 * jk/docs-docbook-monospace-display: docs: monospace listings in docbook output | 11 September 2012, 18:08:40 UTC |
d9b983f | Junio C Hamano | 11 September 2012, 18:08:30 UTC | Merge branch 'ab/diff-write-incomplete-line' into maint-1.7.11 * ab/diff-write-incomplete-line: Fix '\ No newline...' annotation in rewrite diffs | 11 September 2012, 18:08:30 UTC |
ffb1346 | Junio C Hamano | 11 September 2012, 18:08:18 UTC | Merge branch 'jc/maint-t7406-rev-parse-max-count-huh' into maint-1.7.11 * jc/maint-t7406-rev-parse-max-count-huh: t7406: fix misleading "rev-parse --max-count=1 HEAD" | 11 September 2012, 18:08:18 UTC |
738c218 | Junio C Hamano | 11 September 2012, 17:53:40 UTC | Merge branch 'tr/void-diff-setup-done' into maint-1.7.11 * tr/void-diff-setup-done: diff_setup_done(): return void | 11 September 2012, 17:53:40 UTC |
3f83594 | Junio C Hamano | 11 September 2012, 17:53:31 UTC | Merge branch 'tr/merge-recursive-flush' into maint-1.7.11 * tr/merge-recursive-flush: merge-recursive: eliminate flush_buffer() in favor of write_in_full() | 11 September 2012, 17:53:31 UTC |
d8ce800 | Junio C Hamano | 11 September 2012, 17:53:21 UTC | Merge branch 'nd/index-errno' into maint-1.7.11 * nd/index-errno: read_index_from: remove bogus errno assignments | 11 September 2012, 17:53:21 UTC |
10a32fa | Junio C Hamano | 11 September 2012, 17:53:11 UTC | Merge branch 'pg/maint-apply-remove-unused-variable' into maint-1.7.11 * pg/maint-apply-remove-unused-variable: apply: delete unused deflate_origlen from patch struct | 11 September 2012, 17:53:11 UTC |
9a8eea9 | Junio C Hamano | 10 September 2012, 22:30:46 UTC | Almost 1.7.11.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 September 2012, 22:30:46 UTC |
73eb89e | Junio C Hamano | 10 September 2012, 22:26:03 UTC | Merge branch 'mg/rebase-i-onto-reflog-in-full' into maint-1.7.11 The reflog entries left by "git rebase" and "git rebase -i" were inconsistent (the interactive one gave an abbreviated object name). * mg/rebase-i-onto-reflog-in-full: rebase -i: use full onto sha1 in reflog | 10 September 2012, 22:26:03 UTC |
7cc51cf | Junio C Hamano | 10 September 2012, 22:25:45 UTC | Merge branch 'jc/maint-protect-sh-from-ifs' into maint-1.7.11 When the user exports a non-default IFS without HT, scripts that rely on being able to parse "ls-files -s | while read a b c..." start to fail. Protect them from such a misconfiguration. * jc/maint-protect-sh-from-ifs: sh-setup: protect from exported IFS | 10 September 2012, 22:25:45 UTC |
3f66463 | Junio C Hamano | 10 September 2012, 22:25:09 UTC | Merge branch 'bc/receive-pack-stdout-protection' into maint-1.7.11 When "git push" triggered the automatic gc on the receiving end, a message from "git prune" that said it was removing cruft leaked to the standard output, breaking the communication protocol. * bc/receive-pack-stdout-protection: receive-pack: do not leak output from auto-gc to standard output t/t5400: demonstrate breakage caused by informational message from prune | 10 September 2012, 22:25:09 UTC |
03adeea | Junio C Hamano | 10 September 2012, 22:24:53 UTC | Merge branch 'jk/maint-null-in-trees' into maint-1.7.11 "git diff" had a confusion between taking data from a path in the working tree and taking data from an object that happens to have name 0{40} recorded in a tree. * jk/maint-null-in-trees: fsck: detect null sha1 in tree entries do not write null sha1s to on-disk index diff: do not use null sha1 as a sentinel value | 10 September 2012, 22:24:54 UTC |
423a9e2 | Junio C Hamano | 10 September 2012, 22:24:40 UTC | Merge branch 'tr/maint-send-email-2047' into maint-1.7.11 "git send-email" did not unquote encoded words that appear on the header correctly, and lost "_" from strings. * tr/maint-send-email-2047: send-email: improve RFC2047 quote parsing | 10 September 2012, 22:24:41 UTC |
5f9d8e3 | Junio C Hamano | 10 September 2012, 22:24:21 UTC | Merge branch 'mm/die-with-dashdash-help' into maint-1.7.11 When the user gives an argument that can be taken as both a revision name and a pathname without disambiguating with "--", we used to give a help message "Use '--' to separate". The message has been clarified to show where that '--' goes on the command line. * mm/die-with-dashdash-help: setup: clarify error messages for file/revisions ambiguity | 10 September 2012, 22:24:21 UTC |
3d4003b | Junio C Hamano | 10 September 2012, 22:23:46 UTC | Merge branch 'js/gitweb-path-info-unquote' into maint-1.7.11 "gitweb" when used with PATH_INFO failed to notice directories with SP (and other characters that need URL-style quoting) in them. * js/gitweb-path-info-unquote: gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO | 10 September 2012, 22:23:46 UTC |
8300016 | Junio C Hamano | 07 September 2012, 20:49:15 UTC | gitcli: contrast wildcard given to shell and to git People who are not used to working with shell may intellectually understand how the command line argument is massaged by the shell but still have a hard time visualizing the difference between letting the shell expand fileglobs and having Git see the fileglob to use as a pathspec. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 September 2012, 19:59:36 UTC |
008566e | Junio C Hamano | 10 September 2012, 19:47:38 UTC | gitcli: formatting fix The paragraph to encourage use of "--" in scripts belongs to the bullet point that describes the behaviour for a command line without the explicit "--" disambiguation; it is not a supporting explanation for the entire bulletted list, and it is wrong to make it a separate paragraph outside the list. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 September 2012, 19:59:02 UTC |
587277f | David Aguilar | 08 September 2012, 19:53:16 UTC | gitk: Rename 'tagcontents' to 'cached_tagcontent' Name the 'tagcontents' variable similarly to the rest of the variables cleared in the changedrefs() function. This makes the naming consistent and provides a hint that it should be cleared when reloading gitk's cache. Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 September 2012, 03:25:09 UTC |
9b5bdf5 | David Aguilar | 08 September 2012, 19:03:13 UTC | gitk: Teach "Reread references" to reload tags Tag contents, once read, are forever cached in memory. This makes gitk unable to notice when tag contents change. Allow users to cause a reload of the tag contents by using the "File->Reread references" action. Reported-by: Tim McCormack <cortex@brainonfire.net> Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 September 2012, 03:25:09 UTC |
caae319 | Junio C Hamano | 04 September 2012, 15:28:27 UTC | Document file-glob for "git checkout -- '*.c'" Just like we give a similar example in "git add" documentation. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 04 September 2012, 15:36:33 UTC |
c918415 | Ramsay Jones | 01 September 2012, 17:46:54 UTC | test-regex: Add a test to check for a bug in the regex routines Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 September 2012, 01:57:21 UTC |
e27ddb6 | Junio C Hamano | 31 August 2012, 21:54:18 UTC | split_ident_line(): make best effort when parsing author/committer line Commits made by ancient version of Git allowed committer without human readable name, like this (00213b17c in the kernel history): tree 6947dba41f8b0e7fe7bccd41a4840d6de6a27079 parent 352dd1df32e672be4cff71132eb9c06a257872fe author Petr Baudis <pasky@ucw.cz> 1135223044 +0100 committer <sam@mars.ravnborg.org> 1136151043 +0100 kconfig: Remove support for lxdialog --checklist ... Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> When fed such a commit, --format='%ci' fails to parse it, and gives back an empty string. Update the split_ident_line() to be a bit more lenient when parsing, but make sure the caller that wants to pick up sane value from its return value does its own validation. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 31 August 2012, 21:54:18 UTC |
f9c75d8 | Jeff King | 28 August 2012, 21:29:34 UTC | log: fix --quiet synonym for -s Originally the "--quiet" option was parsed by the diff-option parser into the internal QUICK option. This had the effect of silencing diff output from the log (which was not intended, but happened to work and people started to use it). But it also had other odd side effects at the diff level (for example, it would suppress the second commit in "git show A B"). To fix this, commit 1c40c36 converted log to parse-options and handled the "quiet" option separately, not passing it on to the diff code. However, it simply ignored the option, which was a regression for people using it as a synonym for "-s". Commit 01771a8 then fixed that by interpreting the option to add DIFF_FORMAT_NO_OUTPUT to the list of output formats. However, that commit did not fix it in all cases. It sets the flag after setup_revisions is called. Naively, this makes sense because you would expect the setup_revisions parser to overwrite our output format flag if "-p" or another output format flag is seen. However, that is not how the NO_OUTPUT flag works. We actually store it in the bit-field as just another format. At the end of setup_revisions, we call diff_setup_done, which post-processes the bitfield and clears any other formats if we have set NO_OUTPUT. By setting the flag after setup_revisions is done, diff_setup_done does not have a chance to make this tweak, and we end up with other format options still set. As a result, the flag would have no effect in "git log -p --quiet" or "git show --quiet". Fix it by setting the format flag before the call to setup_revisions. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 August 2012, 22:37:29 UTC |
b81401c | Jeff King | 27 August 2012, 13:27:15 UTC | http: prompt for credentials on failed POST All of the smart-http GET requests go through the http_get_* functions, which will prompt for credentials and retry if we see an HTTP 401. POST requests, however, do not go through any central point. Moreover, it is difficult to retry in the general case; we cannot assume the request body fits in memory or is even seekable, and we don't know how much of it was consumed during the attempt. Most of the time, this is not a big deal; for both fetching and pushing, we make a GET request before doing any POSTs, so typically we figure out the credentials during the first request, then reuse them during the POST. However, some servers may allow a client to get the list of refs from receive-pack without authentication, and then require authentication when the client actually tries to POST the pack. This is not ideal, as the client may do a non-trivial amount of work to generate the pack (e.g., delta-compressing objects). However, for a long time it has been the recommended example configuration in git-http-backend(1) for setting up a repository with anonymous fetch and authenticated push. This setup has always been broken without putting a username into the URL. Prior to commit 986bbc0, it did work with a username in the URL, because git would prompt for credentials before making any requests at all. However, post-986bbc0, it is totally broken. Since it has been advertised in the manpage for some time, we should make sure it works. Unfortunately, it is not as easy as simply calling post_rpc again when it fails, due to the input issue mentioned above. However, we can still make this specific case work by retrying in two specific instances: 1. If the request is large (bigger than LARGE_PACKET_MAX), we will first send a probe request with a single flush packet. Since this request is static, we can freely retry it. 2. If the request is small and we are not using gzip, then we have the whole thing in-core, and we can freely retry. That means we will not retry in some instances, including: 1. If we are using gzip. However, we only do so when calling git-upload-pack, so it does not apply to pushes. 2. If we have a large request, the probe succeeds, but then the real POST wants authentication. This is an extremely unlikely configuration and not worth worrying about. While it might be nice to cover those instances, doing so would be significantly more complex for very little real-world gain. In the long run, we will be much better off when curl learns to internally handle authentication as a callback, and we can cleanly handle all cases that way. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:09 UTC |
8809703 | Jeff King | 27 August 2012, 13:26:04 UTC | http: factor out http error code handling Most of our http requests go through the http_request() interface, which does some nice post-processing on the results. In particular, it handles prompting for missing credentials as well as approving and rejecting valid or invalid credentials. Unfortunately, it only handles GET requests. Making it handle POSTs would be quite complex, so let's pull result handling code into its own function so that it can be reused from the POST code paths. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:09 UTC |
4c71009 | Jeff King | 27 August 2012, 13:25:53 UTC | t: test http access to "half-auth" repositories Some sites set up http access to repositories such that fetching is anonymous and unauthenticated, but pushing is authenticated. While there are multiple ways to do this, the technique advertised in the git-http-backend manpage is to block access to locations matching "/git-receive-pack$". Let's emulate that advice in our test setup, which makes it clear that this advice does not actually work. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:09 UTC |
6ac2b3a | Jeff King | 27 August 2012, 13:25:36 UTC | t: test basic smart-http authentication We do not currently test authentication over smart-http at all. In theory, it should work exactly as it does for dumb http (which we do test). It does indeed work for these simple tests, but this patch lays the groundwork for more complex tests in future patches. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:09 UTC |
666aae9 | Jeff King | 27 August 2012, 13:25:21 UTC | t/lib-httpd: recognize */smart/* repos as smart-http We do not currently test authentication for smart-http repos at all. Part of the infrastructure to do this is recognizing that auth/smart is indeed a smart-http repo. The current apache config recognizes only "^/smart/*" as smart-http. Let's instead treat anything with /smart/ in the URL as smart-http. This is obviously a stupid thing to do for a real production site, but for our test suite we know that our repositories will not have this magic string in the name. Note that we will route /foo/smart/bar.git directly to git-http-backend/bar.git; in other words, everything before the "/smart/" is irrelevant to finding the repo on disk (but may impact apache config, for example by triggering auth checks). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:09 UTC |
05b5771 | Jeff King | 27 August 2012, 13:24:42 UTC | t/lib-httpd: only route auth/dumb to dumb repos Our test apache config points all of auth/ directly to the on-disk repositories via an Alias directive. This works fine because everything authenticated is currently in auth/dumb, which is a subset. However, this would conflict with a ScriptAlias for auth/smart (which will come in future patches), so let's narrow the Alias. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:08 UTC |
e837936 | Jeff King | 27 August 2012, 13:24:31 UTC | t5550: factor out http auth setup The t5550 script sets up a nice askpass helper for simulating user input and checking what git prompted for. Let's make it available to other http scripts by migrating it to lib-httpd. We can use this immediately in t5540 to make our tests more robust (previously, we did not check at all that hitting the password-protected repo actually involved a password). Unfortunately, we end up failing the test because the current code erroneously prompts twice (once for git-remote-http, and then again when the former spawns git-http-push). More importantly, though, it will let us easily add smart-http authentication tests in t5541 and t5551; we currently do not test smart-http authentication at all. As part of making it generic, let's always look for and store auxiliary askpass files at the top-level trash directory; this makes it compatible with t5540, which runs some tests from sub-repositories. We can abstract away the ugliness with a short helper function. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:04 UTC |
726800a | Jeff King | 27 August 2012, 13:23:37 UTC | t5550: put auth-required repo in auth/dumb In most of our tests, we put repos to be accessed by dumb protocols in /dumb, and repos to be accessed by smart protocols in /smart. In our test apache setup, the whole /auth hierarchy requires authentication. However, we don't bother to split it by smart and dumb here because we are not currently testing smart-http authentication at all. That will change in future patches, so let's be explicit that we are interested in testing dumb access here. This also happens to match what t5540 does for the push tests. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2012, 17:49:04 UTC |
45aaf03 | Junio C Hamano | 26 August 2012, 18:40:08 UTC | doc: "git checkout -b/-B/--orphan" always takes a branch name While the synopsis section makes it clear that the new branch name is the parameter to these flags, the option description did not. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 August 2012, 18:40:08 UTC |
6a2abdc | Junio C Hamano | 25 August 2012, 05:48:55 UTC | apply: compute patch->def_name correctly under -p0 Back when "git apply" was written, we made sure that the user can skip more than the default number of path components (i.e. 1) by giving "-p<n>", but the logic for doing so was built around the notion of "we skip N slashes and stop". This obviously does not work well when running under -p0 where we do not want to skip any, but still want to skip SP/HT that separates the pathnames of preimage and postimage and want to reject absolute pathnames. Stop using "stop_at_slash()", and instead introduce a new helper "skip_tree_prefix()" with similar logic but works correctly even for the -p0 case. This is an ancient bug, but has been masked for a long time because most of the patches are text and have other clues to tell us the name of the preimage and the postimage. Noticed by Colin McCabe. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2012, 06:11:05 UTC |
b521831 | Junio C Hamano | 24 August 2012, 19:33:31 UTC | Prepare for 1.7.11.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2012, 19:33:31 UTC |
1103996 | Junio C Hamano | 24 August 2012, 19:05:47 UTC | Merge branch 'mv/pull-r-for-rebase' into maint-1.7.11 A minor documentation update. * mv/pull-r-for-rebase: man: git pull -r is a short for --rebase | 24 August 2012, 19:05:47 UTC |
bdb3033 | Junio C Hamano | 24 August 2012, 19:05:44 UTC | Merge branch 'jc/maint-abbrev-option-cli' into maint-1.7.11 We did not document that many commands take unique prefix abbreviations of long options (e.g. "--option" may be the only flag that the command accepts that begin with "--opt", in which case you can give "--opt") anywhere easy to find for new people. * jc/maint-abbrev-option-cli: gitcli: describe abbreviation of long options | 24 August 2012, 19:05:44 UTC |
7939a33 | Junio C Hamano | 24 August 2012, 19:05:40 UTC | Merge branch 'jc/maint-rev-list-topo-doc' into maint-1.7.11 It was unclear what "--topo-order" was really about in the documentation. It is not just about "children before parent", but also about "don't mix lineages". * jc/maint-rev-list-topo-doc: rev-list docs: clarify --topo-order description | 24 August 2012, 19:05:40 UTC |
9dd8175 | Junio C Hamano | 24 August 2012, 19:05:35 UTC | Merge branch 'hv/coding-guidelines' into maint-1.7.11 In earlier days, "imitate the style in the neibouring code" was sufficient to keep the coherent style, but over time some parts of the codebase have drifted enough to make it ineffective. * hv/coding-guidelines: Documentation/CodingGuidelines: spell out more shell guidelines | 24 August 2012, 19:05:35 UTC |
74b819a | Junio C Hamano | 24 August 2012, 19:05:30 UTC | Merge branch 'jc/tag-doc' into maint-1.7.11 Our documentation used to assume having files in .git/refs/* directories was the only to have branches and tags, but that is not true for quite some time. * jc/tag-doc: Documentation: do not mention .git/refs/* directories | 24 August 2012, 19:05:30 UTC |
c247d76 | Junio C Hamano | 24 August 2012, 19:05:24 UTC | Merge branch 'mk/test-seq' into maint-1.7.11 Add a compatibility/utility function to the test framework. * mk/test-seq: tests: Introduce test_seq | 24 August 2012, 19:05:24 UTC |
47bc16b | Junio C Hamano | 24 August 2012, 19:05:19 UTC | Merge branch 'lp/no-cmd-http-fetch' into maint-1.7.11 * lp/no-cmd-http-fetch: builtin.h: remove unused cmd_<foo> declarations | 24 August 2012, 19:05:20 UTC |
3f98823 | Junio C Hamano | 24 August 2012, 19:05:11 UTC | Merge branch 'bw/maint-1.7.9-solaris-getpass' into maint-1.7.11 * bw/maint-1.7.9-solaris-getpass: Enable HAVE_DEV_TTY for Solaris terminal: seek when switching between reading and writing | 24 August 2012, 19:05:11 UTC |
9e0833c | Junio C Hamano | 24 August 2012, 19:05:08 UTC | Merge branch 'jk/maint-commit-check-committer-early' into maint-1.7.11 * jk/maint-commit-check-committer-early: commit: check committer identity more strictly | 24 August 2012, 19:05:08 UTC |
01d4721 | Stefan Zager | 25 July 2012, 17:41:54 UTC | Make 'git submodule update --force' always check out submodules. Currently, it will only do a checkout if the sha1 registered in the containing repository doesn't match the HEAD of the submodule, regardless of whether the submodule is dirty. As discussed on the mailing list, the '--force' flag is a strong indicator that the state of the submodule is suspect, and should be reset to HEAD. Signed-off-by: Stefan Zager <szager@google.com> Acked-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2012, 16:00:43 UTC |
f8750a0 | Junio C Hamano | 23 August 2012, 05:33:15 UTC | mergetool: style fixes This script is one of the sizeable ones that tempted people to copy its "neibouring style" in their new code, but was littered with styles incompatible with our style guide. - use one tab, not four spaces, per indent level; - long lines can be wrapped after '|', '&&', or '||' for readability. - structures like "if .. then .. else .. fi", "while .. do .. done" are split into lines in such a way that does not require unnecessary semicolon. - case, esac and case-arms align at the same column. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2012, 04:30:51 UTC |
df1effa | Eric S. Raymond | 23 August 2012, 05:21:53 UTC | Make the ciabot scripts completely self-configuring in the normal case. Signed-off-by: Eric S. Raymond <esr@thyrsus.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2012, 03:58:24 UTC |
6484070 | Eric S. Raymond | 23 August 2012, 04:10:53 UTC | Improved documentation for the ciabot scripts. Signed-off-by: Eric S. Raymond <esr@thyrsus.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2012, 03:58:20 UTC |
003c84f | Junio C Hamano | 02 May 2011, 20:39:16 UTC | specifying ranges: we did not mean to make ".." an empty set Either end of revision range operator can be omitted to default to HEAD, as in "origin.." (what did I do since I forked) or "..origin" (what did they do since I forked). But the current parser interprets ".." as an empty range "HEAD..HEAD", and worse yet, because ".." does exist on the filesystem, we get this annoying output: $ cd Documentation/howto $ git log .. ;# give me recent commits that touch Documentation/ area. fatal: ambiguous argument '..': both revision and filename Use '--' to separate filenames from revisions Surely we could say "git log ../" or even "git log -- .." to disambiguate, but we shouldn't have to. Helped-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 August 2012, 21:37:49 UTC |
c142616 | Eric S. Raymond | 22 August 2012, 10:52:30 UTC | contrib/ciabot: Get ciabot configuration from git variables These changes remove all need to modify the ciabot scripts for installation. Instead, per-project configuration can be dome via variables in a [ciabot] section of the config file. Also, correct for the new server address. Signed-off-by: Eric S. Raymond <esr@thyrsus.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 August 2012, 18:15:43 UTC |
3b51222 | Kacper Kornet | 21 August 2012, 07:47:26 UTC | for-each-ref: Fix sort with multiple keys The linked list describing sort options was not correctly set up in opt_parse_sort. In the result, contrary to the documentation, only the last of multiple --sort options to git-for-each-ref was taken into account. This commit fixes it. Signed-off-by: Kacper Kornet <draenog@pld-linux.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 August 2012, 21:42:12 UTC |
912072d | Kacper Kornet | 21 August 2012, 07:46:06 UTC | t6300: test sort with multiple keys Documentation of git-for-each-ref says that --sort=<key> option can be used multiple times, in which case the last key becomes the primary key. However this functionality was never checked in test suite and is currently broken. This commit adds appropriate test in preparation for fix. Signed-off-by: Kacper Kornet <draenog@pld-linux.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 August 2012, 21:42:11 UTC |
d1e1fe7 | Junio C Hamano | 18 August 2012, 23:35:09 UTC | git-config doc: unconfuse an example One fictitious command "proxy-command" is enclosed inside a double quote pair, while another fictitious command "default-proxy" is not in the example, but the quoting does not change anything in the pair of examples. Remove the quotes to avoid unnecessary confusion. Noticed by Michael Haggerty. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 August 2012, 23:39:35 UTC |
d0714cc | Michael Haggerty | 18 August 2012, 17:32:10 UTC | git-config.txt: fix example The "--add" option is required to add a new value to a multivalued configuration entry. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 August 2012, 20:44:58 UTC |
743bf6d | Phil Hord | 10 July 2012, 22:52:28 UTC | stash: invoke rerere in case of conflict "stash apply" directly calls a backend merge function which does not automatically invoke rerere. This confuses mergetool when leftover rerere state is left behind from previous merges. Invoke rerere explicitly when we encounter a conflict during stash apply. This turns the test introduced by the previous commit to succeed. Signed-off-by: Phil Hord <hordp@cisco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 August 2012, 17:59:17 UTC |
79dc2d0 | Phil Hord | 10 July 2012, 22:52:27 UTC | test: git-stash conflict sets up rerere Add a test to make sure that a conflicted "stash apply" invokes rerere to record the conflicts and resolve the the files it can (the current code doesn't, so the test is marked as failing). Without correct state recorded for rerere, mergetool may be confused, causing it to think no files have conflicts even though they do. This condition is not verified by this test since a subsequent commit will change the behavior to enable rerere for stash conflicts. Also, the next test expected us to finish up with a reset, which is impossible to do if we fail (as we must) and it's an unreasonable expectation anyway. Begin the next test with a reset of its own instead. Signed-off-by: Phil Hord <hordp@cisco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 August 2012, 17:56:19 UTC |
d9aa361 | Miklos Vajna | 16 August 2012, 09:50:18 UTC | man: git pull -r is a short for --rebase Letting the "--rebase" option squat on the short-and-sweet single letter option "-r" was an unintended accident and was not even documented, but the short option seems to be already used in the wild. Let's document it so that other options that begin with "r" would not be tempted to steal it. Signed-off-by: Miklos Vajna <vmiklos@suse.cz> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 August 2012, 07:26:52 UTC |
9c81990 | Junio C Hamano | 17 August 2012, 06:16:22 UTC | gitcli: describe abbreviation of long options Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 August 2012, 06:16:28 UTC |
cd7c0be | Junio C Hamano | 15 August 2012, 20:39:53 UTC | Git 1.7.11.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 August 2012, 20:39:53 UTC |
d7d3b56 | Junio C Hamano | 15 August 2012, 20:37:20 UTC | Merge branch 'rj/maint-grep-remove-redundant-test' into maint * rj/maint-grep-remove-redundant-test: t7810-*.sh: Remove redundant test | 15 August 2012, 20:37:20 UTC |
45b65a6 | Junio C Hamano | 15 August 2012, 20:36:47 UTC | Merge branch 'hv/link-alt-odb-entry' into maint * hv/link-alt-odb-entry: link_alt_odb_entry: fix read over array bounds reported by valgrind | 15 August 2012, 20:36:47 UTC |
3f0350c | Junio C Hamano | 15 August 2012, 20:02:48 UTC | rev-list docs: clarify --topo-order description It was unclear what "--topo-order" was really about in the documentation. It is not just about "children before parent", but also about "don't mix lineages". Reword the description for both "--date-order" and "--topo-order", and add an illustration to it. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 August 2012, 20:04:20 UTC |
cacfc09 | Jay Soffian | 09 August 2012, 02:29:26 UTC | gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO When gitweb is used as a DirectoryIndex, it attempts to strip PATH_INFO on its own, as $cgi->url() fails to do so. However, it fails to account for the fact that PATH_INFO has already been URL-decoded by the web server, but the value returned by $cgi->url() has not been. This causes the stripping to fail whenever the URL contains encoded characters. To see this in action, setup gitweb as a DirectoryIndex and then use it on a repository with a directory containing a space in the name. Navigate to tree view, examine the gitweb generated html and you'll see a link such as: <a href="/test.git/tree/HEAD:/directory with spaces">directory with spaces</a> When clicked on, the browser will URL-encode this link, giving a $cgi->url() of the form: /test.git/tree/HEAD:/directory%20with%20spaces While PATH_INFO is: /test.git/tree/HEAD:/directory with spaces Fix this by calling unescape() on both $my_url and $my_uri before stripping PATH_INFO from them. Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 August 2012, 18:47:43 UTC |
03b05c7 | Heiko Voigt | 15 August 2012, 17:06:01 UTC | Documentation/CodingGuidelines: spell out more shell guidelines In earlier days, "imitate the style in the neibouring code" was sufficient to keep the coherent style, but over time some parts of the codebase have drifted enough to make it ineffective. Spell some of the guidelines out. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 August 2012, 18:00:39 UTC |
be9d0a3 | Heiko Voigt | 14 August 2012, 20:35:27 UTC | Let submodule command exit with error status if path does not exist Various subcommands of the "git submodule" command exited with 0 status even though the path given by the user did not exist. The reason behind that was that they all pipe the output of module_list into the while loop which then does the action on the paths specified by the commandline. Since the exit code of the command on the upstream side of the pipe is ignored by the shell, the status code of "ls-files --error-unmatch" nor "module_list" was not propagated. In case ls-files returns with an error code, we write a special string that is not possible in non error situations, and no other output, so that the downstream can detect the error and die with an error code. The error message that there is an unmatched pathspec comes through stderr directly from ls-files. So the user still gets a hint whats going on. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 August 2012, 21:00:17 UTC |
1af221e | Michael J Gruber | 10 August 2012, 06:51:19 UTC | rebase -i: use full onto sha1 in reflog 'git rebase' uses the full onto sha1 for the reflog message whereas 'git rebase -i' uses the short sha1. This is not only inconsistent, but can lead to problems when the reflog is inspected at a later time at which that abbreviation may have become ambiguous. Make 'rebase -i' use the full onto sha1, as well. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 August 2012, 16:41:28 UTC |
2542840 | Martin von Zweigbergk | 09 August 2012, 15:39:51 UTC | add tests for 'git rebase --keep-empty' Add test cases for 'git rebase --keep-empty' with and without an "empty" commit already in upstream. The empty commit that is about to be rebased should be kept in both cases. Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 August 2012, 17:10:45 UTC |
785063e | Junio C Hamano | 08 August 2012, 19:08:17 UTC | sh-setup: protect from exported IFS Many scripted Porcelains rely on being able to split words at the default $IFS characters, i.e. SP, HT and LF. If the user exports a non-default IFS to the environment, what they read from plumbing commands such as ls-files that use HT to delimit fields may not be split in the way we expect. Protect outselves by resetting it, just like we do so against CDPATH exported to the environment. Noticed by Andrew Dranse <adranse@oanda.com>. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 August 2012, 21:36:33 UTC |
c2a7f5d | Jeff King | 07 August 2012, 20:07:38 UTC | docs: monospace listings in docbook output When asciidoc converts a listing block like: ---------------------- $ git log --merge ---------------------- it marks it to be displayed in a monospace font. This works fine when generating HTML output. However, when generating docbook output, we override the expansion of a listingblock to work around bugs in some versions of the docbook toolchain. Our override did not mark the listingblock with the "monospaced" class. The main output that uses docbook as an intermediate format is the manpages. We didn't notice any issue there because the monospaced class seems to be ignored when generating roff from the docbook manpages. However, when generating texinfo to make info pages, docbook does respect this class. The resulting texinfo output properly uses "@example" blocks to display the listing in this case. Besides possibly looking prettier in some texinfo backends, one important effect is that the monospace font suppresses texinfo's expansion of "--" and "---" into en-dashes and em-dashes. With the current code, the example above ends up looking like "git log -merge", which is confusing and wrong. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2012, 21:30:52 UTC |
4b7f2fa | Junio C Hamano | 07 August 2012, 05:31:10 UTC | receive-pack: do not leak output from auto-gc to standard output The standard output channel of receive-pack is a structured protocol channel, and subprocesses must never be allowed to leak anything into it by writing to their standard output. Use RUN_COMMAND_STDOUT_TO_STDERR option to run_command_v_opt() just like we do when running hooks to prevent output from "gc" leaking to the standard output. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2012, 05:31:10 UTC |
2c3fd4b | Brandon Casey | 07 August 2012, 05:01:48 UTC | t/t5400: demonstrate breakage caused by informational message from prune When receive-pack triggers 'git gc --auto' and 'git prune' is called to remove a stale temporary object, 'git prune' prints an informational message to stdout about the file that it will remove. Since this message is written to stdout, it is sent back over the transport channel to the git client which tries to interpret it as part of the pack protocol and then promptly terminates with a complaint about a protocol error. Introduce a test which exercises the auto-gc functionality of receive-pack and demonstrates this breakage. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2012, 05:29:30 UTC |
436783c | Ben Walton | 07 August 2012, 03:07:42 UTC | Enable HAVE_DEV_TTY for Solaris Now that git_terminal_prompt can cleanly interact with /dev/tty on Solaris, enable HAVE_DEV_TTY so that this code path is used for credential reading instead of relying on the crippled getpass(). Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2012, 05:12:43 UTC |
67ba123 | Jeff King | 07 August 2012, 04:10:26 UTC | terminal: seek when switching between reading and writing When a stdio stream is opened in update mode (e.g., "w+"), the C standard forbids switching between reading or writing without an intervening positioning function. Many implementations are lenient about this, but Solaris libc will flush the recently-read contents to the output buffer. In this instance, that meant writing the non-echoed password that the user just typed to the terminal. Fix it by inserting a no-op fseek between the read and write. The opposite direction (writing followed by reading) is also disallowed, but our intervening fflush is an acceptable positioning function for that alternative. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2012, 05:11:47 UTC |
b17a01d | Junio C Hamano | 06 August 2012, 22:51:58 UTC | Prepare for 1.7.11.5 Hopefully that will be the final 1.7.11.x maintenance release. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 August 2012, 22:51:58 UTC |
c8dacba | Junio C Hamano | 06 August 2012, 22:40:00 UTC | Merge branch 'jn/block-sha1' into maint * jn/block-sha1: Makefile: BLK_SHA1 does not require fast htonl() and unaligned loads block-sha1: put expanded macro parameters in parentheses block-sha1: avoid pointer conversion that violates alignment constraints | 06 August 2012, 22:40:00 UTC |
dbf64e1 | Junio C Hamano | 06 August 2012, 22:39:38 UTC | Merge branch 'jn/make-assembly-in-right-directory' into maint * jn/make-assembly-in-right-directory: Makefile: fix location of listing produced by "make subdir/foo.s" | 06 August 2012, 22:39:38 UTC |
c2e585f | Junio C Hamano | 06 August 2012, 22:39:16 UTC | Merge branch 'ms/daemon-doc-typo' into maint * ms/daemon-doc-typo: Documentation/git-daemon: add missing word | 06 August 2012, 22:39:16 UTC |
05f5ba6 | Junio C Hamano | 06 August 2012, 22:37:54 UTC | Merge branch 'lm/git-blame-el' into maint * lm/git-blame-el: git-blame.el: Do not use bare 0 to mean (point-min) git-blame.el: Use with-current-buffer where appropriate git-blame.el: Do not use goto-line in lisp code | 06 August 2012, 22:37:54 UTC |
125f643 | Junio C Hamano | 06 August 2012, 22:37:43 UTC | Merge branch 'rs/ipv6-ssh-url' into maint * rs/ipv6-ssh-url: git: Wrong parsing of ssh urls with IPv6 literals ignores port | 06 August 2012, 22:37:43 UTC |
e597c43 | Junio C Hamano | 06 August 2012, 22:37:28 UTC | Merge branch 'rs/git-blame-mapcar-mapc' into maint * rs/git-blame-mapcar-mapc: git-blame.el: use mapc instead of mapcar | 06 August 2012, 22:37:28 UTC |
809b262 | Junio C Hamano | 06 August 2012, 22:37:09 UTC | Merge branch 'rr/doc-commit' into maint * rr/doc-commit: commit: document a couple of options | 06 August 2012, 22:37:09 UTC |