summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2006-05-08Merge branch 'jc/clean' into nextLibravatar Junio C Hamano18-46/+64
* jc/clean: Teach git-clean optional <paths>... parameters. Separate object name errors from usage errors Documentation: {caret} fixes (git-rev-list.txt) Fix "git diff --stat" with long filenames Fix repo-config set-multivar error return path.
2006-05-08Merge branch 'jc/bindiff' into nextLibravatar Junio C Hamano1-29/+35
* jc/bindiff: improve base85 generated assembly code
2006-05-08Merge branch 'jc/xsha1' into nextLibravatar Junio C Hamano1-0/+1
* jc/xsha1: get_sha1() - fix infinite loop on nonexistent stage.
2006-05-08Merge branch 'jc/grep' into nextLibravatar Junio C Hamano2-42/+104
* jc/grep: builtin-grep: documentation Teach -f <file> option to builtin-grep.
2006-05-08Teach git-clean optional <paths>... parameters.Libravatar Junio C Hamano2-5/+17
When optional paths arguments are given, git-clean passes them to underlying git-ls-files; with this, you can say: git clean 'temp-*' to clean only the garbage files whose names begin with 'temp-'. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Pavel Roskin <proski@gnu.org>
2006-05-08Merge branch 'fix'Libravatar Junio C Hamano16-41/+47
* fix: Separate object name errors from usage errors Documentation: {caret} fixes (git-rev-list.txt) Fix "git diff --stat" with long filenames Fix repo-config set-multivar error return path.
2006-05-08Separate object name errors from usage errorsLibravatar Dmitry V. Levin13-25/+36
Separate object name errors from usage errors. Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08get_sha1() - fix infinite loop on nonexistent stage.Libravatar Junio C Hamano1-0/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08Documentation: {caret} fixes (git-rev-list.txt)Libravatar Junio C Hamano1-3/+4
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08builtin-grep: documentationLibravatar Junio C Hamano1-23/+62
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08Teach -f <file> option to builtin-grep.Libravatar Junio C Hamano1-19/+42
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08improve base85 generated assembly codeLibravatar Nicolas Pitre1-29/+35
This code is arguably pretty hot, if you use binary patches of course. This patch helps gcc generate both smaller and faster code especially in the error free path. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-08Fix "git diff --stat" with long filenamesLibravatar Linus Torvalds1-1/+1
When we cut off the front of a filename to make it fit on the line, we add a "..." in front. However, the way the "git diff" code was written, we will never reset the prefix back to the empty string, so every single filename afterwards will have the "..." prefix, whether appropriate or not. You can see this with "git diff v2.6.16.." on the current kernel tree, since there are filenames with long names that changed there: [ snip snip ] Documentation/filesystems/vfs.txt | 229 .../firmware_class/firmware_sample_driver.c | 3 .../firmware_sample_firmware_class.c | 1 ...Documentation/fujitsu/frv/kernel-ABI.txt | 192 ...Documentation/hwmon/w83627hf | 4 [ snip snip ] notice how the two Documentation/firmware** filenames caused the "..." to be added, but then the later filenames don't want it, and it also screws up the alignment of the line numbering afterwards. Trivially fixed by moving the declaration (and initial setting) of the "prefix" variable into the for-loop where it is used. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07Fix repo-config set-multivar error return path.Libravatar Junio C Hamano1-12/+6
This hopefully fixes the problem an earlier commit 5d8ee9ceb attemted to fix. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07Merge branch 'jc/gitlink' into nextLibravatar Junio C Hamano7-12/+140
* jc/gitlink: write-tree: --prefix=<path> read-tree: --prefix=<path>/ option.
2006-05-07Merge branch 'mw/alternates' into nextLibravatar Junio C Hamano9-91/+306
* mw/alternates: clone: don't clone the info/alternates file test case for transitive info/alternates Transitively read alternatives repack: honor -d even when no new pack was created clone: keep --reference even with -l -s repo-config: document what value_regexp does a bit more clearly. Release config lock if the regex is invalid core-tutorial.txt: escape asterisk Sparse fix for builtin-diff Fix users of prefix_path() to free() only when necessary
2006-05-07Merge branch 'jc/cache-tree' into nextLibravatar Junio C Hamano1-2/+2
* jc/cache-tree: Fix crash when reading the empty tree
2006-05-07clone: don't clone the info/alternates fileLibravatar Martin Waitz1-5/+1
Now that the cloned alternates file is parsed, too we don't need to copy it into our new repository, we just reference it. Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07test case for transitive info/alternatesLibravatar Martin Waitz1-0/+105
Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07Transitively read alternativesLibravatar Martin Waitz1-72/+106
When adding an alternate object store then add entries from its info/alternates files, too. Relative entries are only allowed in the current repository. Loops and duplicate alternates through multiple repositories are ignored. Just to be sure that nothing breaks it is not allow to build deep nesting levels using info/alternates. Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07Merge branch 'fix'Libravatar Junio C Hamano6-13/+94
* fix: repack: honor -d even when no new pack was created clone: keep --reference even with -l -s repo-config: document what value_regexp does a bit more clearly. Release config lock if the regex is invalid core-tutorial.txt: escape asterisk
2006-05-07Sparse fix for builtin-diffLibravatar Peter Hagervall1-2/+1
You gotta love sparse: builtin-diff.c:88:4: error: Just how const do you want this type to be? Signed-off-by: Peter Hagervall <hager@cs.umu.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07repack: honor -d even when no new pack was createdLibravatar Martin Waitz1-7/+7
If all objects are reachable via an alternate object store then we still have to remove all obsolete local packs. Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07clone: keep --reference even with -l -sLibravatar Martin Waitz2-1/+79
Both -l -s and --reference update objects/info/alternates and used to write over each other. Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07repo-config: document what value_regexp does a bit more clearly.Libravatar Junio C Hamano1-4/+5
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07Release config lock if the regex is invalidLibravatar Pavel Roskin1-0/+2
Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07core-tutorial.txt: escape asteriskLibravatar Matthias Lederhofer1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-07Fix crash when reading the empty treeLibravatar Johannes Schindelin1-2/+2
cvsimport needs to call git-read-tree without arguments to create an empty tree. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-06Merge branch 'js/fmt-patch' into nextLibravatar Junio C Hamano4-2/+43
* js/fmt-patch: fmt-patch: understand old <his> notation t1300-repo-config: two new config parsing tests. Another config file parsing fix.
2006-05-06Merge branch 'jc/reupdate' into nextLibravatar Junio C Hamano2-6/+6
* jc/reupdate: Fix users of prefix_path() to free() only when necessary
2006-05-06Fix users of prefix_path() to free() only when necessaryLibravatar Johannes Schindelin2-6/+6
Unfortunately, prefix_path() sometimes returns a newly xmalloc()ed buffer, and in other cases it returns a substring! For example, when calling git update-index ./hello.txt prefix_path() returns "hello.txt", but does not allocate a new buffer. The original code only checked if the result of prefix_path() was different from what was passed in, and thusly trigger a segmentation fault. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-06Fix users of prefix_path() to free() only when necessaryLibravatar Johannes Schindelin2-5/+5
Unfortunately, prefix_path() sometimes returns a newly xmalloc()ed buffer, and in other cases it returns a substring! For example, when calling git update-index ./hello.txt prefix_path() returns "hello.txt", but does not allocate a new buffer. The original code only checked if the result of prefix_path() was different from what was passed in, and thusly trigger a segmentation fault. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-06fmt-patch: understand old <his> notationLibravatar Johannes Schindelin2-1/+9
When calling "git fmt-patch HEAD~5", you now get the same as if you would have said "git fmt-patch HEAD~5..". This makes it easier for my fingers which are so used to the old syntax. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-06Merge branch 'master' into js/fmt-patchLibravatar Junio C Hamano90-3156/+6031
* master: (109 commits) t1300-repo-config: two new config parsing tests. Another config file parsing fix. update-index: plug memory leak from prefix_path() checkout-index: plug memory leak from prefix_path() update-index --unresolve: work from a subdirectory. pack-object: squelch eye-candy on non-tty core.prefersymlinkrefs: use symlinks for .git/HEAD repo-config: trim white-space before comment Fix for config file section parsing. Clarify git-cherry documentation. Update git-unpack-objects documentation. Fix up docs where "--" isn't displayed correctly. Several trivial documentation touch ups. git-svn 1.0.0 git-svn: documentation updates delta: stricter constness Makefile: do not link rev-list any specially. builtin-push: --all and --tags _are_ explicit refspecs builtin-log/whatchanged/show: make them official. show-branch: omit uninteresting merges. ...
2006-05-06t1300-repo-config: two new config parsing tests.Libravatar sean1-0/+31
- correctly insert a new variable into a section that only contains a single (different) variable. - correctly insert a new section that matches the initial substring of an existing section. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-06Another config file parsing fix.Libravatar sean1-1/+3
If the variable we need to store should go into a section that currently only has a single variable (not matching the one we're trying to insert), we will already be into the next section before we notice we've bypassed the correct location to insert the variable. To handle this case we store the current location as soon as we find a variable matching the section of our new variable. This breakage was brought up by Linus. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-06Merge branch 'jc/reupdate' into nextLibravatar Junio C Hamano4-16/+173
* jc/reupdate: update-index --again: take optional pathspecs update-index --again update-index: plug memory leak from prefix_path() checkout-index: plug memory leak from prefix_path() update-index --unresolve: work from a subdirectory.
2006-05-06Merge branch 'jc/bindiff' into nextLibravatar Junio C Hamano2-0/+85
* jc/bindiff: binary diff and apply: testsuite.
2006-05-06binary diff and apply: testsuite.Libravatar Junio C Hamano2-0/+85
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05update-index --again: take optional pathspecsLibravatar Junio C Hamano2-2/+13
When pathspecs are given, update-index --again further limits the set of paths to be updated to those that match them. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05update-index --againLibravatar Junio C Hamano3-4/+131
After running 'git-update-index' for some paths, you may want to do the update on the same set of paths again. The new flag --again checks the paths whose index entries are are different from the HEAD commit and updates them from the working tree contents. This was brought up by Carl Worth on #git. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05update-index: plug memory leak from prefix_path()Libravatar Junio C Hamano1-7/+12
prefix_path() sometimes allocates new memory and returns it, and other times returns the incoming path argument intact. The callers need to be a bit careful not to leak memory. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05checkout-index: plug memory leak from prefix_path()Libravatar Junio C Hamano1-2/+11
prefix_path() sometimes allocates new memory and returns it, and other times returns the incoming path argument intact. The callers need to be a bit careful not to leak memory. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05update-index --unresolve: work from a subdirectory.Libravatar Junio C Hamano1-3/+8
It completely forgot to take the prefix into account, so you had to feed the full path even when you start from a subdirectory, which was nonsensical. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Merge branch 'jc/bindiff' into nextLibravatar Junio C Hamano31-118/+580
* jc/bindiff: binary diff: further updates. binary patch. pack-object: squelch eye-candy on non-tty core.prefersymlinkrefs: use symlinks for .git/HEAD repo-config: trim white-space before comment Fix for config file section parsing. Clarify git-cherry documentation. Update git-unpack-objects documentation. Fix up docs where "--" isn't displayed correctly. Several trivial documentation touch ups. git-svn 1.0.0 git-svn: documentation updates delta: stricter constness Makefile: do not link rev-list any specially. builtin-push: --all and --tags _are_ explicit refspecs
2006-05-05binary diff: further updates.Libravatar Junio C Hamano5-96/+304
This updates the user interface and generated diff data format. * "diff --binary" is used to signal that we want an e-mailable binary patch. It implies --full-index and -p. * "apply --allow-binary-replacement" acquired a short synonym "apply --binary". * After the "GIT binary patch\n" header line there is a token to record which binary patch mechanism was used, so that we can extend it later. Currently there are two mechanisms defined: "literal" and "delta". The former records the deflated postimage and the latter records the deflated delta from the preimage to postimage. For purely implementation convenience, I added the deflated length after these "literal/delta" tokens (otherwise the decoding side needs to guess and reallocate the buffer while inflating). Improvement patches are very welcomed. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05binary patch.Libravatar Junio C Hamano4-68/+275
This adds "binary patch" to the diff output and teaches apply what to do with them. On the diff generation side, traditionally, we said "Binary files differ\n" without giving anything other than the preimage and postimage object name on the index line. This was good enough for applying a patch generated from your own repository (very useful while rebasing), because the postimage would be available in such a case. However, this was not useful when the recipient of such a patch via e-mail were to apply it, even if the preimage was available. This patch allows the diff to generate "binary" patch when operating under --full-index option. The binary patch follows the usual extended git diff headers, and looks like this: "GIT binary patch\n" <length byte><data>"\n" ... "\n" Each line is prefixed with a "length-byte", whose value is upper or lowercase alphabet that encodes number of bytes that the data on the line decodes to (1..52 -- 'A' means 1, 'B' means 2, ..., 'Z' means 26, 'a' means 27, ...). <data> is 1 or more groups of 5-byte sequence, each of which encodes up to 4 bytes in base85 encoding. Because 52 / 4 * 5 = 65 and we have the length byte, an output line is capped to 66 characters. The payload is the same diff-delta as we use in the packfiles. On the consumption side, git-apply now can decode and apply the binary patch when --allow-binary-replacement is given, the diff was generated with --full-index, and the receiving repository has the preimage blob, which is the same condition as it always required when accepting an "Binary files differ\n" patch. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05pack-object: squelch eye-candy on non-ttyLibravatar Junio C Hamano1-0/+5
One of my post-update scripts runs a git-fetch into a separate repository and sends the results back to me (2>&1); I end up getting this in the mail: Generating pack... Done counting 180 objects. Result has 131 objects. Deltifying 131 objects. 0% (0/131) done^M 1% (2/131) done^M... This defaults not to do the progress report when not on a tty. You could give --progress to force the progress report, but let's not bother even documenting it nor mentioning it in the usage string. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Merge branch 'js/fmt-patch' into nextLibravatar Junio C Hamano7-11/+135
* js/fmt-patch: Teach fmt-patch about --keep-subject Teach fmt-patch about --numbered fmt-patch: implement -o <dir> fmt-patch: output file names to stdout Teach fmt-patch to write individual files.
2006-05-05Merge branch 'fix'Libravatar Junio C Hamano1-2/+3
* fix: core.prefersymlinkrefs: use symlinks for .git/HEAD repo-config: trim white-space before comment Fix for config file section parsing.