349cb50 | Junio C Hamano | 19 September 2014, 21:21:31 UTC | Git 2.1.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 September 2014, 21:21:31 UTC |
b8f7239 | Junio C Hamano | 19 September 2014, 21:05:13 UTC | Merge branch 'et/spell-poll-infinite-with-minus-one-only' into maint * et/spell-poll-infinite-with-minus-one-only: upload-pack: keep poll(2)'s timeout to -1 | 19 September 2014, 21:05:13 UTC |
08fd8a0 | Junio C Hamano | 19 September 2014, 21:05:12 UTC | Merge branch 'nd/fetch-pass-quiet-to-gc-child-process' into maint * nd/fetch-pass-quiet-to-gc-child-process: fetch: silence git-gc if --quiet is given fetch: convert argv_gc_auto to struct argv_array | 19 September 2014, 21:05:12 UTC |
fb6f843 | Junio C Hamano | 19 September 2014, 21:05:12 UTC | Merge branch 'jk/prune-top-level-refs-after-packing' into maint * jk/prune-top-level-refs-after-packing: pack-refs: prune top-level refs like "refs/foo" | 19 September 2014, 21:05:12 UTC |
0448134 | Junio C Hamano | 19 September 2014, 21:05:12 UTC | Merge branch 'jk/fast-import-fixes' into maint * jk/fast-import-fixes: fast-import: fix buffer overflow in dump_tags fast-import: clean up pack_data pointer in end_packfile | 19 September 2014, 21:05:12 UTC |
a28e876 | Junio C Hamano | 19 September 2014, 21:05:12 UTC | Merge branch 'jn/unpack-trees-checkout-m-carry-deletion' into maint * jn/unpack-trees-checkout-m-carry-deletion: checkout -m: attempt merge when deletion of path was staged unpack-trees: use 'cuddled' style for if-else cascade unpack-trees: simplify 'all other failures' case | 19 September 2014, 21:05:12 UTC |
f715334 | Junio C Hamano | 19 September 2014, 21:05:11 UTC | Merge branch 'sp/pack-protocol-doc-on-shallow' into maint * sp/pack-protocol-doc-on-shallow: Document LF appearing in shallow command during send-pack/receive-pack | 19 September 2014, 21:05:11 UTC |
8ec959f | Junio C Hamano | 19 September 2014, 21:05:11 UTC | Merge branch 'jk/prompt-stash-could-be-packed' into maint * jk/prompt-stash-could-be-packed: git-prompt: do not look for refs/stash in $GIT_DIR | 19 September 2014, 21:05:11 UTC |
92ea1ac | Junio C Hamano | 19 September 2014, 21:05:11 UTC | Merge branch 'rs/refresh-beyond-symlink' into maint * rs/refresh-beyond-symlink: read-cache: check for leading symlinks when refreshing index | 19 September 2014, 21:05:11 UTC |
ffe41f8 | Junio C Hamano | 19 September 2014, 21:05:11 UTC | Merge branch 'lf/bundle-exclusion' into maint * lf/bundle-exclusion: bundle: fix exclusion of annotated tags | 19 September 2014, 21:05:11 UTC |
bb6ac5e | Junio C Hamano | 19 September 2014, 21:05:10 UTC | Merge branch 'jc/apply-ws-prefix' into maint * jc/apply-ws-prefix: apply: omit ws check for excluded paths apply: hoist use_patch() helper for path exclusion up apply: use the right attribute for paths in non-Git patches Conflicts: builtin/apply.c | 19 September 2014, 21:05:10 UTC |
04cd47f | Junio C Hamano | 19 September 2014, 21:05:10 UTC | Merge branch 'jk/command-line-config-empty-string' into maint * jk/command-line-config-empty-string: config: teach "git -c" to recognize an empty string Conflicts: config.c | 19 September 2014, 21:05:10 UTC |
723361a | Junio C Hamano | 19 September 2014, 21:05:09 UTC | Merge branch 'jk/pretty-empty-format' into maint * jk/pretty-empty-format: pretty: make empty userformats truly empty pretty: treat "--format=" as an empty userformat revision: drop useless string offset when parsing "--pretty" | 19 September 2014, 21:05:09 UTC |
96db324 | Junio C Hamano | 29 August 2014, 17:18:22 UTC | Merge git://github.com/git-l10n/git-po * git://github.com/git-l10n/git-po: po/TEAMS: add new members to German translation team l10n: de.po: translate 38 new messages | 29 August 2014, 17:18:22 UTC |
782ac53 | Ralf Thielow | 26 August 2014, 16:54:30 UTC | po/TEAMS: add new members to German translation team Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> | 29 August 2014, 05:08:17 UTC |
d35ea4d | Ralf Thielow | 20 June 2014, 15:22:48 UTC | l10n: de.po: translate 38 new messages Translate 38 new messages came from git.pot update in fe05e19 (l10n: git.pot: v2.1.0 round 1 (38 new, 9 removed)). Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> | 29 August 2014, 05:07:59 UTC |
5d146f7 | Shawn Pearce | 27 August 2014, 20:46:56 UTC | Document LF appearing in shallow command during send-pack/receive-pack The implementation sends an LF, but the protocol documentation was missing this detail. Signed-off-by: Shawn Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 August 2014, 22:13:55 UTC |
4109c28 | Junio C Hamano | 26 August 2014, 18:16:26 UTC | Merge branch 'jk/diff-tree-t-fix' Fix (rarely used) "git diff-tree -t" regression in 2.0. * jk/diff-tree-t-fix: intersect_paths: respect mode in git's tree-sort | 26 August 2014, 18:16:26 UTC |
a3d54f9 | Junio C Hamano | 26 August 2014, 18:16:25 UTC | Merge branch 'jk/pack-shallow-always-without-bitmap' Reachability bitmaps do not work with shallow operations. Fixes regression in 2.0. * jk/pack-shallow-always-without-bitmap: pack-objects: turn off bitmaps when we see --shallow lines | 26 August 2014, 18:16:25 UTC |
212d781 | Junio C Hamano | 26 August 2014, 18:16:25 UTC | Merge branch 'jk/fix-profile-feedback-build' Fix profile-feedback build broken in 2.1 for tarball releases. * jk/fix-profile-feedback-build: Makefile: make perf tests optional for profile build | 26 August 2014, 18:16:25 UTC |
6a143aa | Jonathan Nieder | 13 August 2014, 00:03:18 UTC | checkout -m: attempt merge when deletion of path was staged twoway_merge() is missing an o->gently check in the case where a file that needs to be modified is missing from the index but present in the old and new trees. As a result, in this case 'git checkout -m' errors out instead of trying to perform a merge. Fix it by checking o->gently. While at it, inline the o->gently check into reject_merge to prevent future call sites from making the same mistake. Noticed by code inspection. The test for the motivating case was added by JC. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2014, 22:17:34 UTC |
c285171 | Junio C Hamano | 25 August 2014, 22:12:58 UTC | Merge git://github.com/git-l10n/git-po * git://github.com/git-l10n/git-po: l10n: de.po: improve message when switching branches l10n: de.po: fix typo po/TEAMS: Add Catalan team l10n: Add Catalan translation l10n: fr.po (2257t) update for version 2.1.0 l10n: sv.po: Update Swedish translation (2257t0f0u) l10n: vi.po (2257t): Update translation l10n: Updated Bulgarian translation of git (2257t,0f,0u) l10n: zh_CN: translations for git v2.1.0-rc0 l10n: git.pot: v2.1.0 round 1 (38 new, 9 removed) l10n: Updated Bulgarian translation of git (2247t,0f,0u) l10n: Updated Bulgarian translation of git (2228t,0f,0u) l10n: Fix more typos in the Swedish translations | 25 August 2014, 22:12:58 UTC |
0fa7f01 | Jeff King | 23 August 2014, 05:26:51 UTC | git-prompt: do not look for refs/stash in $GIT_DIR Since dd0b72c (bash prompt: use bash builtins to check stash state, 2011-04-01), git-prompt checks whether we have a stash by looking for $GIT_DIR/refs/stash. Generally external programs should never do this, because they would miss packed-refs. That commit claims that packed-refs does not pack refs/stash, but that is not quite true. It does pack the ref, but due to a bug, fails to prune the ref. When we fix that bug, we would want to be doing the right thing here. Signed-off-by: Jeff King <peff@peff.net> Reviewed-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2014, 19:21:17 UTC |
c252785 | Jeff King | 23 August 2014, 05:32:37 UTC | fast-import: fix buffer overflow in dump_tags When creating a new annotated tag, we sprintf the refname into a static-sized buffer. If we have an absurdly long tagname, like: git init repo && cd repo && git commit --allow-empty -m foo && git tag -m message mytag && git fast-export mytag | perl -lpe '/^tag/ and s/mytag/"a" x 8192/e' | git fast-import <input we'll overflow the buffer. We can fix it by using a strbuf. Signed-off-by: Jeff King <peff@peff.net> Reviewed-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2014, 19:20:57 UTC |
3c078b9 | Jeff King | 23 August 2014, 05:27:41 UTC | fast-import: clean up pack_data pointer in end_packfile We have a global pointer pack_data pointing to the current pack we have open. Inside end_packfile we have two new pointers, old_p and new_p. The latter points to pack_data, and the former points to the new "installed" version of the packfile we get when we hand the file off to the regular sha1_file machinery. When then free old_p. Presumably the extra old_p pointer was there so that we could overwrite pack_data with new_p and still free old_p, but we don't do that. We just leave pack_data pointing to bogus memory, and don't overwrite it until we call start_packfile again (if ever). This can cause problems for our die routine, which calls end_packfile to clean things up. If we die at the wrong moment, we can end up looking at invalid memory in pack_data left after the last end_packfile(). Instead, let's make sure we set pack_data to NULL after we free it, and make calling endfile() again with a NULL pack_data a noop (there is nothing to end). We can further make things less confusing by dropping old_p entirely, and moving new_p closer to its point of use. Signed-off-by: Jeff King <peff@peff.net> Reviewed-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2014, 19:20:24 UTC |
afd11d3 | Jeff King | 23 August 2014, 05:27:07 UTC | pack-refs: prune top-level refs like "refs/foo" After we have packed all refs, we prune any loose refs that correspond to what we packed. We do so by first taking a lock with lock_ref_sha1, and then deleting the loose ref file. However, lock_ref_sha1 will refuse to take a lock on any refs that exist at the top-level of the "refs/" directory, and we skip pruning the ref. This is almost certainly not what we want to happen here. The criteria to be pruned should not differ from that to be packed; if a ref makes it to prune_ref, it's because we want it both packed and pruned (if there are refs you do not want to be packed, they should be omitted much earlier by pack_ref_is_possible, which we do in this case if --all is not given). We can fix this by switching to lock_any_ref_for_update. This behaves exactly the same with the exception of this top-level check. Signed-off-by: Jeff King <peff@peff.net> Reviewed-by: Michael Haggerty <mhagger@alum.mit.edu> Reviewed-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 August 2014, 19:19:50 UTC |
869951b | Ralf Thielow | 12 June 2014, 18:15:55 UTC | l10n: de.po: improve message when switching branches Suggested-by: Stefan Beller <stefanbeller@gmail.com> Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> | 23 August 2014, 17:17:38 UTC |
795b9ff | Ralf Thielow | 11 June 2014, 16:10:45 UTC | l10n: de.po: fix typo Reported-by: Hartmut Henkel Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> | 23 August 2014, 17:17:38 UTC |
47abf17 | Alex Henrie | 23 August 2014, 02:10:30 UTC | po/TEAMS: Add Catalan team Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> | 23 August 2014, 02:10:30 UTC |
0082d82 | Alex Henrie | 23 August 2014, 02:10:22 UTC | l10n: Add Catalan translation Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> | 23 August 2014, 02:10:22 UTC |
6c71f8b | Edward Thomson | 22 August 2014, 15:19:11 UTC | upload-pack: keep poll(2)'s timeout to -1 Keep poll's timeout at -1 when uploadpack.keepalive = 0, instead of setting it to -1000, since some pedantic old systems (eg HP-UX) and the gnulib compat/poll will treat only -1 as the valid value for an infinite timeout. Signed-off-by: Edward Thomson <ethomson@microsoft.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 August 2014, 18:19:47 UTC |
e09867f | Jeff King | 20 August 2014, 02:14:30 UTC | intersect_paths: respect mode in git's tree-sort When we do a combined diff, we individually diff against each parent, and then use intersect_paths to do a parallel walk through the sorted results and come up with a final list of interesting paths. The sort order here is that returned by the diffs, which means it is in git's tree-order which sorts sub-trees as if their paths have "/" at the end. When we do our parallel walk, we need to use a comparison function which provides the same order. Since 8518ff8 (combine-diff: optimize combine_diff_path sets intersection, 2014-01-20), we use a simple strcmp to compare the pathnames, and get this wrong. It's somewhat hard to trigger because normally a diff does not produce tree entries at all, and therefore the sort order is the same as a strcmp. However, if the "-t" option is used with the diff, then we will produce diff_filepairs for both trees and files. We can use base_name_compare to do the comparison, just as the tree-diff code does. Even though what we have are not technically base names (they are full paths within the tree), the end result is the same (we do not care about interior slashes at all, only about the final character). However, since we do not have the length of each path stored, we take a slight shortcut: if neither of the entries is a sub-tree then the comparison is equivalent to a strcmp. This lets us skip the extra strlen calls in the common case without having to reimplement base_name_compare from scratch. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 August 2014, 20:38:37 UTC |
93b5393 | Jeff King | 19 August 2014, 06:12:03 UTC | Makefile: make perf tests optional for profile build The perf tests need a repository to operate on; if none is defined, we fall back to the repository containing our build directory. That fails, though, for an exported tarball of git.git, which has no repository. Since 5d7fd6d we run the perf tests as part of "make profile". Therefore "make profile" fails out of the box on released tarballs of v2.1.0. We can fix this by making the perf tests optional; if they are skipped, we still run the regular test suite, which should give a lot of profile data (and is what we used to do prior to 5d7fd6d anyway). Signed-off-by: Jeff King <peff@peff.net> Acked-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 August 2014, 16:59:22 UTC |
6fceed3 | Nguyễn Thái Ngọc Duy | 16 August 2014, 01:19:28 UTC | fetch: silence git-gc if --quiet is given Noticed-by: Matthew Flaschen <mflaschen@wikimedia.org> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 August 2014, 17:14:19 UTC |
1991006 | Nguyễn Thái Ngọc Duy | 16 August 2014, 01:19:27 UTC | fetch: convert argv_gc_auto to struct argv_array Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 August 2014, 17:14:08 UTC |
6c4ab27 | Junio C Hamano | 15 August 2014, 22:09:12 UTC | Git 2.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 August 2014, 22:09:12 UTC |
41ca19b | Johannes Sixt | 13 August 2014, 19:30:11 UTC | tests: fix negated test_i18ngrep calls The helper function test_i18ngrep pretends that it found the expected results when it is running under GETTEXT_POISON. For this reason, it must not be used negated like so ! test_i18ngrep foo bar because the test case would fail under GETTEXT_POISON. The function offers a special syntax to test that a pattern is *not* found: test_i18ngrep ! foo bar Convert incorrect uses to this syntax. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 August 2014, 20:12:06 UTC |
6c1db1b | Jonathan Nieder | 13 August 2014, 00:00:45 UTC | unpack-trees: use 'cuddled' style for if-else cascade Match the predominant style in git by following K&R style for if/else cascades. Documentation/CodingStyle from linux.git explains: Note that the closing brace is empty on a line of its own, _except_ in the cases where it is followed by a continuation of the same statement, ie a "while" in a do-statement or an "else" in an if-statement, like this: if (x == y) { .. } else if (x > y) { ... } else { .... } Rationale: K&R. Also, note that this brace-placement also minimizes the number of empty (or almost empty) lines, without any loss of readability. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 August 2014, 17:32:12 UTC |
0ecd180 | Stefan Beller | 12 August 2014, 23:59:31 UTC | unpack-trees: simplify 'all other failures' case In the 'if (current)' block of twoway_merge, we handle the boring errors by checking if the entry from the old tree, current index, and new tree are present, to get a pathname for the error message from one of them: if (oldtree) return o->gently ? -1 : reject_merge(oldtree, o); if (current) return o->gently ? -1 : reject_merge(current, o); if (newtree) return o->gently ? -1 : reject_merge(newtree, o); return -1; Since this is guarded by 'if (current)', the second test is guaranteed to succeed. Moreover, any of the three entries, if present, would have the same path because there is no rename detection in this code path. Even if some day in the future the entries' paths differ, the 'current' path used in the index and worktree would presumably be the most recognizable for the end user. Simplify by just using 'current'. Noticed by coverity, Id:290002 Signed-off-by: Stefan Beller <stefanbeller@gmail.com> Improved-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 August 2014, 17:32:08 UTC |
f7f9108 | Jeff King | 12 August 2014, 04:34:53 UTC | pack-objects: turn off bitmaps when we see --shallow lines Reachability bitmaps do not work with shallow operations, because they cache a view of the object reachability that represents the true objects. Whereas a shallow repository (or a shallow operation in a repository) is inherently cutting off the object graph with a graft. We explicitly disallow the use of bitmaps in shallow repositories by checking is_repository_shallow(), and we should continue to do that. However, we also want to disallow bitmaps when we are serving a fetch to a shallow client, since we momentarily take on their grafted view of the world. It used to be enough to call is_repository_shallow at the start of pack-objects. Upload-pack wrote the other side's shallow state to a temporary file and pointed the whole pack-objects process at this state with "git --shallow-file", and from the perspective of pack-objects, we really were in a shallow repo. But since b790e0f (upload-pack: send shallow info over stdin to pack-objects, 2014-03-11), we do it differently: we send --shallow lines to pack-objects over stdin, and it registers them itself. This means that our is_repository_shallow check is way too early (we have not been told about the shallowness yet), and that it is insufficient (calling is_repository_shallow is not enough, as the shallow grafts we register do not change its return value). Instead, we can just turn off bitmaps explicitly when we see these lines. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 August 2014, 19:17:19 UTC |
ccad42d | René Scharfe | 09 August 2014, 17:43:29 UTC | read-cache: check for leading symlinks when refreshing index Don't add paths with leading symlinks to the index while refreshing; we only track those symlinks themselves. We already ignore them while preloading (see read_index_preload.c). Reported-by: Nikolay Avdeev <avdeev@math.vsu.ru> Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 August 2014, 18:16:20 UTC |
67de23d | Junio C Hamano | 10 August 2014, 18:03:03 UTC | Merge branch 'master' of git://ozlabs.org/~paulus/gitk * 'master' of git://ozlabs.org/~paulus/gitk: gitk: Updated Bulgarian translation (302t,0f,0u) gitk: Add keybinding to switch to parent commit | 10 August 2014, 18:03:03 UTC |
f82887f | Junio C Hamano | 08 August 2014, 20:52:16 UTC | Git 2.1-rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 August 2014, 20:52:16 UTC |
09898e7 | Alexander Shopov | 03 August 2014, 12:36:43 UTC | gitk: Updated Bulgarian translation (302t,0f,0u) Signed-off-by: Alexander Shopov <ash@kambanaria.org> Signed-off-by: Paul Mackerras <paulus@samba.org> | 08 August 2014, 06:39:30 UTC |
d4ec30b | Max Kirillov | 08 July 2014, 20:45:35 UTC | gitk: Add keybinding to switch to parent commit Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Paul Mackerras <paulus@samba.org> | 08 August 2014, 06:39:02 UTC |
2c8544a | Lukas Fleischer | 02 August 2014, 08:39:06 UTC | bundle: fix exclusion of annotated tags In commit c9a42c4 (bundle: allow rev-list options to exclude annotated tags, 2009-01-02), support for excluding annotated tags outside the specified date range was added. However, the wrong order of parameters was chosen when calling memchr(). Fix this by swapping the character to search for with the maximum length parameter. Also cover this behavior with an additional test. Signed-off-by: Lukas Fleischer <git@cryptocrack.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2014, 22:35:25 UTC |
477a08a | Junio C Hamano | 06 August 2014, 20:09:05 UTC | apply: omit ws check for excluded paths Whitespace breakages are checked while the patch is being parsed. Disable them at the beginning of parse_chunk(), where each individual patch is parsed, immediately after we learn the name of the file the patch applies to and before we start parsing the diff contained in the patch. One may naively think that we should be able to not just skip the whitespace checks but simply fast-forward to the next patch without doing anything once use_patch() tells us that this patch is not going to be used. But in reality we cannot really skip much of the parsing in order to do such a "fast-forward", primarily because parsing "@@ -k,l +m,n @@" lines and counting the input lines is how we determine the boundaries of individual patches. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2014, 19:23:55 UTC |
3ee2ad1 | Junio C Hamano | 06 August 2014, 20:11:17 UTC | apply: hoist use_patch() helper for path exclusion up We will be adding a caller to the function a bit earlier in this file in a later patch. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2014, 19:23:50 UTC |
d487b0b | Junio C Hamano | 06 August 2014, 21:26:24 UTC | apply: use the right attribute for paths in non-Git patches We parse each patchfile and find the name of the path the patch applies to, and then use that name to consult the attribute system to find the whitespace rules to be used, and also the target file (either in the working tree or in the index) to replay the changes against. Unlike a Git-generated patch, a non-Git patch is taken to have the pathnames relative to the current working directory. The names found in such a patch are modified by prepending the prefix by the prefix_patches() helper function introduced in 56185f49 (git-apply: require -p<n> when working in a subdirectory., 2007-02-19). However, this prefixing is done after the patch is fully parsed and affects only what target files are patched. Because the attributes are checked against the names found in the patch during the parsing, not against the final pathname, the whitespace check that is done during parsing ends up using attributes for a wrong path for non-Git patches. Fix this by doing the prefix much earlier, immediately after the header part of each patch is parsed and we learn the name of the path the patch affects. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2014, 19:17:07 UTC |
764c739 | Junio C Hamano | 07 August 2014, 16:44:17 UTC | Merge branch 'mb/relnotes-2.1' * mb/relnotes-2.1: Release notes: grammatical fixes RelNotes: no more check_ref_format micro-optimization | 07 August 2014, 16:44:17 UTC |
5261ec5 | Marc Branchaud | 05 August 2014, 16:50:45 UTC | Release notes: grammatical fixes Signed-off-by: Marc Branchaud <marcnarc@xiplink.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2014, 16:44:05 UTC |
663d096 | Stefan Beller | 07 August 2014, 14:27:12 UTC | various contrib: Fix links in man pages Inspired by 2147fa7e (2014-07-31 git-push: fix link in man page), I grepped through the whole tree searching for 'gitlink:' occurrences. Signed-off-by: Stefan Beller <stefanbeller@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 August 2014, 16:43:21 UTC |
f7fbc35 | Jean-Noel Avila | 05 August 2014, 17:23:50 UTC | l10n: fr.po (2257t) update for version 2.1.0 Signed-off-by: Jean-Noel Avila <jn.avila@free.fr> | 07 August 2014, 07:07:18 UTC |
f54d3c6 | Junio C Hamano | 05 August 2014, 18:44:23 UTC | RelNotes: no more check_ref_format micro-optimization Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 August 2014, 18:45:09 UTC |
a789ca7 | Junio C Hamano | 04 August 2014, 22:40:19 UTC | config: teach "git -c" to recognize an empty string In a config file, you can do: [foo] bar to turn the "foo.bar" boolean flag on, and you can do: [foo] bar= to set "foo.bar" to the empty string. However, git's "-c" parameter treats both: git -c foo.bar and git -c foo.bar= as the boolean flag, and there is no way to set a variable to the empty string. This patch enables the latter form to do that. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 August 2014, 17:09:17 UTC |
b9e343e | Jiang Xin | 05 August 2014, 15:07:22 UTC | Merge remote-tracking branch 'l10n/vi/vnwildman/master' * l10n/vi/vnwildman/master: l10n: vi.po (2257t): Update translation | 05 August 2014, 15:07:22 UTC |
4b71297 | Jiang Xin | 05 August 2014, 14:41:00 UTC | Merge branch 'master' of github.com:alshopov/git-po * 'master' of github.com:alshopov/git-po: l10n: Updated Bulgarian translation of git (2257t,0f,0u) | 05 August 2014, 14:41:00 UTC |
dc4a1ba | Peter Krefting | 05 August 2014, 12:49:51 UTC | l10n: sv.po: Update Swedish translation (2257t0f0u) Signed-off-by: Peter Krefting <peter@softwolves.pp.se> | 05 August 2014, 12:49:51 UTC |
8d38823 | Tran Ngoc Quan | 05 August 2014, 00:35:56 UTC | l10n: vi.po (2257t): Update translation Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com> | 05 August 2014, 00:35:56 UTC |
7b69fcb | Junio C Hamano | 04 August 2014, 21:05:06 UTC | Git 2.1.0-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 04 August 2014, 21:05:06 UTC |
b16665e | Junio C Hamano | 04 August 2014, 21:03:45 UTC | Merge branch 'tf/maint-doc-push' * tf/maint-doc-push: git-push: fix link in man page | 04 August 2014, 21:03:45 UTC |
18bd789 | Junio C Hamano | 04 August 2014, 21:03:25 UTC | Merge branch 'ta/doc-config' * ta/doc-config: add documentation for writing config files | 04 August 2014, 21:03:25 UTC |
aafbee8 | Alexander Shopov | 03 August 2014, 10:04:51 UTC | l10n: Updated Bulgarian translation of git (2257t,0f,0u) Sync with tags v2.1.0-rc1 and v2.0.4 Signed-off-by: Alexander Shopov <ash@kambanaria.org> | 04 August 2014, 18:30:38 UTC |
6acbf03 | Jiang Xin | 04 August 2014, 08:23:15 UTC | l10n: zh_CN: translations for git v2.1.0-rc0 Translate 37 new messages (2257t0f0u) for git v2.1.0-rc0. Signed-off-by: Jiang Xin <worldhello.net@gmail.com> | 04 August 2014, 08:42:40 UTC |
afc344c | Jiang Xin | 04 August 2014, 08:38:00 UTC | Merge commit 'bg/alshopov/master' * commit 'bg/alshopov/master': l10n: Updated Bulgarian translation of git (2247t,0f,0u) l10n: Updated Bulgarian translation of git (2228t,0f,0u) | 04 August 2014, 08:38:00 UTC |
6d0081a | Jiang Xin | 04 August 2014, 08:33:18 UTC | Merge remote-tracking branch 'sv/nafmo/master' * sv/nafmo/master: l10n: Fix more typos in the Swedish translations | 04 August 2014, 08:33:18 UTC |
fe05e19 | Jiang Xin | 04 August 2014, 06:51:24 UTC | l10n: git.pot: v2.1.0 round 1 (38 new, 9 removed) Generate po/git.pot from v2.1.0-rc0 for git v2.1.0 l10n round 1. Signed-off-by: Jiang Xin <worldhello.net@gmail.com> | 04 August 2014, 06:51:24 UTC |
c099f8c | Alexander Shopov | 03 August 2014, 08:16:24 UTC | l10n: Updated Bulgarian translation of git (2247t,0f,0u) Used make po/git.pot from git-l10n/git-po/master Signed-off-by: Alexander Shopov <ash@kambanaria.org> | 03 August 2014, 10:14:03 UTC |
642c7fa | Alexander Shopov | 27 June 2014, 12:04:51 UTC | l10n: Updated Bulgarian translation of git (2228t,0f,0u) Used po/git.pot from git-l10n/git-po/master Signed-off-by: Alexander Shopov <ash@kambanaria.org> | 03 August 2014, 10:11:46 UTC |
2147fa7 | Tony Finch | 31 July 2014, 15:06:28 UTC | git-push: fix link in man page Signed-off-by: Tony Finch <dot@dotat.at> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 31 July 2014, 17:17:37 UTC |
aa544bf | Junio C Hamano | 30 July 2014, 21:25:46 UTC | Sync with 2.0.4 * maint: Git 2.0.4 commit --amend: test specifies authorship but forgets to check | 30 July 2014, 21:25:46 UTC |
aa0ba07 | Junio C Hamano | 30 July 2014, 21:25:14 UTC | Update draft release notes to 2.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2014, 21:25:14 UTC |
0d9cb2d | Junio C Hamano | 30 July 2014, 21:21:13 UTC | Merge branch 'jk/more-push-completion' * jk/more-push-completion: completion: complete `git push --force-with-lease=` completion: add some missing options to `git push` completion: complete "unstuck" `git push --recurse-submodules` | 30 July 2014, 21:21:14 UTC |
c372e7b | Junio C Hamano | 30 July 2014, 21:21:12 UTC | Merge branch 'sk/mingw-tests-workaround' Make tests pass on msysgit by mostly disabling ones that are infeasible on that platform. * sk/mingw-tests-workaround: t800[12]: work around MSys limitation t9902: mingw-specific fix for gitfile link files t4210: skip command-line encoding tests on mingw MinGW: disable legacy encoding tests t0110/MinGW: skip tests that pass arbitrary bytes on the command line MinGW: Skip test redirecting to fd 4 | 30 July 2014, 21:21:12 UTC |
385e171 | Junio C Hamano | 30 July 2014, 21:21:09 UTC | Merge branch 'sk/mingw-uni-fix-more' Most of these are battle-tested in msysgit and are needed to complete what has been merged to 'master' already. * sk/mingw-uni-fix-more: Win32: enable color output in Windows cmd.exe Win32: patch Windows environment on startup Win32: keep the environment sorted Win32: use low-level memory allocation during initialization Win32: reduce environment array reallocations Win32: don't copy the environment twice when spawning child processes Win32: factor out environment block creation Win32: unify environment function names Win32: unify environment case-sensitivity Win32: fix environment memory leaks Win32: Unicode environment (incoming) Win32: Unicode environment (outgoing) Revert "Windows: teach getenv to do a case-sensitive search" tests: do not pass iso8859-1 encoded parameter | 30 July 2014, 21:21:09 UTC |
4b0c0e3 | Junio C Hamano | 30 July 2014, 21:21:05 UTC | Merge branch 'ep/avoid-test-a-o' * ep/avoid-test-a-o: t9814: fix misconversion from test $a -o $b to test $a || test $b | 30 July 2014, 21:21:05 UTC |
32f5660 | Junio C Hamano | 30 July 2014, 21:19:53 UTC | Git 2.0.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2014, 21:19:53 UTC |
b9c7d6e | Jeff King | 29 July 2014, 17:56:48 UTC | pretty: make empty userformats truly empty If the user provides an empty format with "--format=", we end up putting in extra whitespace that the user cannot prevent. This comes from two places: 1. If the format is missing a terminating newline, we add one automatically. This makes sense for --format=%h, but not for a truly empty format. 2. We add an extra newline between the pretty-printed format and a diff or diffstat. If the format is empty, there's no point in doing so if there's nothing to separate. With this patch, one can get a diff with no other cruft out of "diff-tree --format= $commit". Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2014, 19:30:08 UTC |
c75e7ad | Jeff King | 29 July 2014, 17:54:46 UTC | pretty: treat "--format=" as an empty userformat Until now, we treated "--pretty=" or "--format=" as "give me the default format". This was not planned nor documented, but only what happened to work due to our parsing of "--pretty" (which should give the default format). Let's instead let these be an actual empty userformat. Otherwise one must write out the annoyingly long "--pretty=tformat:" to get the same behavior. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2014, 19:30:06 UTC |
ae18165 | Jeff King | 29 July 2014, 17:53:40 UTC | revision: drop useless string offset when parsing "--pretty" Once upon a time, we parsed pretty options by looking for "--pretty" at the start of the string, and then feeding the rest (including an "=") to get_commit_format. Later, commit 48ded91 (log --pretty: do not accept bogus "--prettyshort", 2008-05-25) split this into a separate check for "--pretty" versus "--pretty=". However, when parsing "--pretty", we still passed "arg+8" to get_commit_format. This is useless, since it will always point to the NUL terminator at the end of the string. We can simply pass NULL instead; both parameters are treated the same by get_commit_format. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2014, 19:30:02 UTC |
97d6e79 | Tanay Abhra | 28 July 2014, 10:42:26 UTC | add documentation for writing config files Replace TODO introduced in commit 9c3c22 with documentation explaining Git config API functions for writing configuration files. Signed-off-by: Tanay Abhra <tanayabh@gmail.com> Reviewed-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2014, 19:16:07 UTC |
d8b396e | Fabian Ruch | 30 July 2014, 09:45:11 UTC | commit --amend: test specifies authorship but forgets to check The test case "--amend option copies authorship" specifies that the git-commit option `--amend` uses the authorship of the replaced commit for the new commit. Add the omitted check that this property actually holds. Signed-off-by: Fabian Ruch <bafain@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2014, 18:32:12 UTC |
583b61c | Junio C Hamano | 28 July 2014, 18:31:46 UTC | Merge branch 'maint' * maint: t4013: test diff-tree's --stdin commit formatting diff-tree: avoid lookup_unknown_object object_as_type: set commit index alloc: factor out commit index add object_as_type helper for casting objects parse_object_buffer: do not set object type move setting of object->type to alloc_* functions alloc: write out allocator definitions alloc.c: remove the alloc_raw_commit_node() function | 28 July 2014, 18:31:46 UTC |
d299e9e | Jeff King | 28 July 2014, 18:01:57 UTC | t4013: test diff-tree's --stdin commit formatting Once upon a time, git-log was just "rev-list | diff-tree", and we did not bother to test it separately. These days git-log is implemented internally, but we want to make sure that the rev-list to diff-tree pipeline continues to function. Let's add a basic sanity test. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 18:31:32 UTC |
ad524f8 | Junio C Hamano | 28 July 2014, 18:30:41 UTC | Merge branch 'jk/misc-fixes-maint' * jk/misc-fixes-maint: apply: avoid possible bogus pointer fix memory leak parsing core.commentchar transport: fix leaks in refs_from_alternate_cb free ref string returned by dwim_ref receive-pack: don't copy "dir" parameter | 28 July 2014, 18:30:41 UTC |
919eb8a | Jeff King | 28 July 2014, 15:48:11 UTC | t1402: check for refs ending with a dot This has been illegal since cbdffe4 (check_ref_format(): tighten refname rules, 2009-03-21), but we never tested it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:42:39 UTC |
5e65022 | Junio C Hamano | 28 July 2014, 17:41:53 UTC | Revert "Merge branch 'dt/refs-check-refname-component-sse'" This reverts commit 6f92e5ff3cdc813de8ef5327fd4bad492fb7d6c9, reversing changes made to a02ad882a17b9d45f63ea448391ac5e9f7948222. | 28 July 2014, 17:41:53 UTC |
dad2e7f | Junio C Hamano | 28 July 2014, 17:41:16 UTC | Revert "Merge branch 'dt/refs-check-refname-component-sse-fix'" This reverts commit 779c99fd68dcdaff7d996a1985914154a36a272c, reversing changes made to df4d7d56461c19361a6f32b633e850c7ba6e55e6. | 28 July 2014, 17:41:16 UTC |
5d7c37a | Junio C Hamano | 28 July 2014, 17:35:35 UTC | Merge branch 'jk/alloc-commit-id-maint' into maint * jk/alloc-commit-id-maint: diff-tree: avoid lookup_unknown_object object_as_type: set commit index alloc: factor out commit index add object_as_type helper for casting objects parse_object_buffer: do not set object type move setting of object->type to alloc_* functions alloc: write out allocator definitions alloc.c: remove the alloc_raw_commit_node() function | 28 July 2014, 17:35:35 UTC |
b794ebe | Jeff King | 13 July 2014, 06:42:17 UTC | diff-tree: avoid lookup_unknown_object We generally want to avoid lookup_unknown_object, because it results in allocating more memory for the object than may be strictly necessary. In this case, it is used to check whether we have an already-parsed object before calling parse_object, to save us from reading the object from disk. Using lookup_object would be fine for that purpose, but we can take it a step further. Since this code was written, parse_object already learned the "check lookup_object" optimization, so we can simply call parse_object directly. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:34 UTC |
34dfe19 | Jeff King | 13 July 2014, 06:42:12 UTC | object_as_type: set commit index The point of the "index" field of struct commit is that every allocated commit would have one. It is supposed to be an invariant that whenever object->type is set to OBJ_COMMIT, we have a unique index. Commit 969eba6 (commit: push commit_index update into alloc_commit_node, 2014-06-10) covered this case for newly-allocated commits. However, we may also allocate an "unknown" object via lookup_unknown_object, and only later convert it to a commit. We must make sure that we set the commit index when we switch the type field. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:34 UTC |
5de7f50 | Jeff King | 13 July 2014, 06:42:08 UTC | alloc: factor out commit index We keep a static counter to set the commit index on newly allocated objects. However, since we also need to set the index on any_objects which are converted to commits, let's make the counter available as a public function. While we're moving it, let's make sure the counter is allocated as an unsigned integer to match the index field in "struct commit". Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:33 UTC |
c4ad00f | Jeff King | 13 July 2014, 06:42:03 UTC | add object_as_type helper for casting objects When we call lookup_commit, lookup_tree, etc, the logic goes something like: 1. Look for an existing object struct. If we don't have one, allocate and return a new one. 2. Double check that any object we have is the expected type (and complain and return NULL otherwise). 3. Convert an object with type OBJ_NONE (from a prior call to lookup_unknown_object) to the expected type. We can encapsulate steps 2 and 3 in a helper function which checks whether we have the expected object type, converts OBJ_NONE as appropriate, and returns the object. Not only does this shorten the code, but it also provides one central location for converting OBJ_NONE objects into objects of other types. Future patches will use that to enforce type-specific invariants. Since this is a refactoring, we would want it to behave exactly as the current code. It takes a little reasoning to see that this is the case: - for lookup_{commit,tree,etc} functions, we are just pulling steps 2 and 3 into a function that does the same thing. - for the call in peel_object, we currently only do step 3 (but we want to consolidate it with the others, as mentioned above). However, step 2 is a noop here, as the surrounding conditional makes sure we have OBJ_NONE (which we want to keep to avoid an extraneous call to sha1_object_info). - for the call in lookup_commit_reference_gently, we are currently doing step 2 but not step 3. However, step 3 is a noop here. The object we got will have just come from deref_tag, which must have figured out the type for each object in order to know when to stop peeling. Therefore the type will never be OBJ_NONE. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:33 UTC |
fe0444b | Jeff King | 13 July 2014, 06:42:00 UTC | parse_object_buffer: do not set object type The only way that "obj" can be non-NULL is if it came from one of the lookup_* functions. These functions always ensure that the object has the expected type (and return NULL otherwise), so there is no need for us to set the type. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:33 UTC |
fe24d39 | Jeff King | 13 July 2014, 06:41:55 UTC | move setting of object->type to alloc_* functions The "struct object" type implements basic object polymorphism. Individual instances are allocated as concrete types (or as a union type that can store any object), and a "struct object *" can be cast into its real type after examining its "type" enum. This means it is dangerous to have a type field that does not match the allocation (e.g., setting the type field of a "struct blob" to "OBJ_COMMIT" would mean that a reader might read past the allocated memory). In most of the current code this is not a problem; the first thing we do after allocating an object is usually to set its type field by passing it to create_object. However, the virtual commits we create in merge-recursive.c do not ever get their type set. This does not seem to have caused problems in practice, though (presumably because we always pass around a "struct commit" pointer and never even look at the type). We can fix this oversight and also make it harder for future code to get it wrong by setting the type directly in the object allocation functions. This will also make it easier to fix problems with commit index allocation, as we know that any object allocated by alloc_commit_node will meet the invariant that an object with an OBJ_COMMIT type field will have a unique index number. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:33 UTC |
52604d7 | Jeff King | 13 July 2014, 06:41:51 UTC | alloc: write out allocator definitions Because the allocator functions for tree, blobs, etc are all very similar, we originally used a macro to avoid repeating ourselves. Since the prior commit, though, the heavy lifting is done by an inline helper function. The macro does still save us a few lines, but at some readability cost. It obfuscates the function definitions (and makes them hard to find via grep). Much worse, though, is the fact that it isn't used consistently for all allocators. Somebody coming later may be tempted to modify DEFINE_ALLOCATOR, but they would miss alloc_commit_node, which is treated specially. Let's just drop the macro and write everything out explicitly. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:33 UTC |
8c3f3f2 | Ramsay Jones | 13 July 2014, 06:41:41 UTC | alloc.c: remove the alloc_raw_commit_node() function In order to encapsulate the setting of the unique commit index, commit 969eba63 ("commit: push commit_index update into alloc_commit_node", 10-06-2014) introduced a (logically private) intermediary allocator function. However, this function (alloc_raw_commit_node()) was declared as a public function, which undermines its entire purpose. Introduce an inline function, alloc_node(), which implements the main logic of the allocator used by DEFINE_ALLOCATOR, and redefine the macro in terms of the new function. In addition, use the new function in the implementation of the alloc_commit_node() allocator, rather than the intermediary allocator, which can now be removed. Noticed by sparse ("symbol 'alloc_raw_commit_node' was not declared. Should it be static?"). Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2014, 17:14:33 UTC |
49f1cb9 | Junio C Hamano | 27 July 2014, 22:22:22 UTC | Git 2.1.0-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 July 2014, 22:22:22 UTC |
3dcacd7 | Junio C Hamano | 27 July 2014, 22:14:21 UTC | Merge branch 'jk/rebase-am-fork-point' "git rebase --fork-point" did not filter out patch-identical commits correctly. * jk/rebase-am-fork-point: rebase: omit patch-identical commits with --fork-point rebase--am: use --cherry-pick instead of --ignore-if-in-upstream | 27 July 2014, 22:14:21 UTC |
1673744 | Junio C Hamano | 27 July 2014, 22:14:18 UTC | Merge branch 'cc/replace-graft' "git replace" learned a "--graft" option to rewrite parents of a commit. * cc/replace-graft: replace: add test for --graft with a mergetag replace: check mergetags when using --graft replace: add test for --graft with signed commit replace: remove signature when using --graft contrib: add convert-grafts-to-replace-refs.sh Documentation: replace: add --graft option replace: add test for --graft replace: add --graft option replace: cleanup redirection style in tests | 27 July 2014, 22:14:18 UTC |