swh:1:snp:87728f882295b5ba27035837248a04c5be121c53

sort by:
Revision Author Date Message Commit Date
2137ce0 Git 1.8.1.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 April 2013, 15:58:30 UTC
4bbb830 Merge branch 'jc/directory-attrs-regression-fix' into maint-1.8.1 A pattern "dir" (without trailing slash) in the attributes file stopped matching a directory "dir" by mistake with an earlier change that wanted to allow pattern "dir/" to also match. * jc/directory-attrs-regression-fix: t: check that a pattern without trailing slash matches a directory dir.c::match_pathname(): pay attention to the length of string parameters dir.c::match_pathname(): adjust patternlen when shifting pattern dir.c::match_basename(): pay attention to the length of string parameters attr.c::path_matches(): special case paths that end with a slash attr.c::path_matches(): the basename is part of the pathname 07 April 2013, 15:45:03 UTC
0e9b327 remote-helpers/test-bzr.sh: do not use "grep '\s'" Using grep "devel\s\+3:" to find at least one whitspace is not portable on all grep versions; not all grep versions understand "\s" as a "whitespace". Use a literal TAB followed by SPACE. The + as a qualifier for "one or more" is not a basic regular expression; use egrep instead of grep. Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 April 2013, 15:41:34 UTC
072dda6 Start preparing for 1.8.1.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> 03 April 2013, 16:12:11 UTC
c81e2c6 Merge branch 'kb/name-hash' into maint-1.8.1 * kb/name-hash: name-hash.c: fix endless loop with core.ignorecase=true 03 April 2013, 15:44:54 UTC
6437980 Merge branch 'kk/revwalk-slop-too-many-commit-within-a-second' into maint-1.8.1 * kk/revwalk-slop-too-many-commit-within-a-second: Fix revision walk for commits with the same dates 03 April 2013, 15:44:02 UTC
67ff3d2 Merge branch 'jk/checkout-attribute-lookup' into maint-1.8.1 * jk/checkout-attribute-lookup: t2003: work around path mangling issue on Windows entry: fix filter lookup t2003: modernize style 03 April 2013, 15:43:40 UTC
f1ad05f Merge branch 'jk/fully-peeled-packed-ref' into maint-1.8.1 * jk/fully-peeled-packed-ref: pack-refs: add fully-peeled trait pack-refs: write peeled entry for non-tags use parse_object_or_die instead of die("bad object") avoid segfaults on parse_object failure 03 April 2013, 15:43:03 UTC
8f780ca Merge branch 'ap/maint-diff-rename-avoid-overlap' into maint-1.8.1 * ap/maint-diff-rename-avoid-overlap: tests: make sure rename pretty print works diff: prevent pprint_rename from underrunning input diff: Fix rename pretty-print when suffix and prefix overlap 03 April 2013, 15:37:39 UTC
0311e37 Merge branch 'yd/doc-merge-annotated-tag' into maint-1.8.1 * yd/doc-merge-annotated-tag: Documentation: merging a tag is a special case 03 April 2013, 15:36:52 UTC
357d7f1 Merge branch 'ap/maint-update-index-h-is-for-help' into maint-1.8.1 * ap/maint-update-index-h-is-for-help: update-index: allow "-h" to also display options 03 April 2013, 15:36:10 UTC
a134a60 Merge branch 'jc/perl-cat-blob' into maint-1.8.1 * jc/perl-cat-blob: Git.pm: fix cat_blob crashes on large files 03 April 2013, 15:35:45 UTC
d7df695 Merge branch 'ob/imap-send-ssl-verify' into maint-1.8.1 * ob/imap-send-ssl-verify: imap-send: support Server Name Indication (RFC4366) 03 April 2013, 15:35:33 UTC
f4254d1 Merge branch 'nd/index-pack-l10n-buf-overflow' into maint-1.8.1 * nd/index-pack-l10n-buf-overflow: index-pack: fix buffer overflow caused by translations 03 April 2013, 15:35:06 UTC
dd686cd git-tag(1): we tag HEAD by default The <commit>|<object> argument is actually not explained anywhere (except implicitly in the description of an unannotated tag). Write a little explanation, in particular to cover the default. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> 03 April 2013, 15:33:56 UTC
efa5f82 t: check that a pattern without trailing slash matches a directory Prior to v1.8.1.1, with: git init echo content >foo && mkdir subdir && echo content >subdir/bar && echo "subdir export-ignore" >.gitattributes git add . && git commit -m one && git archive HEAD | tar tf - the resulting archive would contain only "foo" and ".gitattributes", not subdir. This was broken with a recent change that intended to allow "subdir/ export-ignore" to also exclude the directory, but instead ended up _requiring_ the trailing slash by mistake. A pattern "subdir" should match any path "subdir", whether it is a directory or a non-directory. A pattern "subdir/" insists that a path "subdir" must be a directory for it to match. This patch adds test not just for this simple case, but also for deeper cross-directory cases, as well as cases with wildcards. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 March 2013, 04:48:27 UTC
ab3aebc dir.c::match_pathname(): pay attention to the length of string parameters This function takes two counted strings: a <pattern, patternlen> pair and a <pathname, pathlen> pair. But we end up feeding the result to fnmatch, which expects NUL-terminated strings. We can fix this by calling the fnmatch_icase_mem function, which handles re-allocating into a NUL-terminated string if necessary. While we're at it, we can avoid even calling fnmatch in some cases. In addition to patternlen, we get "prefix", the size of the pattern that contains no wildcard characters. We do a straight match of the prefix part first, and then use fnmatch to cover the rest. But if there are no wildcards in the pattern at all, we do not even need to call fnmatch; we would simply be comparing two empty strings. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 March 2013, 04:48:18 UTC
982ac87 dir.c::match_pathname(): adjust patternlen when shifting pattern If we receive a pattern that starts with "/", we shift it forward to avoid looking at the "/" part. Since the prefix and patternlen parameters are counts of what is in the pattern, we must decrement them as we increment the pointer. We remembered to handle prefix, but not patternlen. This didn't cause any bugs, though, because the patternlen parameter is not actually used. Since it will be used in future patches, let's correct this oversight. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 March 2013, 04:48:18 UTC
0b6e56d dir.c::match_basename(): pay attention to the length of string parameters The function takes two counted strings (<basename, basenamelen> and <pattern, patternlen>) as parameters, together with prefix (the length of the prefix in pattern that is to be matched literally without globbing against the basename) and EXC_* flags that tells it how to match the pattern against the basename. However, it did not pay attention to the length of these counted strings. Update them to do the following: * When the entire pattern is to be matched literally, the pattern matches the basename only when the lengths of them are the same, and they match up to that length. * When the pattern is "*" followed by a string to be matched literally, make sure that the basenamelen is equal or longer than the "literal" part of the pattern, and the tail of the basename string matches that literal part. * Otherwise, use the new fnmatch_icase_mem helper to make sure we only lookmake sure we use only look at the counted part of the strings. Because these counted strings are full strings most of the time, we check for termination to avoid unnecessary allocation. Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 March 2013, 04:48:12 UTC
dc09e9e attr.c::path_matches(): special case paths that end with a slash The function is given a string that ends with a slash to signal that the path is a directory to make sure that a pattern that ends with a slash (i.e. MUSTBEDIR) can tell directories and non-directories apart. However, the pattern itself (pat->pattern and pat->patternlen) that came from such a MUSTBEDIR pattern is represented as a string that ends with a slash, but patternlen does not count that trailing slash. A MUSTBEDIR pattern "element/" is represented as a counted string <"element/", 7> and this must match match pathname "element/". Because match_basename() and match_pathname() want to see pathname "element" to match against the pattern <"element/", 7>, reduce the length of the path to exclude the trailing slash when calling these functions. Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 March 2013, 04:47:06 UTC
3322ad4 git help config: s/insn/instruction/ "insn" appears to be an in-code abbreviation and should not appear in manual/help pages. Signed-off-by: Matthias Krüger <matthias.krueger@famsik.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 March 2013, 15:53:47 UTC
187c00c merge-tree: fix typo in merge-tree.c::unresolved When calculating whether there is a d/f conflict, the calculation of whether both sides are directories generates an incorrect references mask because it does not use the loop index to set the correct bit. Fix this typo. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 March 2013, 17:00:50 UTC
6bf6366 git-commit doc: describe use of multiple `-m` options The text is copied from Documentation/git-tag.txt. Signed-off-by: Christian Helmuth <christian.helmuth@genode-labs.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 March 2013, 16:32:02 UTC
38ef8a7 git-pull doc: fix grammo ("conflicts" is plural) Signed-off-by: Mihai Capotă <mihai@mihaic.ro> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 March 2013, 16:30:54 UTC
bd2f371 attr.c::path_matches(): the basename is part of the pathname The function takes two strings (pathname and basename) as if they are independent strings, but in reality, the latter is always pointing into a substring in the former. Clarify this relationship by expressing the latter as an offset into the former. Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 March 2013, 18:09:01 UTC
e39c695 Correct the docs about GIT_SSH. In particular, it can get called with four arguments if you happen to be referring to a repo using the ssh:// scheme with a non-default port number. Signed-off-by: Dan Bornstein <danfuzz@milk.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 March 2013, 14:53:13 UTC
7c1017d Merge branch 'lf/bundle-verify-list-prereqs' into maint-1.8.1 "git bundle verify" did not say "records a complete history" for a bundle that does not have any prerequisites. * lf/bundle-verify-list-prereqs: bundle: Add colons to list headings in "verify" bundle: Fix "verify" output if history is complete 25 March 2013, 20:46:02 UTC
a12816b Merge branch 'tk/doc-filter-branch' into maint-1.8.1 Add an example use of "--env-filter" in "filter-branch" documentation. * tk/doc-filter-branch: Documentation: filter-branch env-filter example git-filter-branch.txt: clarify ident variables usage 25 March 2013, 20:45:53 UTC
2b0dda5 Merge branch 'dm/ni-maxhost-may-be-missing' into maint-1.8.1 Some sources failed to compile on systems that lack NI_MAXHOST in their system header. * dm/ni-maxhost-may-be-missing: git-compat-util.h: Provide missing netdb.h definitions 25 March 2013, 20:45:42 UTC
402c2a7 Merge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1 The "--match=<pattern>" argument "git describe" takes uses glob pattern but it wasn't obvious from the documentation. * gp/describe-match-uses-glob-pattern: describe: Document --match pattern format 25 March 2013, 20:45:33 UTC
a7b6ad5 Merge branch 'nd/doc-index-format' into maint-1.8.1 The v4 index format was not documented. * nd/doc-index-format: update-index: list supported idx versions and their features read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr() index-format.txt: mention of v4 is missing in some places 25 March 2013, 20:45:26 UTC
8ddd9c1 Merge branch 'wk/doc-pre-rebase' into maint-1.8.1 The arguments given to pre-rebase hook were not documented. * wk/doc-pre-rebase: Documentation/githooks: Explain pre-rebase parameters 25 March 2013, 20:45:14 UTC
82b955c Merge branch 'jc/color-diff-doc' into maint-1.8.1 The "--color=<when>" argument to the commands in the diff family was described poorly. * jc/color-diff-doc: diff-options: unconfuse description of --color 25 March 2013, 20:44:53 UTC
c19d1b4 Fix revision walk for commits with the same dates Logic in still_interesting function allows to stop the commits traversing if the oldest processed commit is not older then the youngest commit on the list to process and the list contains only commits marked as not interesting ones. It can be premature when dealing with a set of coequal commits. For example git rev-list A^! --not B provides wrong answer if all commits in the range A..B had the same commit time and there are more then 7 of them. To fix this problem the relevant part of the logic in still_interesting is changed to: the walk can be stopped if the oldest processed commit is younger then the youngest commit on the list to processed. Signed-off-by: Kacper Kornet <draenog@pld-linux.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 March 2013, 23:15:48 UTC
77c7278 Documentation: merging a tag is a special case When asking Git to merge a tag (such as a signed tag or annotated tag), it will always create a merge commit even if fast-forward was possible. It's like having --no-ff present on the command line. It's a difference from the default behavior described in git-merge.txt. It should be documented as an exception of "FAST-FORWARD MERGE" section and "--ff" option description. Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Reviewed-by: Yann Droneaud <ydroneaud@opteya.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 March 2013, 22:47:38 UTC
8be412a t2003: work around path mangling issue on Windows MSYS bash considers the part "/g" in the sed expression "s/./=/g" as an absolute path after an assignment, and mangles it to a C:/something string. Do not attract bash's attention by avoiding the equals sign. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 20 March 2013, 17:10:28 UTC
c29c46f pack-refs: add fully-peeled trait Older versions of pack-refs did not write peel lines for refs outside of refs/tags. This meant that on reading the pack-refs file, we might set the REF_KNOWS_PEELED flag for such a ref, even though we do not know anything about its peeled value. The previous commit updated the writer to always peel, no matter what the ref is. That means that packed-refs files written by newer versions of git are fine to be read by both old and new versions of git. However, we still have the problem of reading packed-refs files written by older versions of git, or by other implementations which have not yet learned the same trick. The simplest fix would be to always unset the REF_KNOWS_PEELED flag for refs outside of refs/tags that do not have a peel line (if it has a peel line, we know it is valid, but we cannot assume a missing peel line means anything). But that loses an important optimization, as upload-pack should not need to load the object pointed to by refs/heads/foo to determine that it is not a tag. Instead, we add a "fully-peeled" trait to the packed-refs file. If it is set, we know that we can trust a missing peel line to mean that a ref cannot be peeled. Otherwise, we fall back to assuming nothing. [commit message and tests by Jeff King <peff@peff.net>] Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 March 2013, 15:06:28 UTC
617cf93 t1507: Test that branchname@{upstream} is interpreted as branch Syntax branchname@{upstream} should interpret its argument as a name of a branch. Add the test to check that it doesn't try to interpret it as a refname if the branch in question does not exist. Signed-off-by: Kacper Kornet <draenog@pld-linux.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 22:38:23 UTC
03a8edd pack-refs: write peeled entry for non-tags When we pack an annotated tag ref, we write not only the sha1 of the tag object along with the ref, but also the sha1 obtained by peeling the tag. This lets readers of the pack-refs file know the peeled value without having to actually load the object, speeding up upload-pack's ref advertisement. The writer marks a packed-refs file with peeled refs using the "peeled" trait at the top of the file. When the reader sees this trait, it knows that each ref is either followed by its peeled value, or it is not an annotated tag. However, there is a mismatch between the assumptions of the reader and writer. The writer will only peel refs under refs/tags, but the reader does not know this; it will assume a ref without a peeled value must not be a tag object. Thus an annotated tag object placed outside of the refs/tags hierarchy will not have its peeled value printed by upload-pack. The simplest way to fix this is to start writing peel values for all refs. This matches what the reader expects for both new and old versions of git. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 19:52:20 UTC
f7892d1 use parse_object_or_die instead of die("bad object") Some call-sites do: o = parse_object(sha1); if (!o) die("bad object %s", some_name); We can now handle that as a one-liner, and get more consistent output. In the third case of this patch, it looks like we are losing information, as the existing message also outputs the sha1 hex; however, parse_object will already have written a more specific complaint about the sha1, so there is no point in repeating it here. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 19:52:14 UTC
75a9549 avoid segfaults on parse_object failure Many call-sites of parse_object assume that they will get a non-NULL return value; this is not the case if we encounter an error while parsing the object. This patch adds a wrapper function around parse_object that handles dying automatically, and uses it anywhere we immediately try to access the return value as a non-NULL pointer (i.e., anywhere that we would currently segfault). This wrapper may also be useful in other places. The most obvious one is code like: o = parse_object(sha1); if (!o) die(...); However, these should not be mechanically converted to parse_object_or_die, as the die message is sometimes customized. Later patches can address these sites on a case-by-case basis. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 19:49:03 UTC
47e329e rev-parse: clarify documentation of $name@{upstream} syntax "git rev-parse" interprets string in string@{upstream} as a name of a branch not a ref. For example, refs/heads/master@{upstream} looks for an upstream branch that is merged by git-pull to ref refs/heads/refs/heads/master not to refs/heads/master. However the documentation could mislead a user to believe that the string is interpreted as ref. Signed-off-by: Kacper Kornet <draenog@pld-linux.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 07:10:59 UTC
b2981d0 sha1_name: pass object name length to diagnose_invalid_sha1_path() The only caller of diagnose_invalid_sha1_path() extracts a substring from an object name by creating a NUL-terminated copy of the interesting part. Add a length parameter to the function and thus avoid the need for an allocation, thereby simplifying the code. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 07:10:51 UTC
ea738e2 Makefile: keep LIB_H entries together and sorted As a follow-up to 60d24dd25 (Makefile: fold XDIFF_H and VCSSVN_H into LIB_H), let the unconditional additions to LIB_H form a single sorted list. Also drop the duplicate entry for xdiff/xdiff.h, which was easy to spot after sorting. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 05:23:04 UTC
5c3459f index-pack: fix buffer overflow caused by translations The translation of "completed with %d local objects" is put in a 48-byte buffer, which may be enough for English but not true for any translations. Convert it to use strbuf (i.e. no hard limit on translation length). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 March 2013, 05:08:53 UTC
7297a44 entry: fix filter lookup When looking up the stream filter, write_entry() should be passing the path of the file in the repository, not the path to which the content is going to be written. This allows the file to be correctly looked up against the .gitattributes files in the working tree. This change makes the streaming case match the non-streaming case which passes ce->name to convert_to_working_tree later in the same function. The two tests added here test the different paths through write_entry since the CRLF filter is a streaming filter but the user-defined smudge filter is not streamed. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 March 2013, 21:49:48 UTC
013c3bb t2003: modernize style - Description goes on the test_expect_* line - Open SQ of test goes on the test_expect_* line - Closing SQ of test goes on its own line - Use TAB for indent Also remove three comments that appear to relate to the development of the patch before it was committed. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 March 2013, 21:49:32 UTC
03a0fb0 git.c: make usage match manual page Reorder option list in command-line usage to match the manual page. Also make it less than 80-characters wide. Signed-off-by: Kevin Bracey <kevin@bracey.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 March 2013, 19:59:57 UTC
421a976 Translate git_more_info_string consistently "git help" translated the "See 'git help <command>' for more information..." message, but "git" didn't. Signed-off-by: Kevin Bracey <kevin@bracey.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 March 2013, 20:11:31 UTC
ca70c9e perf: update documentation of GIT_PERF_REPEAT_COUNT Currently the documentation of GIT_PERF_REPEAT_COUNT says the default is five while "perf-lib.sh" uses a value of three as a default. Update the documentation so that it is consistent with the code. Signed-off-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 March 2013, 19:13:12 UTC
a02ffe0 bundle: Add colons to list headings in "verify" These slightly improve the reading flow by making it obvious that a list follows. Also, make the wording of both headings consistent by changing "contains %d ref(s)" to "contains this ref"/"contains these %d refs". Signed-off-by: Lukas Fleischer <git@cryptocrack.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 March 2013, 18:06:53 UTC
71ba6b1 bundle: Fix "verify" output if history is complete A more informative message for "complete" bundles was added in commit 8c3710fd3011 (tweak "bundle verify" of a complete history, 2012-06-04). However, the prerequisites ref list is currently read *after* we check if it equals zero, which means we never actually use the number of prerequisite refs to decide when to print the newly introduced message. The code incorrectly uses the number of references recorded in the bundle instead. Signed-off-by: Lukas Fleischer <git@cryptocrack.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2013, 21:33:56 UTC
5d4ef17 Merge branch 'mh/maint-ceil-absolute' into maint * mh/maint-ceil-absolute: Provide a mechanism to turn off symlink resolution in ceiling paths 07 March 2013, 20:49:57 UTC
80659ff gitweb/README: remove reference to git.kernel.org git.kernel.org no longer uses gitweb but has switched to cgit. Info about this can be found on: https://www.kernel.org/pelican.html or simply by looking at http://git.kernel.org . This is change since 2013-03-01. Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 March 2013, 19:38:33 UTC
b174eb4 tests: make sure rename pretty print works Add basic use cases and corner cases tests for "git diff -M --summary/stat". Signed-off-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 March 2013, 21:58:56 UTC
e6363a4 Git 1.8.1.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 March 2013, 21:15:29 UTC
8b1bd02 Make !pattern in .gitattributes non-fatal Before 82dce99 (attr: more matching optimizations from .gitignore, 2012-10-15), .gitattributes did not have any special treatment of a leading '!'. The docs, however, always said The rules how the pattern matches paths are the same as in `.gitignore` files; see linkgit:gitignore[5]. By those rules, leading '!' means pattern negation. So 82dce99 correctly determined that this kind of line makes no sense and should be disallowed. However, users who actually had a rule for files starting with a '!' are in a bad position: before 82dce99 '!' matched that literal character, so it is conceivable that users have .gitattributes with such lines in them. After 82dce99 the unescaped version was disallowed in such a way that git outright refuses to run(!) most commands in the presence of such a .gitattributes. It therefore becomes very hard to fix, let alone work with, such repositories. Let's at least allow the users to fix their repos: change the fatal error into a warning. Reported-by: mathstuf@gmail.com Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 March 2013, 20:24:45 UTC
1d38c69 Merge branch 'wk/user-manual' into maint * wk/user-manual: user-manual: Flesh out uncommitted changes and submodule updates user-manual: Use request-pull to generate "please pull" text user-manual: Reorganize the reroll sections, adding 'git rebase -i' 01 March 2013, 18:37:40 UTC
5e24858 Documentation/githooks: Fix linkgit Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 March 2013, 18:19:22 UTC
2092678 name-hash.c: fix endless loop with core.ignorecase=true With core.ignorecase=true, name-hash.c builds a case insensitive index of all tracked directories. Currently, the existing cache entry structures are added multiple times to the same hashtable (with different name lengths and hash codes). However, there's only one dir_next pointer, which gets completely messed up in case of hash collisions. In the worst case, this causes an endless loop if ce == ce->dir_next (see t7062). Use a separate hashtable and separate structures for the directory index so that each directory entry has its own next pointer. Use reference counting to track which directory entry contains files. There are only slight changes to the name-hash.c API: - new free_name_hash() used by read_cache.c::discard_index() - remove_name_hash() takes an additional index_state parameter - index_name_exists() for a directory (trailing '/') may return a cache entry that has been removed (CE_UNHASHED). This is not a problem as the return value is only used to check if the directory exists (dir.c) or to normalize casing of directory names (read-cache.c). Getting rid of cache_entry.dir_next reduces memory consumption, especially with core.ignorecase=false (which doesn't use that member at all). With core.ignorecase=true, building the directory index is slightly faster as we add / check the parent directory first (instead of going through all directory levels for each file in the index). E.g. with WebKit (~200k files, ~7k dirs), time spent in lazy_init_name_hash is reduced from 176ms to 130ms. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 February 2013, 07:29:04 UTC
8d44277 Update draft release notes to 1.8.1.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 February 2013, 18:09:59 UTC
6f0c336 Merge branch 'ef/non-ascii-parse-options-error-diag' into maint * ef/non-ascii-parse-options-error-diag: parse-options: report uncorrupted multi-byte options 27 February 2013, 18:04:26 UTC
28db111 Merge branch 'wk/man-deny-current-branch-is-default-these-days' into maint * wk/man-deny-current-branch-is-default-these-days: user-manual: typofix (ofthe->of the) user-manual: Update for receive.denyCurrentBranch=refuse 27 February 2013, 18:01:21 UTC
c054ef9 Merge branch 'jn/less-reconfigure' into maint * jn/less-reconfigure: Makefile: avoid infinite loop on configure.ac change 27 February 2013, 17:59:19 UTC
31e54bb Documentation/submodule: Add --force to update synopsis In commit 9db31bdf (submodule: Add --force option for git submodule update, 2011-04-01) we added the option to the implementation's usage synopsis but forgot to add it to the synopsis in the command documentation. Add the option to the synopsis in the same location it is reported in usage and re-wrap the options to avoid long lines. Signed-off-by: Brad King <brad.king@kitware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 February 2013, 15:31:01 UTC
dd281f0 diff: prevent pprint_rename from underrunning input The logic described in d020e27 (diff: Fix rename pretty-print when suffix and prefix overlap, 2013-02-23) is wrong: The proof in the comment is valid only if both strings are the same length. *One* of old/new can reach a-1 (b-1, resp.) if 'a' is a suffix of 'b' (or vice versa). Since the intent was to let the loop run down to the '/' at the end of the common prefix, fix it by making that distinction explicit: if there is no prefix, allow no underrun. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 February 2013, 21:01:34 UTC
21b6e4f Documentation: filter-branch env-filter example filter-branch --env-filter example that shows how to change the email address in all commits before publishing a project. Signed-off-by: Tadeusz Andrzej Kadłubowski <yess@hell.org.pl> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 February 2013, 17:34:51 UTC
bee3eb0 git-filter-branch.txt: clarify ident variables usage There is a rare edge case of git-filter-branch: a filter that unsets identity variables from the environment. Link to git-commit-tree clarifies how Git would fall back in this situation. Signed-off-by: Tadeusz Andrzej Kadłubowski <yess@hell.org.pl> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 February 2013, 17:34:51 UTC
3b130ad git-compat-util.h: Provide missing netdb.h definitions Some platforms may lack the NI_MAXHOST and NI_MAXSERV values in their system headers, so ensure they are available. Signed-off-by: David Michael <fedora.dm0@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2013, 20:16:08 UTC
7a0d8db Prepare for 1.8.1.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2013, 16:26:25 UTC
cd9c038 Merge branch 'jc/mention-tracking-for-pull-default' into maint * jc/mention-tracking-for-pull-default: doc: mention tracking for pull.default 25 February 2013, 16:04:20 UTC
5cc5f09 Merge branch 'mm/config-intro-in-git-doc' into maint * mm/config-intro-in-git-doc: git.txt: update description of the configuration mechanism 25 February 2013, 16:04:18 UTC
92f561d Merge branch 'da/p4merge-mktemp-fix' into maint * da/p4merge-mktemp-fix: p4merge: fix printf usage 25 February 2013, 16:04:05 UTC
8552e2e Merge branch 'bw/get-tz-offset-perl' into maint * bw/get-tz-offset-perl: cvsimport: format commit timestamp ourselves without using strftime perl/Git.pm: fix get_tz_offset to properly handle DST boundary cases Move Git::SVN::get_tz to Git::get_tz_offset 25 February 2013, 16:04:03 UTC
b79faa9 Merge branch 'al/mergetool-printf-fix' into maint * al/mergetool-printf-fix: difftool--helper: fix printf usage git-mergetool: print filename when it contains % 25 February 2013, 16:04:01 UTC
75288cc Merge branch 'jx/utf8-printf-width' into maint * jx/utf8-printf-width: Add utf8_fprintf helper that returns correct number of columns 25 February 2013, 16:03:59 UTC
d08d259 Merge branch 'mg/bisect-doc' into maint * mg/bisect-doc: git-bisect.txt: clarify that reset quits bisect 25 February 2013, 16:03:57 UTC
7927f51 Merge branch 'sp/smart-http-content-type-check' into maint * sp/smart-http-content-type-check: http_request: reset "type" strbuf before adding t5551: fix expected error output Verify Content-Type from smart HTTP servers 25 February 2013, 16:03:54 UTC
d49f9f1 Merge branch 'jc/combine-diff-many-parents' into maint * jc/combine-diff-many-parents: t4038: add tests for "diff --cc --raw <trees>" combine-diff: lift 32-way limit of combined diff 25 February 2013, 16:03:51 UTC
66d12f9 Merge branch 'jk/apply-similaritly-parsing' into maint * jk/apply-similaritly-parsing: builtin/apply: tighten (dis)similarity index parsing 25 February 2013, 16:03:44 UTC
7be0931 Merge branch 'jk/remote-helpers-doc' into maint * jk/remote-helpers-doc: Rename {git- => git}remote-helpers.txt 25 February 2013, 16:03:37 UTC
aaf4f28 Merge branch 'ab/gitweb-use-same-scheme' into maint * ab/gitweb-use-same-scheme: gitweb: refer to picon/gravatar images over the same scheme 25 February 2013, 16:03:34 UTC
c0e96dd Merge branch 'zk/clean-report-failure' into maint * zk/clean-report-failure: git-clean: Display more accurate delete messages 25 February 2013, 16:03:32 UTC
0e0c3f2 Merge branch 'nd/clone-no-separate-git-dir-with-bare' into maint * nd/clone-no-separate-git-dir-with-bare: clone: forbid --bare --separate-git-dir <dir> 25 February 2013, 16:03:27 UTC
a8e00d7 Merge branch 'da/p4merge-mktemp' into maint * da/p4merge-mktemp: mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder 25 February 2013, 16:03:20 UTC
4f021b3 Documentation: "advice" is uncountable "Advice" is a mass noun, not a count noun; it's not ordinarily pluralized. Signed-off-by: Greg Price <price@mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2013, 15:31:28 UTC
5229149 describe: Document --match pattern format It's not clear in git-describe(1) what kind of "pattern" should be passed to --match. Fix that. Signed-off-by: Greg Price <price@mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 February 2013, 06:24:48 UTC
0414acc Documentation/githooks: Explain pre-rebase parameters Descriptions borrowed from templates/hooks--pre-rebase.sample. Signed-off-by: W. Trevor King <wking@tremily.us> Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2013, 08:13:11 UTC
d020e27 diff: Fix rename pretty-print when suffix and prefix overlap When considering a rename for two files that have a suffix and a prefix that can overlap, a confusing line is shown. As an example, renaming "a/b/b/c" to "a/b/c" shows "a/b/{ => }/b/c". Currently, what we do is calculate the common prefix ("a/b/"), and the common suffix ("/b/c"), but the same "/b/" is actually counted both in prefix and suffix. Then when calculating the size of the non-common part, we end-up with a negative value which is reset to 0, thus the "{ => }". Do not allow the common suffix to overlap the common prefix and stop when reaching a "/" that would be in both. Signed-off-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2013, 07:52:39 UTC
b04d930 update-index: allow "-h" to also display options Even though "git update-index" was updated to use parse-options infrastracture some time ago to make it possible to show list of options with usage_with_options(), "git update-index -h" only shows the usage. Detect this case and call usage_with_options() to show the list of options as well. Signed-off-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2013, 07:49:33 UTC
647d879 update-index: list supported idx versions and their features Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 February 2013, 21:18:27 UTC
3d0e75f diff-options: unconfuse description of --color It said "by default it is off" while it also said "the default is always", which confused everybody who read it only once. It wanted to say (1) if you do not say --color, it is not enabled, and (2) if you say --color but do not say when to enable it, it will always be enabled". Rephrase to clarify by using "default" only once. Signed-off-by: Junio C Hamano <gitster@pobox.com> 23 February 2013, 06:24:10 UTC
712c6ad Git.pm: fix cat_blob crashes on large files Read and write each 1024 byte buffer, rather than trying to buffer the entire content of the file. We are only copying the contents to a file descriptor and do not use it ourselves. Previous code would crash on all files > 2 Gib, when the offset variable became negative (perhaps below the level of perl), resulting in a crash. On a 32 bit system, or a system with low memory it might crash before reaching 2 GiB due to memory exhaustion. This code may leave a partial file behind in case of failure, where the old code would leave a completely empty file. Neither version verifies the correctness of the content. Calling code must take care of verification and cleanup. Signed-off-by: Joshua Clayton <stillcompiling@gmail.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 February 2013, 21:18:22 UTC
b82a7b5 read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr() 9d22778 (read-cache.c: write prefix-compressed names in the index - 2012-04-04) defined these. Interestingly, they were not used by read-cache.c, or anywhere in that patch. They were used in builtin/update-index.c later for checking supported index versions. Use them here too. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 February 2013, 20:48:41 UTC
300e39f index-format.txt: mention of v4 is missing in some places Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 February 2013, 20:47:14 UTC
7ec30aa Provide a mechanism to turn off symlink resolution in ceiling paths Commit 1b77d83cab 'setup_git_directory_gently_1(): resolve symlinks in ceiling paths' changed the setup code to resolve symlinks in the entries in GIT_CEILING_DIRECTORIES. Because those entries are compared textually to the symlink-resolved current directory, an entry in GIT_CEILING_DIRECTORIES that contained a symlink would have no effect. It was known that this could cause performance problems if the symlink resolution *itself* touched slow filesystems, but it was thought that such use cases would be unlikely. The intention of the earlier change was to deal with a case when the user has this: GIT_CEILING_DIRECTORIES=/home/gitster but in reality, /home/gitster is a symbolic link to somewhere else, e.g. /net/machine/home4/gitster. A textual comparison between the specified value /home/gitster and the location getcwd(3) returns would not help us, but readlink("/home/gitster") would still be fast. After this change was released, Anders Kaseorg <andersk@mit.edu> reported: > [...] my computer has been acting so slow when I’m not connected to > the network. I put various network filesystem paths in > $GIT_CEILING_DIRECTORIES, such as > /afs/athena.mit.edu/user/a/n/andersk (to avoid hitting its parents > /afs/athena.mit.edu, /afs/athena.mit.edu/user/a, and > /afs/athena.mit.edu/user/a/n which all live in different AFS > volumes). Now when I’m not connected to the network, every > invocation of Git, including the __git_ps1 in my shell prompt, waits > for AFS to timeout. To allow users to work around this problem, give them a mechanism to turn off symlink resolution in GIT_CEILING_DIRECTORIES entries. All the entries that follow an empty entry will not be checked for symbolic links and used literally in comparison. E.g. with these: GIT_CEILING_DIRECTORIES=:/foo/bar:/xyzzy or GIT_CEILING_DIRECTORIES=/foo/bar::/xyzzy we will not readlink("/xyzzy") because it comes after an empty entry. With the former (but not with the latter), "/foo/bar" comes after an empty entry, and we will not readlink it, either. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 February 2013, 19:37:34 UTC
7f1b697 Makefile: avoid infinite loop on configure.ac change If you are using autoconf and change the configure.ac, the Makefile will notice that config.status is older than configure.ac, and will attempt to rebuild and re-run the configure script to pick up your changes. The first step in doing so is to run "make configure". Unfortunately, this tries to include config.mak.autogen, which depends on config.status, which depends on configure.ac; so we must rebuild config.status. Which leads to us running "make configure", and so on. It's easy to demonstrate with: make configure ./configure touch configure.ac make We can break this cycle by not re-invoking make to build "configure", and instead just putting its rules inline into our config.status rebuild procedure. We can avoid a copy by factoring the rules into a make variable. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 February 2013, 07:56:05 UTC
698a1ec imap-send: support Server Name Indication (RFC4366) To talk with some sites that serve multiple names on a single IP address, the client needs to ask for the specific host that it wants to talk to. Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 February 2013, 06:01:50 UTC
dff9f88 Git 1.8.1.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> 20 February 2013, 05:54:22 UTC
0ee7198 Merge branch 'ob/imap-send-ssl-verify' into maint * ob/imap-send-ssl-verify: imap-send: support subjectAltName as well imap-send: the subject of SSL certificate must match the host imap-send: move #ifdef around 20 February 2013, 05:54:15 UTC
back to top