8ced1aa | Chris Webb | 26 June 2012, 15:06:42 UTC | git-checkout: disallow --detach on unborn branch abe199808c (git checkout -b: allow switching out of an unborn branch) introduced a bug demonstrated by git checkout --orphan foo git checkout --detach git symbolic-ref HEAD which gives 'refs/heads/(null)'. This happens because we strbuf_addf(&branch_ref, "refs/heads/%s", opts->new_branch) when opts->new_branch can be NULL for --detach. Catch and forbid this case, adding a test to t2017 to catch it in future. Signed-off-by: Chris Webb <chris@arachsys.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 June 2012, 18:11:14 UTC |
abe1998 | Junio C Hamano | 30 January 2012, 20:10:08 UTC | git checkout -b: allow switching out of an unborn branch Running "git checkout -b another" immediately after "git init" when you do not even have a commit on 'master' fails with: $ git checkout -b another fatal: You are on a branch yet to be born This is unnecessary, if we redefine "git checkout -b $name" that does not take any $start_point (which has to be a commit) as "I want to check out a new branch $name from the state I am in". Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 February 2012, 00:32:15 UTC |
04f6785 | Junio C Hamano | 13 January 2012, 07:30:53 UTC | Update draft release notes to 1.7.6.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 January 2012, 07:30:53 UTC |
15f07e0 | Jeff King | 12 January 2012, 22:32:34 UTC | thin-pack: try harder to use preferred base objects as base When creating a pack using objects that reside in existing packs, we try to avoid recomputing futile delta between an object (trg) and a candidate for its base object (src) if they are stored in the same packfile, and trg is not recorded as a delta already. This heuristics makes sense because it is likely that we tried to express trg as a delta based on src but it did not produce a good delta when we created the existing pack. As the pack heuristics prefer producing delta to remove data, and Linus's law dictates that the size of a file grows over time, we tend to record the newest version of the file as inflated, and older ones as delta against it. When creating a thin-pack to transfer recent history, it is likely that we will try to send an object that is recorded in full, as it is newer. But the heuristics to avoid recomputing futile delta effectively forbids us from attempting to express such an object as a delta based on another object. Sending an object in full is often more expensive than sending a suboptimal delta based on other objects, and it is even more so if we could use an object we know the receiving end already has (i.e. preferred base object) as the delta base. Tweak the recomputation avoidance logic, so that we do not punt on computing delta against a preferred base object. The effect of this change can be seen on two simulated upload-pack workloads. The first is based on 44 reflog entries from my git.git origin/master reflog, and represents the packs that kernel.org sent me git updates for the past month or two. The second workload represents much larger fetches, going from git's v1.0.0 tag to v1.1.0, then v1.1.0 to v1.2.0, and so on. The table below shows the average generated pack size and the average CPU time consumed for each dataset, both before and after the patch: dataset | reflog | tags --------------------------------- before | 53358 | 2750977 size after | 32398 | 2668479 change | -39% | -3% --------------------------------- before | 0.18 | 1.12 CPU after | 0.18 | 1.15 change | +0% | +3% This patch makes a much bigger difference for packs with a shorter slice of history (since its effect is seen at the boundaries of the pack) though it has some benefit even for larger packs. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 January 2012, 07:06:20 UTC |
37475f9 | Jeff King | 12 January 2012, 03:05:03 UTC | attr: fix leak in free_attr_elem This function frees the individual "struct match_attr"s we have allocated, but forgot to free the array holding their pointers, leading to a minor memory leak (but it can add up after checking attributes for paths in many directories). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 January 2012, 03:07:23 UTC |
592ed56 | Nguyễn Thái Ngọc Duy | 11 January 2012, 03:21:38 UTC | t2203: fix wrong commit command Add commit message to avoid commit's aborting due to the lack of commit message, not because there are INTENT_TO_ADD entries in index. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 January 2012, 08:09:36 UTC |
f14f980 | Junio C Hamano | 10 January 2012, 21:11:03 UTC | Prepare for 1.7.6.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2012, 21:11:03 UTC |
b6fb7fe | Junio C Hamano | 10 January 2012, 14:57:27 UTC | Documentation: rerere's rr-cache auto-creation and rerere.enabled The description of rerere.enabled left the user in the dark as to who might create an rr-cache directory. Add a note that simply invoking rerere does this. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2012, 20:59:31 UTC |
c432ef9 | Junio C Hamano | 10 January 2012, 20:28:38 UTC | attr.c: clarify the logic to pop attr_stack Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2012, 20:28:38 UTC |
909ca7b | Junio C Hamano | 10 January 2012, 20:27:37 UTC | attr.c: make bootstrap_attr_stack() leave early Thas would de-dent the body of a function that has grown rather large over time, making it a bit easier to read. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2012, 20:27:37 UTC |
77f7f82 | Jeff King | 10 January 2012, 19:32:06 UTC | attr: drop misguided defensive coding In prepare_attr_stack, we pop the old elements of the stack (which were left from a previous lookup and may or may not be useful to us). Our loop to do so checks that we never reach the top of the stack. However, the code immediately afterwards will segfault if we did actually reach the top of the stack. Fortunately, this is not an actual bug, since we will never pop all of the stack elements (we will always keep the root gitattributes, as well as the builtin ones). So the extra check in the loop condition simply clutters the code and makes the intent less clear. Let's get rid of it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2012, 19:55:27 UTC |
1afca44 | Jeff King | 10 January 2012, 18:08:21 UTC | attr: don't confuse prefixes with leading directories When we prepare the attribute stack for a lookup on a path, we start with the cached stack from the previous lookup (because it is common to do several lookups in the same directory hierarchy). So the first thing we must do in preparing the stack is to pop any entries that point to directories we are no longer interested in. For example, if our stack contains gitattributes for: foo/bar/baz foo/bar foo but we want to do a lookup in "foo/bar/bleep", then we want to pop the top element, but retain the others. To do this we walk down the stack from the top, popping elements that do not match our lookup directory. However, the test do this simply checked strncmp, meaning we would mistake "foo/bar/baz" as a leading directory of "foo/bar/baz_plus". We must also check that the character after our match is '/', meaning we matched the whole path component. There are two special cases to consider: 1. The top of our attr stack has the empty path. So we must not check for '/', but rather special-case the empty path, which always matches. 2. Typically when matching paths in this way, you would also need to check for a full string match (i.e., the character after is '\0'). We don't need to do so in this case, though, because our path string is actually just the directory component of the path to a file (i.e., we know that it terminates with "/", because the filename comes after that). Helped-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2012, 19:25:40 UTC |
07b88a0 | Thomas Rast | 06 January 2012, 13:08:02 UTC | Documentation: rerere.enabled is the primary way to configure rerere The wording seems to suggest that creating the directory is needed and the setting of rerere.enabled is only for disabling the feature by setting it to 'false'. But the configuration is meant to be the primary control and setting it to 'true' will enable it; the rr-cache directory will be created as necessary and the user does not have to create it. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 January 2012, 20:27:59 UTC |
5c951ef | Clemens Buchacher | 31 December 2011, 11:50:56 UTC | Documentation: read-tree --prefix works with existing subtrees Since 34110cd4 (Make 'unpack_trees()' have a separate source and destination index) it is no longer true that a subdirectory with the same prefix must not exist. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 January 2012, 09:18:53 UTC |
0eddcbf | Jack Nagel | 29 December 2011, 04:42:05 UTC | Add MYMETA.json to perl/.gitignore ExtUtils::MakeMaker generates MYMETA.json in addition to MYMETA.yml since version 6.57_07. As it suggests, it is just meta information about the build and is cleaned up with 'make clean', so it should be ignored. Signed-off-by: Jack Nagel <jacknagel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 December 2011, 21:08:47 UTC |
15b7898 | Junio C Hamano | 14 December 2011, 05:30:40 UTC | Git 1.7.6.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 December 2011, 05:32:30 UTC |
52b195f | Junio C Hamano | 14 December 2011, 05:21:30 UTC | Merge branch 'jk/maint-fetch-status-table' into maint-1.7.6 * jk/maint-fetch-status-table: fetch: create status table using strbuf | 14 December 2011, 05:21:30 UTC |
43176d1 | Junio C Hamano | 14 December 2011, 05:12:34 UTC | Merge branch 'jc/maint-name-rev-all' into maint-1.7.6 * jc/maint-name-rev-all: name-rev --all: do not even attempt to describe non-commit object | 14 December 2011, 05:12:34 UTC |
6d1cdad | Junio C Hamano | 14 December 2011, 05:12:14 UTC | Merge branch 'ml/mailmap' into maint-1.7.6 * ml/mailmap: mailmap: xcalloc mailmap_info Conflicts: mailmap.c | 14 December 2011, 05:12:14 UTC |
c3ea051 | Jeff King | 08 December 2011, 10:25:54 UTC | blame: don't overflow time buffer When showing the raw timestamp, we format the numeric seconds-since-epoch into a buffer, followed by the timezone string. This string has come straight from the commit object. A well-formed object should have a timezone string of only a few bytes, but we could be operating on data pushed by a malicious user. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 December 2011, 05:09:06 UTC |
5914f2d | Jeff King | 08 December 2011, 08:43:19 UTC | fetch: create status table using strbuf When we fetch from a remote, we print a status table like: From url * [new branch] foo -> origin/foo We create this table in a static buffer using sprintf. If the remote refnames are long, they can overflow this buffer and smash the stack. Instead, let's use a strbuf to build the string. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 December 2011, 07:17:00 UTC |
c2857fb | Jeff King | 05 December 2011, 22:29:15 UTC | stripspace: fix outdated comment The comment on top of stripspace() claims that the buffer will no longer be NUL-terminated. However, this has not been the case at least since the move to using strbuf in 2007. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 December 2011, 23:04:38 UTC |
332de7a | Sebastian Morr | 02 December 2011, 22:55:28 UTC | Add MYMETA.yml to perl/.gitignore This file is auto-generated by newer versions of ExtUtils::MakeMaker (presumably starting with the version shipping with Perl 5.14). It just contains extra information about the environment and arguments to the Makefile-building process, and should be ignored. Signed-off-by: Sebastian Morr <sebastian@morr.cc> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 December 2011, 22:42:40 UTC |
74b531f | Marc-André Lureau | 17 November 2011, 01:25:06 UTC | mailmap: xcalloc mailmap_info This is to avoid reaching free of uninitialized members. With an invalid .mailmap (and perhaps in other cases), it can reach free(mi->name) with garbage for example. Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 November 2011, 02:00:56 UTC |
e8b14d7 | Junio C Hamano | 15 November 2011, 23:51:05 UTC | name-rev --all: do not even attempt to describe non-commit object This even dates back to the very beginning of "git name-rev"; it does not make much sense to dump all objects in the repository and label non-commits as "undefined". Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 November 2011, 23:51:05 UTC |
8280baf | Junio C Hamano | 26 October 2011, 23:12:48 UTC | Merge branch 'mh/maint-notes-merge-pathbuf-fix' into maint-1.7.6 * mh/maint-notes-merge-pathbuf-fix: notes_merge_commit(): do not pass temporary buffer to other function | 26 October 2011, 23:12:48 UTC |
58f75bc | Junio C Hamano | 26 October 2011, 23:12:35 UTC | Merge branch 'ps/gitweb-js-with-lineno' into maint-1.7.6 * ps/gitweb-js-with-lineno: gitweb: Fix links to lines in blobs when javascript-actions are enabled | 26 October 2011, 23:12:35 UTC |
87d99c6 | Junio C Hamano | 26 October 2011, 23:12:25 UTC | Merge branch 'jm/mergetool-pathspec' into maint-1.7.6 * jm/mergetool-pathspec: mergetool: no longer need to save standard input mergetool: Use args as pathspec to unmerged files | 26 October 2011, 23:12:25 UTC |
716b64a | Junio C Hamano | 26 October 2011, 23:12:19 UTC | Merge branch 'mz/remote-rename' into maint-1.7.6 * mz/remote-rename: remote: only update remote-tracking branch if updating refspec remote rename: warn when refspec was not updated remote: "rename o foo" should not rename ref "origin/bar" remote: write correct fetch spec when renaming remote 'remote' | 26 October 2011, 23:12:19 UTC |
8371e91 | Junio C Hamano | 26 October 2011, 23:12:13 UTC | Merge branch 'rj/maint-t9159-svn-rev-notation' into maint-1.7.6 * rj/maint-t9159-svn-rev-notation: t9159-*.sh: skip for mergeinfo test for svn <= 1.4 | 26 October 2011, 23:12:13 UTC |
1f7a2ab | Junio C Hamano | 26 October 2011, 23:11:28 UTC | Merge branch 'hl/iso8601-more-zone-formats' into maint-1.7.6 * hl/iso8601-more-zone-formats: date.c: Support iso8601 timezone formats | 26 October 2011, 23:11:28 UTC |
588150b | Junio C Hamano | 26 October 2011, 23:09:04 UTC | Merge branch 'tr/doc-note-rewrite' into maint-1.7.6 * tr/doc-note-rewrite: Documentation: basic configuration of notes.rewriteRef | 26 October 2011, 23:09:04 UTC |
139088b | Junio C Hamano | 26 October 2011, 23:09:04 UTC | Merge branch 'nd/sparse-doc' into maint-1.7.6 * nd/sparse-doc: git-read-tree.txt: update sparse checkout examples | 26 October 2011, 23:09:04 UTC |
df9701e | Junio C Hamano | 26 October 2011, 23:09:03 UTC | Merge branch 'mg/maint-doc-sparse-checkout' into maint-1.7.6 * mg/maint-doc-sparse-checkout: git-read-tree.txt: correct sparse-checkout and skip-worktree description git-read-tree.txt: language and typography fixes unpack-trees: print "Aborting" to stderr | 26 October 2011, 23:09:03 UTC |
a574c04 | Junio C Hamano | 26 October 2011, 23:08:19 UTC | Merge branch 'maint-1.7.5' into maint-1.7.6 * maint-1.7.5: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:19 UTC |
69d61da | Junio C Hamano | 26 October 2011, 23:08:14 UTC | Merge branch 'maint-1.7.4' into maint-1.7.5 * maint-1.7.4: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:14 UTC |
ed36a48 | Junio C Hamano | 26 October 2011, 23:08:08 UTC | Merge branch 'maint-1.7.3' into maint-1.7.4 * maint-1.7.3: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:08 UTC |
eb4e672 | Junio C Hamano | 26 October 2011, 23:08:00 UTC | Merge branch 'sn/doc-update-index-assume-unchanged' into maint-1.7.3 * sn/doc-update-index-assume-unchanged: Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:00 UTC |
c14daa4 | Jim Meyering | 22 October 2011, 17:44:40 UTC | make the sample pre-commit hook script reject names with newlines, too The sample pre-commit hook script would fail to reject a file name like "a\nb" because of the way newlines are handled in "$(...)". Adjust the test to count filtered bytes and require there be 0. Also print all diagnostics to standard error, not stdout, so they will actually be seen. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 October 2011, 21:31:14 UTC |
c4c42f2 | Nguyễn Thái Ngọc Duy | 24 October 2011, 04:24:51 UTC | Reindent closing bracket using tab instead of spaces Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 October 2011, 06:54:58 UTC |
8528445 | Michael Haggerty | 27 September 2011, 04:46:53 UTC | notes_merge_commit(): do not pass temporary buffer to other function It is unsafe to pass a temporary buffer as an argument to read_directory(). Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Acked-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 September 2011, 16:58:47 UTC |
2b07ff3 | Peter Stuge | 27 September 2011, 09:51:00 UTC | gitweb: Fix links to lines in blobs when javascript-actions are enabled The fixLinks() function adds 'js=1' to each link that does not already have 'js' query parameter specified. This is used to signal to gitweb that the browser can actually do javascript when these links are used. There are two problems with the existing code: 1. URIs with fragment and 'js' query parameter, like e.g. ...foo?js=0#l199 were not recognized as having 'js' query parameter already. 2. The 'js' query parameter, in the form of either '?js=1' or ';js=1' was appended at the end of URI, even if it included a fragment (had a hash part). This lead to the incorrect links like this ...foo#l199?js=1 instead of adding query parameter as last part of query, but before the fragment part, i.e. ...foo?js=1#l199 Signed-off-by: Peter Stuge <peter@stuge.se> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 September 2011, 16:34:37 UTC |
5e82123 | Nguyễn Thái Ngọc Duy | 25 September 2011, 23:09:15 UTC | git-read-tree.txt: update sparse checkout examples The negation example uses '*' to match everything. This used to work before 9037026 (unpack-trees: fix sparse checkout's "unable to match directories") because back then, the list of paths is used to match sparse patterns, so with the patterns * !subdir/ subdir/ always matches any path that start with subdir/ and "*" has no chance to get tested. The result is subdir is excluded. After the said commit, a tree structure is dynamically created and sparse pattern matching now follows closely how read_directory() applies .gitignore. This solves one problem, but reveals another one. With this new strategy, "!subdir/" rule will be only tested once when "subdir" directory is examined. Entries inside subdir, when examined, will match "*" and are (correctly) re-added again because any rules without a slash will match at every directory level. In the end, "*" can revert every negation rules. In order to correctly exclude subdir, we must use /* !subdir to limit "match all" rule at top level only. "*" rule has no actual use in sparse checkout and can be confusing to users. While we can automatically turn "*" to "/*", this violates .gitignore definition. Instead, discourage "*" in favor of "/*" (in the second example). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 September 2011, 17:00:44 UTC |
6d9990a | Junio C Hamano | 16 September 2011, 20:19:33 UTC | mergetool: no longer need to save standard input Earlier code wanted to run merge_file and prompt_after_failed_merge both of which wanted to read from the standard input of the entire script inside a while loop, which read from a pipe, and in order to do so, it redirected the original standard input to another file descriptor. We no longer need to do so after the previous change. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 September 2011, 16:39:45 UTC |
3e8e691 | Jonathon Mah | 16 September 2011, 02:12:10 UTC | mergetool: Use args as pathspec to unmerged files Mergetool now treats its path arguments as a pathspec (like other git subcommands), restricting action to the given files and directories. Files matching the pathspec are filtered so mergetool only acts on unmerged paths; previously it would assume each path argument was in an unresolved state, and get confused when it couldn't check out their other stages. Running "git mergetool subdir" will prompt to resolve all conflicted blobs under subdir. Signed-off-by: Jonathon Mah <me@JonathonMah.com> Acked-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 September 2011, 16:39:36 UTC |
6320526 | Junio C Hamano | 23 September 2011, 21:38:39 UTC | Git 1.7.6.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 September 2011, 21:43:05 UTC |
a0b1cb6 | Junio C Hamano | 23 September 2011, 21:30:49 UTC | Merge branch 'cb/maint-ls-files-error-report' into maint * cb/maint-ls-files-error-report: t3005: do not assume a particular order of stdout and stderr of git-ls-files ls-files: fix pathspec display on error | 23 September 2011, 21:30:49 UTC |
85b3c75 | Allan Caffee | 01 August 2011, 01:52:41 UTC | describe: Refresh the index when run with --dirty When running git describe --dirty the index should be refreshed. Previously the cached index would cause describe to think that the index was dirty when, in reality, it was just stale. The issue was exposed by python setuptools which hardlinks files into another directory when building a distribution. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 September 2011, 21:28:17 UTC |
84b0514 | Junio C Hamano | 23 September 2011, 21:27:33 UTC | Merge branch 'jc/maint-clone-alternates' into maint * jc/maint-clone-alternates: clone: clone from a repository with relative alternates clone: allow more than one --reference | 23 September 2011, 21:27:33 UTC |
406c1c4 | Junio C Hamano | 23 September 2011, 21:21:39 UTC | Merge branch 'nd/maint-clone-gitdir' into maint * nd/maint-clone-gitdir: clone: allow to clone from .git file read_gitfile_gently(): rename misnamed function to read_gitfile() | 23 September 2011, 21:21:39 UTC |
be5acb3 | Junio C Hamano | 23 September 2011, 21:20:51 UTC | Merge branch 'mh/check-ref-format-print-normalize' into maint * mh/check-ref-format-print-normalize: Forbid DEL characters in reference names check-ref-format --print: Normalize refnames that start with slashes | 23 September 2011, 21:20:51 UTC |
503359f | Junio C Hamano | 23 September 2011, 21:16:22 UTC | Merge branch 'mg/branch-set-upstream-previous' into maint * mg/branch-set-upstream-previous: branch.c: use the parsed branch name | 23 September 2011, 21:16:22 UTC |
40ffc49 | Junio C Hamano | 23 September 2011, 21:11:18 UTC | Merge branch 'gb/maint-am-patch-format-error-message' into maint * gb/maint-am-patch-format-error-message: am: format is in $patch_format, not parse_patch | 23 September 2011, 21:11:18 UTC |
1f1f575 | Michael J Gruber | 21 September 2011, 07:48:38 UTC | git-read-tree.txt: correct sparse-checkout and skip-worktree description The description of .git/info/sparse-checkout and skip-worktree is exactly the opposite of what is true, which is: If a file matches a pattern in sparse-checkout, then (it is to be checked out and therefore) skip-worktree is unset for that file; otherwise, it is set (so that it is not checked out). Currently, the opposite is documented, and (consistently) read-tree's behavior with respect to bit flips is descibed incorrectly. Fix it. In hindsight, it would have been much better to have a "sparse-ignore" or "sparse-skip" file so that an empty file would mean a full checkout, and the file logic would be analogous to that of .gitignore, excludes and skip-worktree. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 September 2011, 22:05:53 UTC |
cc1a2b6 | Michael J Gruber | 21 September 2011, 07:48:37 UTC | git-read-tree.txt: language and typography fixes Fix a few missing articles and such, and mark-up 'commands' and `files` appropriately. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 September 2011, 22:05:53 UTC |
6f90969 | Michael J Gruber | 21 September 2011, 07:48:36 UTC | unpack-trees: print "Aborting" to stderr display_error_msgs() prints all the errors to stderr already (if any), followed by "Aborting" (if any) to stdout. Make the latter go to stderr instead. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 September 2011, 22:05:53 UTC |
e29bee1 | Ramsay Jones | 10 September 2011, 17:40:10 UTC | t9159-*.sh: skip for mergeinfo test for svn <= 1.4 t9159 relies on the command-line syntax of svn >= 1.5. Given the declining install base of older svn versions, it is not worth our time to support older svn syntax. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 September 2011, 18:59:33 UTC |
acd6d7e | Stefan Naewe | 21 September 2011, 06:21:50 UTC | Documentation/git-update-index: refer to 'ls-files' 'ls-files' refers to 'update-index' to show how the 'assume unchanged' bit can be seen. This makes the connection 'bi-directional'. Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 September 2011, 12:00:20 UTC |
e622f41 | Jay Soffian | 19 September 2011, 23:40:52 UTC | git-mergetool: check return value from read Mostly fixed already by 6b44577 (mergetool: check return value from read, 2011-07-01). Catch two uses it missed. Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 September 2011, 00:41:49 UTC |
2b4aa89 | Thomas Rast | 13 September 2011, 07:32:42 UTC | Documentation: basic configuration of notes.rewriteRef Users had problems finding a working setting for notes.rewriteRef. Document how to enable rewriting for notes/commits, which should be a safe setting. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 September 2011, 15:35:38 UTC |
ee646eb | Haitao Li | 09 September 2011, 10:10:33 UTC | date.c: Support iso8601 timezone formats Timezone designators in the following formats are all valid according to ISO8601:2004, section 4.3.2: [+-]hh, [+-]hhmm, [+-]hh:mm but we have ignored the ones with colon so far. Signed-off-by: Haitao Li <lihaitao@gmail.com> Helped-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 23:49:14 UTC |
740a8fc | Junio C Hamano | 12 September 2011, 17:33:03 UTC | Git 1.7.6.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 17:33:40 UTC |
8702fee | Junio C Hamano | 12 September 2011, 17:19:57 UTC | Merge branch 'jl/maint-fetch-submodule-check-fix' into maint * jl/maint-fetch-submodule-check-fix: fetch: skip on-demand checking when no submodules are configured | 12 September 2011, 17:19:57 UTC |
c2d5358 | Junio C Hamano | 12 September 2011, 05:08:56 UTC | Prepare for 1.7.6.3 maintenance release Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 05:33:27 UTC |
e1fd529 | Junio C Hamano | 12 September 2011, 05:33:24 UTC | Merge branch 'ms/reflog-show-is-default' into maint * ms/reflog-show-is-default: reflog: actually default to subcommand 'show' | 12 September 2011, 05:33:24 UTC |
2f19a52 | Junio C Hamano | 12 September 2011, 05:33:20 UTC | Merge branch 'jk/reset-reflog-message-fix' into maint * jk/reset-reflog-message-fix: reset: give better reflog messages | 12 September 2011, 05:33:20 UTC |
5d4fcd9 | Junio C Hamano | 12 September 2011, 05:33:16 UTC | Merge branch 'vi/make-test-vector-less-specific' into maint * vi/make-test-vector-less-specific: tests: cleanup binary test vector files | 12 September 2011, 05:33:16 UTC |
fcfc2d5 | Junio C Hamano | 12 September 2011, 04:54:32 UTC | Merge branch 'jk/tag-contains-ab' (early part) into maint * 'jk/tag-contains-ab' (early part): tag: speed up --contains calculation | 12 September 2011, 04:54:32 UTC |
908bb1a | Junio C Hamano | 12 September 2011, 04:53:47 UTC | Merge branch 'dz/connect-error-report' into maint * dz/connect-error-report: Do not log unless all connect() attempts fail | 12 September 2011, 04:53:47 UTC |
b3038a5 | Junio C Hamano | 12 September 2011, 04:53:39 UTC | Merge branch 'jc/maint-mergetool-read-fix' into maint * jc/maint-mergetool-read-fix: mergetool: check return value from read | 12 September 2011, 04:53:39 UTC |
eff7c32 | Junio C Hamano | 12 September 2011, 04:53:13 UTC | Merge branch 'jk/maint-config-param' into maint * jk/maint-config-param: config: use strbuf_split_str instead of a temporary strbuf strbuf: allow strbuf_split to work on non-strbufs config: avoid segfault when parsing command-line config config: die on error in command-line config fix "git -c" parsing of values with equals signs strbuf_split: add a max parameter | 12 September 2011, 04:53:13 UTC |
7baf32a | Junio C Hamano | 12 September 2011, 04:52:18 UTC | Merge branch 'jn/doc-dashdash' into maint * jn/doc-dashdash: Documentation/i18n: quote double-dash for AsciiDoc Documentation: quote double-dash for AsciiDoc Conflicts: Documentation/git-mergetool--lib.txt | 12 September 2011, 04:52:18 UTC |
3fc44a1 | Junio C Hamano | 12 September 2011, 04:51:10 UTC | Merge branch 'jk/maint-1.7.2-status-ignored' into maint * jk/maint-1.7.2-status-ignored: git status --ignored: tests and docs status: fix bug with missing --ignore files Conflicts: Documentation/git-status.txt t/t7508-status.sh | 12 September 2011, 04:51:10 UTC |
b52d00a | Martin von Zweigbergk | 10 September 2011, 19:39:23 UTC | remote: only update remote-tracking branch if updating refspec 'git remote rename' will only update the remote's fetch refspec if it looks like a default one. If the remote has no default fetch refspec, as in [remote "origin"] url = git://git.kernel.org/pub/scm/git/git.git fetch = +refs/heads/*:refs/remotes/upstream/* we would not update the fetch refspec and even if there is a ref called "refs/remotes/origin/master", we should not rename it, since it was not created by fetching from the remote. Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 04:40:00 UTC |
1822b86 | Martin von Zweigbergk | 03 September 2011, 15:26:59 UTC | remote rename: warn when refspec was not updated When renaming a remote, we also try to update the fetch refspec accordingly, but only if it has the default format. For others, such as refs/heads/master:refs/heads/origin, we are conservative and leave it untouched. Let's give the user a warning about refspecs that are not updated, so he can manually update the config if necessary. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 04:39:58 UTC |
60e5eee | Martin von Zweigbergk | 02 September 2011, 00:50:34 UTC | remote: "rename o foo" should not rename ref "origin/bar" When renaming a remote called 'o' using 'git remote rename o foo', git should also rename any remote-tracking branches for the remote. This does happen, but any remote-tracking branches starting with 'refs/remotes/o', such as 'refs/remotes/origin/bar', will also be renamed (to 'refs/remotes/foorigin/bar' in this case). Fix it by simply matching one more character, up to the slash following the remote name. Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 04:39:56 UTC |
28f555f | Martin von Zweigbergk | 02 September 2011, 00:50:33 UTC | remote: write correct fetch spec when renaming remote 'remote' When renaming a remote whose name is contained in a configured fetch refspec for that remote, we currently replace the first occurrence of the remote name in the refspec. This is correct in most cases, but breaks if the remote name occurs in the fetch refspec before the expected place. For example, we currently change [remote "remote"] url = git://git.kernel.org/pub/scm/git/git.git fetch = +refs/heads/*:refs/remotes/remote/* into [remote "origin"] url = git://git.kernel.org/pub/scm/git/git.git fetch = +refs/heads/*:refs/origins/remote/* Reduce the risk of changing incorrect sections of the refspec by matching the entire ":refs/remotes/<name>/" instead of just "<name>". Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 04:39:55 UTC |
30962fb | Sverre Rabbelier | 11 September 2011, 12:38:10 UTC | SubmittingPathces: remove Cogito reference Removing Cogito leaves just git and StGit, which is a rather incomplete list of git diff tools available. Sidestep the problem of deciding what tools to mention by not mentioning any. Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2011, 03:53:00 UTC |
18322ba | Jens Lehmann | 09 September 2011, 18:22:03 UTC | fetch: skip on-demand checking when no submodules are configured It makes no sense to do the - possibly very expensive - call to "rev-list <new-ref-sha1> --not --all" in check_for_new_submodule_commits() when there aren't any submodules configured. Leave check_for_new_submodule_commits() early when no name <-> path mappings for submodules are found in the configuration. To make that work reading the configuration had to be moved further up in cmd_fetch(), as doing that after the actual fetch of the superproject was too late. Reported-by: Martin Fick <mfick@codeaurora.org> Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 September 2011, 20:59:20 UTC |
509d597 | Junio C Hamano | 06 September 2011, 18:41:02 UTC | Git 1.7.6.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 September 2011, 18:41:02 UTC |
5a277f3 | Junio C Hamano | 06 September 2011, 18:06:32 UTC | Revert "Merge branch 'cb/maint-quiet-push' into maint" This reverts commit ffa69e61d3c5730bd4b65a465efc130b0ef3c7df, reversing changes made to 4a13c4d14841343d7caad6ed41a152fee550261d. Adding a new command line option to receive-pack and feed it from send-pack is not an acceptable way to add features, as there is no guarantee that your updated send-pack will be talking to updated receive-pack. New features need to be added via the capability mechanism negotiated over the protocol. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 September 2011, 18:10:41 UTC |
b15b5b1 | Thomas Rast | 30 August 2011, 09:21:07 UTC | Documentation: clarify effects of -- <path> arguments 'git log -- <path>' does not "show commits that affect the specified paths" in a literal sense unless --full-history is given (for example, a file that only existed on a side branch will turn up no commits at all!). Reword it to specify the actual intent of the filtering, and point to the "History Simplification" section. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 August 2011, 17:05:21 UTC |
dff4b0e | Giuseppe Bilotta | 29 August 2011, 15:22:06 UTC | am: format is in $patch_format, not parse_patch The error message given when the patch format was not recognized was wrong, since the variable checked was $parse_patch rather than $patch_format. Fix by checking the non-emptyness of the correct variable. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 August 2011, 16:07:54 UTC |
385ceec | Johannes Sixt | 28 August 2011, 07:34:56 UTC | t3005: do not assume a particular order of stdout and stderr of git-ls-files There is no guarantee that stderr is flushed before stdout when both channels are redirected to a file. Check the channels using independent files. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 August 2011, 05:19:27 UTC |
f3738c1 | Michael Haggerty | 27 August 2011, 04:12:44 UTC | Forbid DEL characters in reference names DEL is an ASCII control character and therefore should not be permitted in reference names. Add tests for this and other unusual characters. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 August 2011, 18:47:49 UTC |
cd2b8ae | Junio C Hamano | 25 August 2011, 21:46:52 UTC | whitespace: have SP on both sides of an assignment "=" I've deliberately excluded the borrowed code in compat/nedmalloc directory. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2011, 21:47:07 UTC |
f877fd8 | Pang Yan Han | 25 August 2011, 15:40:50 UTC | update-ref: whitespace fix Signed-off-by: Pang Yan Han <pangyanhan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2011, 21:42:11 UTC |
2f633f4 | Michael Haggerty | 25 August 2011, 19:19:24 UTC | check-ref-format --print: Normalize refnames that start with slashes When asked if "refs///heads/master" is valid, check-ref-format says "Yes, it is well formed", and when asked to print canonical form, it shows "refs/heads/master". This is so that it can be tucked after "$GIT_DIR/" to form a valid pathname for a loose ref, and we normalize a pathname like "$GIT_DIR/refs///heads/master" to de-dup the slashes in it. Similarly, when asked if "/refs/heads/master" is valid, check-ref-format says "Yes, it is Ok", but the leading slash is not removed when printing, leading to "$GIT_DIR//refs/heads/master". Fix it to make sure such leading slashes are removed. Add tests that such refnames are accepted and normalized correctly. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2011, 20:39:38 UTC |
ccef604 | Junio C Hamano | 24 August 2011, 19:16:58 UTC | Git 1.7.6.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2011, 19:16:58 UTC |
c43a1be | Junio C Hamano | 24 August 2011, 19:16:15 UTC | Merge branch 'jc/maint-smart-http-race-upload-pack' into maint * jc/maint-smart-http-race-upload-pack: get_indexed_object can return NULL if nothing is in that slot; check for it | 24 August 2011, 19:16:15 UTC |
2a74532 | Brian Harring | 24 August 2011, 05:47:17 UTC | get_indexed_object can return NULL if nothing is in that slot; check for it This fixes a segfault introduced by 051e400; via it, no longer able to trigger the http/smartserv race. Signed-off-by: Brian Harring <ferringb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 August 2011, 17:50:33 UTC |
b0b35a6 | Junio C Hamano | 23 August 2011, 22:28:18 UTC | Update draft release notes for 1.7.6.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 August 2011, 22:28:18 UTC |
c9321a0 | Junio C Hamano | 23 August 2011, 22:27:30 UTC | Merge branch 'jc/maint-combined-diff-work-tree' into maint * jc/maint-combined-diff-work-tree: diff -c/--cc: do not mistake "resolved as deletion" as "use working tree" Conflicts: combine-diff.c | 23 August 2011, 22:27:30 UTC |
36bad9d | Junio C Hamano | 23 August 2011, 22:20:06 UTC | Merge branch 'cb/maint-exec-error-report' into maint * cb/maint-exec-error-report: notice error exit from pager error_routine: use parent's stderr if exec fails | 23 August 2011, 22:20:06 UTC |
ffa69e6 | Junio C Hamano | 23 August 2011, 22:19:45 UTC | Merge branch 'cb/maint-quiet-push' into maint * cb/maint-quiet-push: receive-pack: do not overstep command line argument array propagate --quiet to send-pack/receive-pack Conflicts: Documentation/git-receive-pack.txt Documentation/git-send-pack.txt | 23 August 2011, 22:19:45 UTC |
4a13c4d | Junio C Hamano | 23 August 2011, 22:17:50 UTC | Merge branch 'jc/maint-smart-http-race-upload-pack' into maint * jc/maint-smart-http-race-upload-pack: helping smart-http/stateless-rpc fetch race | 23 August 2011, 22:17:50 UTC |
02c2c60 | Junio C Hamano | 23 August 2011, 22:17:14 UTC | Merge branch 'jc/no-gitweb-test-without-cgi-etc' into maint * jc/no-gitweb-test-without-cgi-etc: t/gitweb-lib.sh: skip gitweb tests when perl dependencies are not met | 23 August 2011, 22:17:14 UTC |
e6baf4a | Junio C Hamano | 23 August 2011, 01:05:16 UTC | clone: clone from a repository with relative alternates Cloning from a local repository blindly copies or hardlinks all the files under objects/ hierarchy. This results in two issues: - If the repository cloned has an "objects/info/alternates" file, and the command line of clone specifies --reference, the ones specified on the command line get overwritten by the copy from the original repository. - An entry in a "objects/info/alternates" file can specify the object stores it borrows objects from as a path relative to the "objects/" directory. When cloning a repository with such an alternates file, if the new repository is not sitting next to the original repository, such relative paths needs to be adjusted so that they can be used in the new repository. This updates add_to_alternates_file() to take the path to the alternate object store, including the "/objects" part at the end (earlier, it was taking the path to $GIT_DIR and was adding "/objects" itself), as it is technically possible to specify in objects/info/alternates file the path of a directory whose name does not end with "/objects". Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 August 2011, 16:56:14 UTC |
dbc92b0 | Junio C Hamano | 23 August 2011, 01:05:15 UTC | clone: allow more than one --reference Also add a test to expose a long-standing bug that is triggered when cloning with --reference option from a local repository that has its own alternates. The alternate object stores specified on the command line are lost, and only alternates copied from the source repository remain. The bug will be fixed in the next patch. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 August 2011, 01:57:20 UTC |
1be9d84 | Heiko Voigt | 22 August 2011, 20:36:45 UTC | add technical documentation about ref iteration Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 August 2011, 22:01:14 UTC |