summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-03-16git-fetch, git-branch: Support local --track via a special remote '.'Libravatar Paolo Bonzini7-22/+79
This patch adds support for a dummy remote '.' to avoid having to declare a fake remote like [remote "local"] url = . fetch = refs/heads/*:refs/heads/* Such a builtin remote simplifies the operation of "git-fetch", which will populate FETCH_HEAD but will not pretend that two repositories are in use, will not create a thin pack, and will not perform any useless remapping of names. The speed improvement is around 20%, and it should improve more if "git-fetch" is converted to a builtin. To this end, git-parse-remote is grown with a new kind of remote, 'builtin'. In git-fetch.sh, we treat the builtin remote specially in that it needs no pack/store operations. In fact, doing git-fetch on a builtin remote will simply populate FETCH_HEAD appropriately. The patch also improves of the --track/--no-track support, extending it so that branch.<name>.remote items referring '.' can be created. Finally, it fixes a typo in git-checkout.sh. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14Merge GIT 1.5.0.4Libravatar Junio C Hamano3-2/+26
2007-03-14GIT 1.5.0.4Libravatar Junio C Hamano3-2/+26
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14Clarify doc for git-config --unset-all.Libravatar Yann Dirson1-1/+1
Previous formulation could make it appear as removing all lines matching a regexp (at least, I was looking for such a flag, and confused this flag for what I was looking for). Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14git-checkout: fix "eval" used for merge labelling.Libravatar Junio C Hamano1-1/+1
The symbolic notation of the fork point can contain whitespaces (e.g. "git checkout -m 'HEAD@{9 hours ago}'"). Quote strings properly when using eval to prepare GITHEAD_$new Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14update-hook: fix incorrect use of git-describe and sed for finding previous tagLibravatar Andy Parkins1-1/+1
Previously git-describe would output lines of the form v1.1.1-gf509d56 The update hook found the dash and stripped it off using sed 's/-g.*//' The remainder was then used as the previous tag name. However, git-describe has changed format. The output is now of the form v1.1.1-23-gf509d56 The above sed fragment doesn't strip the middle "-23", and so the previous tag name used would be "v1.1.1-23". This is incorrect. Since the hook script was written, git-describe now gained support for "--abbrev=0", which it uses as a special flag to tell it not to output anything other than the nearest tag name. This patch fixes the problem, and prevents any future recurrence by using this new flag rather than sed to find the previous tag. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14Merge branch 'jc/repack'Libravatar Junio C Hamano2-0/+57
* jc/repack: prepare_packed_git(): sort packs by age and localness.
2007-03-14Merge branch 'jc/fetch'Libravatar Junio C Hamano7-249/+558
* jc/fetch: .gitignore: add git-fetch--tool builtin-fetch--tool: fix reflog notes. git-fetch: retire update-local-ref which is not used anymore. builtin-fetch--tool: make sure not to overstep ls-remote-result buffer. fetch--tool: fix uninitialized buffer when reading from stdin builtin-fetch--tool: adjust to updated sha1_object_info(). git-fetch--tool takes flags before the subcommand. Use stdin reflist passing in git-fetch.sh Use stdin reflist passing in parse-remote Allow fetch--tool to read from stdin git-fetch: rewrite expand_ref_wildcard in C git-fetch: rewrite another shell loop in C git-fetch: move more code into C. git-fetch--tool: start rewriting parts of git-fetch in C. git-fetch: split fetch_main into fetch_dumb and fetch_native
2007-03-14Merge branch 'dz/mailinfo'Libravatar Junio C Hamano13-248/+352
* dz/mailinfo: Add a couple more test cases to the suite. restrict the patch filtering builtin-mailinfo.c infrastrcture changes
2007-03-14Merge branch 'jb/per-user-exclude'Libravatar Junio C Hamano1-1/+17
* jb/per-user-exclude: add: Support specifying an excludes file with a configuration variable
2007-03-14Merge branch 'maint'Libravatar Junio C Hamano1-8/+11
* maint: cvsserver: asciidoc formatting changes
2007-03-14Merge branch 'pb/branch-track'Libravatar Junio C Hamano7-41/+237
* pb/branch-track: Fix broken create_branch() in builtin-branch. git-branch, git-checkout: autosetup for remote branch tracking
2007-03-14git-grep: don't use sscanfLibravatar Jim Meyering1-1/+14
If you use scanf or sscanf to parse integers, your code probably accepts bogus inputs. For example, builtin-grep (aka git-grep) uses sscanf(scan, "%u", &num) to parse the integer argument to -A, -B, -C. Currently, "-C 1,000" and "-C 4294967297" are both treated just like "-C 1": $ git-grep -h -C 4294967297 juggle out and you may find it easier to switch back and forth if you juggle multiple lines of development simultaneously. Of course, you will pay the price of more disk usage to hold The obvious fix is to use strtoul instead. But using a bare strtoul is too messy, at least when done properly, so I've added a wrapper function. The new function in the patch below belongs elsewhere if it would be useful in replacing any of the four remaining uses of sscanf. One final note: With this change, I get a slightly different diagnostic depending on the context size: $ ./git-grep -h -C 4294967296 juggle fatal: 4294967296: invalid context length argument [Exit 128] $ ./git-grep -h -C 4294967295 juggle grep: 4294967295: invalid context length argument [Exit 1] A common convention that makes it easy to identify the source of a diagnostic is to include the program name before the first ":". Whether that should be "git" or "git-grep" is another question. Using "grep" or "fatal" is misleading. Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14Do not output "GEN " when generating perl.makLibravatar Johannes Schindelin1-1/+1
This fixes the same issue as 8bef6204, which became an issue again after 31d0399c. Besides, it is not really helpful to print just "GEN " (_without_ "perl.mak"). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14shortlog: prompt when reading from terminal by mistakeLibravatar Junio C Hamano1-1/+4
I was trying to see who have been active recently to find GSoC mentor candidates by running: $ git shortlog -s -n --since=4.months | head -n 20 After waiting for about 20 seconds, I started getting worried, thinking that the recent revision traversal updates might have had an unintended side effect. Not so. "git shortlog" acts as a filter when no revs are given, unlike "git log" which defaults to HEAD. It was reading from its standard input. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14Documentation: add git-mergetool to the command list.Libravatar Junio C Hamano1-0/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-14Merge branch 'master' of git://repo.or.cz/git/mergetoolLibravatar Junio C Hamano5-1/+405
* 'master' of git://repo.or.cz/git/mergetool: Add git-mergetool to run an appropriate merge conflict resolution program
2007-03-13git-svn: add -l/--local command to "git svn rebase"Libravatar Eric Wong2-2/+13
This avoids fetching new revisions remotely, and is usefuly versus plain "git rebase" because the user does not have to specify which remote head to rebase against. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-13cvsserver: asciidoc formatting changesLibravatar Frank Lichtenheld1-8/+11
Format some lists really as lists. Improves both html and man output. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-13Add git-mergetool to run an appropriate merge conflict resolution programLibravatar Theodore Ts'o5-1/+405
The git-mergetool program can be used to automatically run an appropriate merge resolution program to resolve merge conflicts. It will automatically run one of kdiff3, tkdiff, meld, xxdiff, or emacs emerge programs. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-12Add a couple more test cases to the suite.Libravatar Don Zickus8-1/+35
They handle cases where there is no attached patch. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12restrict the patch filteringLibravatar Don Zickus1-3/+34
I have come across many emails that use long strings of '-'s as separators for ideas. This patch below limits the separator to only 3 '-', with the intent that long string of '-'s will stay in the commit msg and not in the patch file. Signed-off-by: Don Zickus <dzickus@redhat.com> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12builtin-mailinfo.c infrastrcture changesLibravatar Don Zickus5-248/+287
I am working on a project that required parsing through regular mboxes that didn't necessarily have patches embedded in them. I started by creating my own modified copy of git-am and working from there. Very quickly, I noticed git-mailinfo wasn't able to handle a big chunk of my email. After hacking up numerous solutions and running into more limitations, I decided it was just easier to rewrite a big chunk of it. The following patch has a bunch of fixes and features that I needed in order for me do what I wanted. Note: I'm didn't follow any email rfc papers but I don't think any of the changes I did required much knowledge (besides the boundary stuff). List of major changes/fixes: - can't create empty patch files fix - empty patch files don't fail, this failure will come inside git-am - multipart boundaries are now handled - only output inbody headers if a patch exists otherwise assume those headers are part of the reply and instead output the original headers - decode and filter base64 patches correctly - various other accidental fixes I believe I didn't break any existing functionality or compatibility (other than what I describe above, which is really only the empty patch file). I tested this through various mailing list archives and everything seemed to parse correctly (a couple thousand emails). [jc: squashed in another patch from Don's five patch series to fix the test case, as this patch exposes the bug in the test.] Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano1-0/+5
* 'master' of git://repo.or.cz/git-gui: git-gui: Support of "make -s" in: do not output anything of the build itself
2007-03-12Merge branch 'maint'Libravatar Junio C Hamano5-158/+16
* maint: Don't package the git-gui credits file anymore git-gui: Allow 'git gui version' outside of a repository git-gui: Revert "git-gui: Display all authors of git-gui." git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." git-gui: Allow committing empty merges
2007-03-12Merge branch 'master' of git://repo.or.cz/git/fastimportLibravatar Junio C Hamano2-4/+54
* 'master' of git://repo.or.cz/git/fastimport: Remove unnecessary casts from fast-import New fast-import test case for valid tree sorting fast-import: grow tree storage more aggressively
2007-03-12Merge branch 'maint' of git://repo.or.cz/git/fastimport into maintLibravatar Junio C Hamano1-2/+2
* 'maint' of git://repo.or.cz/git/fastimport: fast-import: grow tree storage more aggressively
2007-03-12Fix t5510-fetch's use of sedLibravatar Shawn O. Pearce1-1/+7
POSIX says sed may add a trailing LF if there isn't already one there. We shouldn't rely on it not adding that LF, as some systems (Mac OS X for example) will add it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Simplify closing two fds at once in run-command.cLibravatar Shawn O. Pearce1-6/+9
I started hacking on a change to add stdout redirection support to the run_command family, but found I was using a lot of close calls on two pipes in an array (such as for pipe). So I'm doing a tiny bit of refactoring first to make the next set of changes clearer. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Remove unnecessary casts from fast-importLibravatar Shawn O. Pearce1-2/+2
Jeff King pointed out that these casts are quite unnecessary, as the compiler should be doing them anyway, and may cause problems in the future if the size of the argument for to_atom were to ever be increased. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12Merge branch 'maint'Libravatar Shawn O. Pearce1-2/+2
* maint: fast-import: grow tree storage more aggressively
2007-03-12New fast-import test case for valid tree sortingLibravatar Jeff King1-0/+50
The Git tree sorting convention is more complex than just the name, it needs to include the mode too to make sure trees sort as though their name ends with "/". This is a simple test case that verifies fast-import keeps the tree ordering correct after editing the same tree twice in a single input stream. A recent proposed patch series (that has not yet been applied) will cause this test to fail, due to a bug in the way the series handles sorting within the trees. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12fast-import: grow tree storage more aggressivelyLibravatar Jeff King1-2/+2
When building up a tree for a commit, fast-import dynamically allocates memory for the tree entries. When more space is needed, the allocated memory is increased by a constant amount. For very large trees, this means re-allocating and memcpy()ing the memory O(n) times. To compound this problem, releasing the previous tree resource does not free the memory; it is kept in a pool for future trees. This means that each of the O(n) allocations will consume increasing amounts of memory, giving O(n^2) memory consumption. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12Don't package the git-gui credits file anymoreLibravatar Shawn O. Pearce1-2/+1
Since git-gui 0.6.4 the credits file is no longer produced. This file was removed from git-gui due to build issues that a lot of users and Git developers have reported running into. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Merge branch 'maint' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano4-156/+15
* 'maint' of git://repo.or.cz/git-gui: git-gui: Allow 'git gui version' outside of a repository git-gui: Revert "git-gui: Display all authors of git-gui." git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." git-gui: Allow committing empty merges
2007-03-12Re-fix get_sha1_oneline()Libravatar Linus Torvalds1-5/+5
What the function wants to return is not if we saw any return from pop_most_recent_commit(), but if we found what was asked for. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Merge branch 'maint'Libravatar Shawn O. Pearce4-156/+15
* maint: git-gui: Allow 'git gui version' outside of a repository git-gui: Revert "git-gui: Display all authors of git-gui." git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." git-gui: Allow committing empty merges
2007-03-12git-gui: Allow 'git gui version' outside of a repositoryLibravatar Shawn O. Pearce1-7/+5
I got a little surprise one day when I tried to run 'git gui version' outside of a Git repository to determine what version of git-gui was installed on that system. Turns out we were doing the repository check long before we got around to command line argument handling. We now look to see if the only argument we have been given is 'version' or '--version', and if so, print out the version and exit immediately; long before we consider looking at the Git version or working directory. This way users can still get to the git-gui version number even if Git's version cannot be read. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12git-gui: Revert "git-gui: Display all authors of git-gui."Libravatar Shawn O. Pearce4-135/+9
This reverts commit 871f4c97ad7e021d1a0a98c80c5da77fcf70e4af. Too many users have complained about the credits generator in git-gui, so I'm backing the entire thing out. This revert will finish that series. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed."Libravatar Shawn O. Pearce1-19/+6
This reverts commit 92446aba47b0e0db28f7b858ea387efcca30ab44. Too many users have complained about the credits generator in git-gui, so I'm backing the entire thing out. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12git-gui: Allow committing empty mergesLibravatar Shawn O. Pearce1-1/+1
Johannes Sixt noticed that git-gui would not let the user commit a merge created by `git merge -s ours` as the ours strategy does not alter the tree (that is HEAD^1^{tree} = HEAD^{tree} after the merge). The same issue arises from amending such a merge commit. We now permit an empty commit (no changed files) if we are doing a merge commit. Core Git does this with its command line based git-commit tool, so it makes sense for the GUI to do the same. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-11git-bundle: only die if pack would be empty, warn if ref is skippedLibravatar Johannes Schindelin1-3/+8
A use case for git-bundle expected to be quite common is this: $ git bundle create daily.bundle --since=10.days.ago --all The expected outcome is _not_ to error out if only a couple of the refs were not changed during the last 10 days. This patch complains loudly about refs which are skipped due to the pack not containing the corresponding objects, but dies only if no objects would be in the pack _at all_. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11git-send-email: configurable bcc and chain-reply-toLibravatar Avi Kivity2-1/+19
Chain-reply-to is a personal perference, and is unlikely to change from patchset to patchset. Similarly, bcc is likely to have the same values every invocation is one likes to bcc oneself. So, allow both to be set via configuration variables. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Merge branch 'maint'Libravatar Junio C Hamano2-1/+19
* maint: git-send-email: Document configuration options git-merge: warn when -m provided on a fast forward
2007-03-11git-send-email: Document configuration optionsLibravatar Avi Kivity1-0/+13
Wishing to implement an email aliases file, I found that they were already implmented. Document them for the next user. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11git-merge: warn when -m provided on a fast forwardLibravatar J. Bruce Fields1-1/+6
Warn the user that the "-m" option is ignored in the case of a fast forward. That may save some confusion in the case where the user doesn't know about fast forwards yet and may not realize that the behavior here is intentional. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Merge branch 'jc/boundary'Libravatar Junio C Hamano4-197/+243
* jc/boundary: git-bundle: prevent overwriting existing bundles git-bundle: die if a given ref is not included in bundle git-bundle: handle thin packs in subcommand "unbundle" git-bundle: Make thin packs git-bundle: avoid packing objects which are in the prerequisites bundle: fix wrong check of read_header()'s return value & add tests revision --boundary: fix uncounted case. revision --boundary: fix stupid typo git-bundle: make verify a bit more chatty. revision traversal: SHOWN means shown git-bundle: various fixups revision traversal: retire BOUNDARY_SHOW revision walker: Fix --boundary when limited
2007-03-11Change {pre,post}-receive hooks to use stdinLibravatar Shawn O. Pearce3-58/+62
Sergey Vlasov, Andy Parkins and Alex Riesen all pointed out that it is possible for a single invocation of receive-pack to be given more refs than the OS might allow us to pass as command line parameters to a single hook invocation. We don't want to break these up into multiple invocations (like xargs might do) as that makes it impossible for the pre-receive hook to verify multiple related ref updates occur at the same time, and it makes it harder for post-receive to send out a single batch notification. Instead we pass the reference data on a pipe connected to the hook's stdin, supplying one ref per line to the hook. This way a single hook invocation can obtain an infinite amount of ref data, without bumping into any operating system limits. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Split back out update_hook handling in receive-packLibravatar Shawn O. Pearce1-2/+24
Since we have decided to change the calling conventions for the pre-receive and post-receive hooks to take the ref data on stdin rather than on the command line we cannot use the same logic to invoke the update hook anymore. So we take a small step backwards towards what we used to have, and create a specialized function for executing just the update hook. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Refactor run_command error handling in receive-packLibravatar Shawn O. Pearce1-19/+24
I'm pulling the error handling used to decode the result of run_command up into a new function so that I can reuse it. No changes, just a simple code movement. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>