summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* xutils: Fix hashing an incomplete line with whitespaces at the endJunio C Hamano2009-08-231-2/+4
| | | | | | | | | | | | | | | | Upon seeing a whitespace, xdl_hash_record_with_whitespace() first skipped the run of whitespaces (excluding LF) that begins there, ensuring that the pointer points at the last whitespace character in the run, and assumed that the next character must be LF at the end of the line. This does not work when hashing an incomplete line, which lacks the LF at the end. Introduce "at_eol" variable that is true when either we are at the end of line (looking at LF) or at the end of an incomplete line, and use that instead throughout the code. Noticed by Thell Fowler. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-08-072-11/+27
|\ | | | | | | | | | | * maint-1.6.0: verify-pack -v: do not report "chain length 0" t5510: harden the way verify-pack is used
| * verify-pack -v: do not report "chain length 0"Junio C Hamano2009-08-071-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | When making a histogram of delta chain length in the pack, the program collects number of objects whose delta depth exceeds the MAX_CHAIN limit in histogram[0], and showed it as the number of items that exceeds the limit correctly. HOWEVER, it also showed the same number labeled as "chain length = 0". In fact, we are not showing the number of objects whose chain length is zero, i.e. the base objects. Correct this. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * t5510: harden the way verify-pack is usedJunio C Hamano2009-08-071-3/+8
| | | | | | | | | | | | | | The test ignored the exit status from verify pack command, and also relied on not seeing any delta chain statistics. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-06-203-7/+7
|\ \ | |/ | | | | | | | | | | * maint-1.6.0: git-show-ref.txt: remove word and make consistent git-svn documentation: fix typo in 'rebase vs. pull/merge' section use xstrdup, not strdup in ll-merge.c
| * git-show-ref.txt: remove word and make consistentStephen Boyd2009-06-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | Under is better than in because of the nested nature of the .git directory. "also using" sounds a little odd, plus we say combined with later on so just use that. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * git-svn documentation: fix typo in 'rebase vs. pull/merge' sectionMiklos Vajna2009-06-201-1/+1
| | | | | | | | | | Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * use xstrdup, not strdup in ll-merge.cJim Meyering2009-06-141-4/+4
| | | | | | | | | | | | | | | | Otherwise, a fluky allocation failure would cause merge configuration settings to be silently ignored. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-06-132-34/+34
|\ \ | |/ | | | | | | | | * maint-1.6.0: git-rerere.txt: grammatical fixups and cleanups http-push.c::remove_locks(): fix use after free
| * git-rerere.txt: grammatical fixups and cleanupsStephen Boyd2009-06-131-33/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite the gc section using unresolved and resolved instead of "not recorded". Add plurals and missing articles. Make some sentences have consistent tense. Try and be more active by removing "that" and simplifying sentences. The terms "hand-resolve" and "hand resolve" were used, so just use "hand resolve" to be more consistent. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * http-push.c::remove_locks(): fix use after freeAlex Riesen2009-05-241-1/+2
| | | | | | | | | | | | | | | | Noticed and reported by Serhat Şevki Dinçer. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Acked-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-05-131-1/+3
|\ \ | |/ | | | | | | | | * maint-1.6.0: ls-tree manpage: output of ls-tree is compatible with update-index ls-tree manpage: use "unless" instead of "when ... is not"
| * ls-tree manpage: output of ls-tree is compatible with update-indexAlex Riesen2009-05-101-0/+2
| | | | | | | | | | | | | | | | Such format relationships are very useful things to remember for script writers. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * ls-tree manpage: use "unless" instead of "when ... is not"Alex Riesen2009-05-101-1/+1
| | | | | | | | | | | | | | Delayed negation in a statement is harder to spot and keep in mind. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-05-081-2/+2
|\ \ | |/ | | | | | | * maint-1.6.0: dir.c: Fix two minor grammatical errors in comments
| * dir.c: Fix two minor grammatical errors in commentsAllan Caffee2009-05-051-2/+2
| | | | | | | | | | Signed-off-by: Allan Caffee <allan.caffee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | GIT 1.6.1.4v1.6.1.4Junio C Hamano2009-05-032-1/+26
| | | | | | | | | | | | With a handful of fixes backmerged from 1.6.2.X series Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1Junio C Hamano2009-05-0311-74/+105
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/maint-1.6.0-keep-pack: pack-objects: don't loosen objects available in alternate or kept packs t7700: demonstrate repack flaw which may loosen objects unnecessarily Remove --kept-pack-only option and associated infrastructure pack-objects: only repack or loosen objects residing in "local" packs git-repack.sh: don't use --kept-pack-only option to pack-objects t7700-repack: add two new tests demonstrating repacking flaws is_kept_pack(): final clean-up Simplify is_kept_pack() Consolidate ignore_packed logic more has_sha1_kept_pack(): take "struct rev_info" has_sha1_pack(): refactor "pretend these packs do not exist" interface git-repack: resist stray environment variable
| * | pack-objects: don't loosen objects available in alternate or kept packsBrandon Casey2009-03-212-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If pack-objects is called with the --unpack-unreachable option then it will unpack (i.e. loosen) all unreferenced objects from local not-kept packs, including those that also exist in packs residing in an alternate object database or a locally kept pack. The only user of this option is git-repack. In this case, repack will follow the call to pack-objects with a call to prune-packed, which will delete these newly loosened objects, making the act of loosening a waste of time. The unnecessary loosening can be avoided by checking whether an object exists in a non-local pack or a locally kept pack before loosening it. This fixes the 'local packed unreachable obs that exist in alternate ODB are not loosened' test in t7700. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | t7700: demonstrate repack flaw which may loosen objects unnecessarilyBrandon Casey2009-03-211-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an unreferenced object exists in both a local pack and in either a pack residing in an alternate object database or a local kept pack, then the pack-objects call made by repack will loosen that object only to have it immediately pruned by repack's call to prune-packed. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Remove --kept-pack-only option and associated infrastructureBrandon Casey2009-03-205-31/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This option to pack-objects/rev-list was created to improve the -A and -a options of repack. It was found to be lacking in that it did not provide the ability to differentiate between local and non-local kept packs, and found to be unnecessary since objects residing in local kept packs can be filtered out by the --honor-pack-keep option. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | pack-objects: only repack or loosen objects residing in "local" packsBrandon Casey2009-03-202-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These two features were invented for use by repack when repack will delete the local packs that have been made redundant. The packs accessible through alternates are not deleted by repack, so the objects contained in them are still accessible after the local packs are deleted. They do not need to be repacked into the new pack or loosened. For the case of loosening they would immediately be deleted by the subsequent prune-packed that is called by repack anyway. This fixes the test 'packed unreachable obs in alternate ODB are not loosened' in t7700. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | git-repack.sh: don't use --kept-pack-only option to pack-objectsBrandon Casey2009-03-202-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The --kept-pack-only option to pack-objects treats all kept packs as equal. This results in objects that reside in an alternate pack that has a .keep file, not being packed into a newly created pack when the user specifies the -a option to repack. Since the user may not have any control over the alternate database, git should not refrain from repacking those objects even though they are in a pack with a .keep file. This fixes the 'packed obs in alternate ODB kept pack are repacked' test in t7700. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | t7700-repack: add two new tests demonstrating repacking flawsBrandon Casey2009-03-201-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) The new --kept-pack-only mechansim of rev-list/pack-objects has replaced --unpacked=. This new mechansim does not operate solely on "local" packs now. The result is that objects residing in an alternate pack which has a .keep file will not be repacked with repack -a. This flaw is only apparent when a commit object is the one residing in an alternate kept pack. 2) The 'repack unpacked objects' and 'loosen unpacked objects' mechanisms of pack-objects, i.e. --keep-unreachable and --unpack-unreachable, now do not operate solely on local packs. The --keep-unreachable option no longer has any callers, but --unpack-unreachable is used when repack is called with '-A -d' and the local repo has existing packs. In this case, objects residing in alternate, not-kept packs will be loosened, and then immediately deleted by repack's call to prune-packed. The test must manually call pack-objects to avoid the call to prune-packed that is made by repack when -d is used. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | is_kept_pack(): final clean-upJunio C Hamano2009-02-285-21/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now is_kept_pack() is just a member lookup into a structure, we can write it as such. Also rewrite the sole caller of has_sha1_kept_pack() to switch on the criteria the callee uses (namely, revs->kept_pack_only) between calling has_sha1_kept_pack() and has_sha1_pack(), so that these two callees do not have to take a pointer to struct rev_info as an argument. This removes the header file dependency issue temporarily introduced by the earlier commit, so we revert changes associated to that as well. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Simplify is_kept_pack()Junio C Hamano2009-02-285-51/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes --unpacked=<packfile> parameter from the revision parser, and rewrites its use in git-repack to pass a single --kept-pack-only option instead. The new --kept-pack-only option means just that. When this option is given, is_kept_pack() that used to say "not on the --unpacked=<packfile> list" now says "the packfile has corresponding .keep file". Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Consolidate ignore_packed logic moreJunio C Hamano2009-02-284-21/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This refactors three loops that check if a given packfile is on the ignore_packed list into a function is_kept_pack(). The function returns false for a pack on the list, and true for a pack not on the list, because this list is solely used by "git repack" to pass list of packfiles that do not have corresponding .keep files, i.e. a packfile not on the list is "kept". Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | has_sha1_kept_pack(): take "struct rev_info"Junio C Hamano2009-02-284-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Its "ignore_packed" parameter always comes from struct rev_info. This patch makes the function take a pointer to the surrounding structure, so that the refactoring in the next patch becomes easier to review. There is an unfortunate header file dependency and the easiest workaround is to temporarily move the function declaration from cache.h to revision.h; this will be moved back to cache.h once the function loses this "ignore_packed" parameter altogether in the later part of the series. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | has_sha1_pack(): refactor "pretend these packs do not exist" interfaceJunio C Hamano2009-02-287-13/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the callers of this function except only one pass NULL to its last parameter, ignore_packed. Introduce has_sha1_kept_pack() function that has the function signature and the semantics of this function, and convert the sole caller that does not pass NULL to call this new function. All other callers and has_sha1_pack() lose the ignore_packed parameter. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | git-repack: resist stray environment variableJunio C Hamano2009-02-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | The script used $args and $existing without initializing it to empty. It would have been confused by an environment variable the end user had before running it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'jc/maint-1.6.0-diff-borrow-carefully' into maint-1.6.1Junio C Hamano2009-05-032-1/+17
|\ \ \ | | | | | | | | | | | | | | | | * jc/maint-1.6.0-diff-borrow-carefully: diff --cached: do not borrow from a work tree when a path is marked as assume-unchanged
| * | | diff --cached: do not borrow from a work tree when a path is marked as ↵Junio C Hamano2009-03-222-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assume-unchanged When the index says that the file in the work tree that corresponds to the blob object that is used for comparison is known to be unchanged, "diff" reads from the file and applies convert_to_git(), instead of inflating the object, to feed the internal diff engine with, because an earlier benchnark found that it tends to be faster to use this optimization. However, the index can lie when the path is marked as assume-unchanged. Disable the optimization for such paths. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge branch 'bs/maint-1.6.0-tree-walk-prefix' into maint-1.6.1Junio C Hamano2009-05-034-5/+29
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | * bs/maint-1.6.0-tree-walk-prefix: match_tree_entry(): a pathspec only matches at directory boundaries tree_entry_interesting: a pathspec only matches at directory boundary
| * | | | match_tree_entry(): a pathspec only matches at directory boundariesJunio C Hamano2009-04-012-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the code did a simple prefix match, which means that a path in a directory "frotz/" would have matched with pathspec "f". Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | tree_entry_interesting: a pathspec only matches at directory boundaryBjörn Steinbrink2009-04-012-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the code did a simple prefix match, which means that a path in a directory "frotz/" would have matched with pathspec "f". Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-04-292-12/+65
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | * maint-1.6.0: diff -c -p: do not die on submodules
| * | | | diff -c -p: do not die on submodulesJunio C Hamano2009-04-292-12/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The combine diff logic knew only about blobs (and their checked-out form in the work tree, either regular files or symlinks), and barfed when fed submodules. This "externalizes" gitlinks in the same way as the normal patch generation codepath does (i.e. "Subproject commit Xxx\n") to fix the issue. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-04-284-4/+12
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | * maint-1.6.0: grep: fix segfault when "git grep '('" is given Documentation: fix a grammatical error in api-builtin.txt builtin-merge: fix a typo in an error message
| * | | | grep: fix segfault when "git grep '('" is givenLinus Torvalds2009-04-272-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | Documentation: fix a grammatical error in api-builtin.txtAllan Caffee2009-04-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Allan Caffee <allan.caffee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | builtin-merge: fix a typo in an error messageAllan Caffee2009-04-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Allan Caffee <allan.caffee@gmail.com> Acked-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-04-241-1/+1
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | * maint-1.6.0: test-genrandom: Add newline to usage string
| * | | | test-genrandom: Add newline to usage stringStephen Boyd2009-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A minor fix to place the terminal input on a new line if test-genrandom is run with no arguments. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-04-183-9/+20
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | * maint-1.6.0: doc/git-daemon: add missing arguments to options init: Do not segfault on big GIT_TEMPLATE_DIR environment variable
| * | | | doc/git-daemon: add missing arguments to optionsMarkus Heidelberg2009-04-181-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fix some spellings and typos. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | init: Do not segfault on big GIT_TEMPLATE_DIR environment variableFrank Lichtenheld2009-04-182-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Frank Lichtenheld <flichtenheld@astaro.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-04-172-2/+9
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | * maint-1.6.0: Fix buffer overflow in config parser
| * | | | Fix buffer overflow in config parserThomas Jarosch2009-04-172-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When interpreting a config value, the config parser reads in 1+ space character(s) and puts -one- space character in the buffer as soon as the first non-space character is encountered (if not inside quotes). Unfortunately the buffer size check lacks the extra space character which gets inserted at the next non-space character, resulting in a crash with a specially crafted config entry. The unit test now uses Java to compile a platform independent .NET framework to output the test string in C# :o) Read: Thanks to Johannes Sixt for the correct printf call which replaces the perl invocation. Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano2009-04-122-0/+5
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | * maint-1.6.0: State the effect of filter-branch on graft explicitly process_{tree,blob}: Remove useless xstrdup calls
| * | | | State the effect of filter-branch on graft explicitlyDaniel Cheng (aka SDiZ)2009-04-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Cheng (aka SDiZ) <j16sdiz+freenet@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>