summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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-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.
2006-05-05core.prefersymlinkrefs: use symlinks for .git/HEADLibravatar Junio C Hamano6-11/+17
When inspecting a project whose build infrastructure used to assume that .git/HEAD is a symlink ref, core.prefersymlinkrefs in the config file of such a project would help to bisect its history. Signed-off-by: Junio C Hamano <junkio@cox.net> (cherry picked from 9f0bb90d161edf8c43f5261d12bf83f14eb02ff4 commit)
2006-05-05repo-config: trim white-space before commentLibravatar Johannes Schindelin1-6/+6
Earlier, calling git-repo-config core.hello on a .git/config like this: [core] hello = world ; a comment would yield "world " (i.e. with a trailing space). Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net> (cherry picked from c1aee1fd8d94da9b3c5d2dc1d4264f7e73a58f80 commit)
2006-05-05Fix for config file section parsing.Libravatar sean1-2/+3
Currently, if the target key has a section that matches the initial substring of another section we mistakenly believe we've found the correct section. To avoid this problem, ensure that the section lengths are identical before comparison. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Clarify git-cherry documentation.Libravatar sean1-5/+14
Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Update git-unpack-objects documentation.Libravatar sean1-3/+10
Document that git-unpack-objects will not produce any results when used on a pack that exists in a repository; move it first. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Fix up docs where "--" isn't displayed correctly.Libravatar sean12-13/+13
A bare "--" doesn't show up in man or html pages correctly as two individual dashes unless backslashed as \-- in the asciidoc source. Note, no backslash is needed inside a literal block. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Several trivial documentation touch ups.Libravatar sean6-6/+10
Move incorrect asciidoc level 2 titles back to level 1. Show output of git-name-rev in man page example. Reword sentences that begin with a period (.) in asciidoc numbered lists to work around conversion to man page bug. Mention that git-repack now calls git-prune-packed when the -d option is passed to it. [imap] section headers in the config file example need to be contained in a literal block. imap.pass is the proper config file variable to use, not imap.password. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05git-svn 1.0.0Libravatar Eric Wong1-1/+1
Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05git-svn: documentation updatesLibravatar Eric Wong2-13/+38
* Clarify that 'init' requires an argument * Remove instances of 'SVN_URL' in the manpage, it's not an environment variable. * Refer to 'Additional Fetch Arguments' when documenting 'fetch' * document --authors-file / -A option Thanks to Pavel Roskin and Seth Falcon for bringing these issues to my attention. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Teach fmt-patch about --keep-subjectLibravatar Johannes Schindelin2-5/+16
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Teach fmt-patch about --numberedLibravatar Johannes Schindelin7-11/+25
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05fmt-patch: implement -o <dir>Libravatar Johannes Schindelin1-10/+34
I had to move the command line parsing around a little; setup_revisions() could mistaken <dir> for a valid ref. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05fmt-patch: output file names to stdoutLibravatar Johannes Schindelin1-1/+6
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05Teach fmt-patch to write individual files.Libravatar Johannes Schindelin1-1/+71
When called with "--stdout", it still writes to standard output. Notable differences to git-format-patch: - since fmt-patch uses the standardized logging machinery, it is no longer "From nobody", but "From <commit_sha1>", - the empty lines before and after the "---" just before the diffstat are no longer there, - git-format-patch outputs the commit_sha1 just before the first diff, which fmt-patch does not, - the file names are no longer output to stdout, but to stderr (since stdout is freopen()ed all the time), and - "git fmt-patch HEAD^" does not work as expected: it outputs *all* commits reachable from HEAD^! The last one is possibly a showstopper. At least I used to call that command quite often... Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-05delta: stricter constnessLibravatar Junio C Hamano3-6/+6
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-04Makefile: do not link rev-list any specially.Libravatar Junio C Hamano1-4/+0
We used to depend on bignum from openssl for rev-list to compute merge-order, but there is no reason to use different build recipe from other programs anymore. Just build it with git-%$X rule like everybody else. Noticed by Alexey Dobriyan. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-04builtin-push: --all and --tags _are_ explicit refspecsLibravatar Johannes Schindelin1-2/+2
... so do not get refspecs from remotes/* or the config if one of them was specified. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-04Merge branch 'jc/cache-tree' into nextLibravatar Junio C Hamano1-0/+5
* jc/cache-tree: fsck-objects: do not segfault on missing tree in cache-tree
2006-05-04Merge branch 'jc/grep' into nextLibravatar Junio C Hamano1-0/+66
* jc/grep: builtin-grep: -L (--files-without-match). builtin-grep: binary files -a and -I builtin-grep: terminate correctly at EOF
2006-05-04Merge branch 'js/fetchconfig' into nextLibravatar Junio C Hamano11-189/+315
* js/fetchconfig: Add a conversion tool to migrate remote information into the config fetch, pull: ask config for remote information Add a few more words to the glossary. Added definitions for a few words: Alphabetize the glossary. sha1_to_hex() usage cleanup
2006-05-04Add a conversion tool to migrate remote information into the configLibravatar Johannes Schindelin1-0/+35
Use this tool to rewrite the .git/remotes/* files into the config. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-04fetch, pull: ask config for remote informationLibravatar Johannes Schindelin1-4/+24
Now you can say [remote.junio] url = git://git.kernel.org/pub/scm/git/git.git fetch = next:next in your .git/config. [jc: fixed up the log message that still said "pull" ] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-04Merge branch 'jc/logs'Libravatar Junio C Hamano2-34/+3
* jc/logs: builtin-log/whatchanged/show: make them official.
2006-05-03Merge branch 'jc/show-branch-dense'Libravatar Junio C Hamano1-3/+30
* jc/show-branch-dense: show-branch: omit uninteresting merges.
2006-05-03Merge branch 'jc/symref'Libravatar Junio C Hamano6-11/+17
* jc/symref: core.prefersymlinkrefs: use symlinks for .git/HEAD
2006-05-03Merge branch 'jc/diff'Libravatar Junio C Hamano8-94/+407
* jc/diff: builtin-diff: call it "git-diff", really. builtin-diff.c: die() formatting type fix. built-in diff: assorted updates. built-in diff.
2006-05-03Merge branch 'js/repoconfig'Libravatar Junio C Hamano3-31/+79
* js/repoconfig: repo-config: deconvolute logics repo-config: readability fixups. repo-config: support --get-regexp
2006-05-03Merge branch 'jc/count'Libravatar Junio C Hamano6-35/+141
* jc/count: builtin-count-objects: open packs when running -v builtin-count-objects: make it official. built-in count-objects.
2006-05-03Merge branch 'js/remoteconfig'Libravatar Junio C Hamano4-3/+319
* js/remoteconfig: Revert "fetch, pull: ask config for remote information" fetch, pull: ask config for remote information builtin-push: also ask config for remote information builtin-push: make it official. Fix builtin-push to honor Push: lines in remotes file. builtin-push: resurrect parsing of Push: lines git builtin "push"
2006-05-03Merge branch 'maint'Libravatar Junio C Hamano2-169/+242
* maint: Add a few more words to the glossary. Added definitions for a few words: Alphabetize the glossary.
2006-05-03Add a few more words to the glossary.Libravatar Jon Loeliger1-12/+51
Clean up a few entries and fix typos. bare repository cherry-picking hook topic branch [jc: removing questionable "symbolic ref -- see 'ref'" for now.] Signed-off-by: Jon Loeliger <jdl@jdl.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-03Added definitions for a few words:Libravatar Jon Loeliger2-1/+34
fast forward pickaxe refspec tracking branch Wild hack allows "link:git-" prefix to reference commands too. Signed-off-by: Jon Loeliger <jdl@jdl.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-03Alphabetize the glossary.Libravatar Jon Loeliger1-169/+170
Signed-off-by: Jon Loeliger <jdl@jdl.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-03sha1_to_hex() usage cleanupLibravatar Linus Torvalds3-10/+7
Somebody on the #git channel complained that the sha1_to_hex() thing uses a static buffer which caused an error message to show the same hex output twice instead of showing two different ones. That's pretty easily rectified by making it uses a simple LRU of a few buffers, which also allows some other users (that were aware of the buffer re-use) to be written in a more straightforward manner. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>