summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2006-12-13Merge branch 'jc/commit-careful'Libravatar Junio C Hamano2-0/+4
* jc/commit-careful: git-commit: show --summary after successful commit.
2006-12-13Merge branch 'ap/clone-origin'Libravatar Junio C Hamano1-1/+3
* ap/clone-origin: Explicitly add the default "git pull" behaviour to .git/config on clone
2006-12-13Merge branch 'jc/numstat'Libravatar Junio C Hamano1-1/+4
* jc/numstat: diff --numstat: show binary with '-' to match "apply --numstat"
2006-12-13Merge branch 'rr/cvsexportcommit'Libravatar Junio C Hamano2-166/+145
* rr/cvsexportcommit: Make cvsexportcommit work with filenames with spaces and non-ascii characters.
2006-12-13Merge branch 'ap/branch'Libravatar Junio C Hamano1-5/+87
* ap/branch: branch --color: change default color selection. Colourise git-branch output
2006-12-13branch --color: change default color selection.Libravatar Junio C Hamano1-2/+2
Showing local and remote branches in green and red was simply overkill, as all we wanted was to make it easy to tell them apart (local ones can be built on top by committing, but the remote tracking ones can't). Use plain coloring for local branches and paint remotes in red. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13Merge branch 'js/merge'Libravatar Junio C Hamano19-179/+715
* js/merge: merge-recursive: add/add really is modify/modify with an empty base Get rid of the dependency on RCS' merge program merge-file: support -p and -q; fix compile warnings Add builtin merge-file, a minimal replacement for RCS merge xdl_merge(): fix and simplify conflict handling xdl_merge(): fix thinko xdl_merge(): fix an off-by-one bug merge-recursive: use xdl_merge(). xmerge: make return value from xdl_merge() more usable. xdiff: add xdl_merge()
2006-12-13send-pack: tighten checks for remote namesLibravatar Junio C Hamano2-1/+22
"git push $URL HEAD~6" created a bogus ref HEAD~6 immediately under $GIT_DIR of the remote repository. While we should keep refspecs that have arbitrary extended SHA-1 expression on the source side working (e.g. "HEAD~6:refs/tags/yesterday"), we should not create bogus ref on the other end. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13git-push: accept tag <tag> as advertised.Libravatar Junio C Hamano1-5/+30
The documentation talked about "git push $URL tag <tag>" as a short-hand for refs/tags/<tag>:refs/tags/<tag> for a long time but that was never the case (the short-hand was for "git fetch"). Instead of fixing the documentation, just add a bit of code to match it since it is easy to do and would make it more consistent. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13spurious .sp in manpagesLibravatar Junio C Hamano1-0/+14
This is just a random hack to work around problems people seem to be seeing in manpage backend of xmlto (it appears we are getting ".sp" at the end of line without line break). Could people test this out? Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13git merge: reword failure message.Libravatar Junio C Hamano1-1/+8
99.9999% of the time, the command is used with a single strategy; after a merge failure, saying "No strategy handled the merge" is technically correct, but there is no point stressing we tried and failed all the possibilities the user has given. Just say that it failed. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13Remove uncontested renamed files during merge.Libravatar Shawn Pearce2-1/+98
Prior to 65ac6e9c3f47807cb603af07a6a9e1a43bc119ae we deleted a file from the working directory during a merge if the file existed before the merge started but was renamed by the branch being merged in. This broke in 65ac6e as git-merge-recursive did not actually update the working directory on an uncontested rename. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13Merge branch 'maint'Libravatar Junio C Hamano0-0/+0
* maint: git-svn: correctly display fatal() error messages git-svn: exit with status 1 for test failures Conflicts: git-svn.perl nothing to commit
2006-12-13git-svn: correctly display fatal() error messagesLibravatar Eric Wong1-1/+1
If I wanted to print $@, I'd pass $@ to fatal(). This looks like a stupid typo on my part. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13git-svn: exit with status 1 for test failuresLibravatar Eric Wong1-8/+12
Some versions of the SVN libraries cause die() to exit with 255, and 40cf043389ef4cdf3e56e7c4268d6f302e387fa0 tightened up test_expect_failure to reject return values >128. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13Allow subcommand.color and color.subcommand color configurationLibravatar Andy Parkins6-12/+15
While adding colour to the branch command it was pointed out that a config option like "branch.color" conflicts with the pre-existing "branch.something" namespace used for specifying default merge urls and branches. The suggested solution was to flip the order of the components to "color.branch", which I did for colourising branch. This patch does the same thing for - git-log (color.diff) - git-status (color.status) - git-diff (color.diff) - pager (color.pager) I haven't removed the old config options; but they should probably be deprecated and eventually removed to prevent future namespace collisions. I've done this deprecation by changing the documentation for the config file to match the new names; and adding the "color.XXX" options to contrib/completion/git-completion.bash. Unfortunately git-svn reads "diff.color" and "pager.color"; which I don't like to change unilaterally. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-13git-push: document removal of remote ref with :<dst> pathspecLibravatar Junio C Hamano1-6/+9
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12merge-recursive: add/add really is modify/modify with an empty baseLibravatar Johannes Schindelin2-30/+26
Unify the handling for cases C (add/add) and D (modify/modify). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12Merge branch 'master' into js/mergeLibravatar Junio C Hamano31-363/+675
* master: (42 commits) git-svn: correctly handle packed-refs in refs/remotes/ add test case for recursive merge git-svn: correctly display fatal() error messages git-svn: allow dcommit to take an alternate head git-svn: enable logging of information not supported by git Clarify fetch error for missing objects. Move Fink and Ports check to after config file shortlog: fix segfault on empty authorname shortlog: remove "[PATCH]" prefix from shortlog output Make sure the empty tree exists when needed in merge-recursive. Don't use memcpy when source and dest. buffers may overlap no need to install manpages as executable Documentation: simpler shared repository creation shortlog: fix segfault on empty authorname Add branch.*.merge warning and documentation update Fix perl/ build. git-svn: use do_switch for --follow-parent if the SVN library supports it Fix documentation copy&paste typo git-svn: extra error check to ensure we open a file correctly Documentation: update git-clone man page with new behavior ...
2006-12-12Get rid of the dependency on RCS' merge programLibravatar Johannes Schindelin8-89/+20
Now that we have git-merge-file, an RCS merge lookalike, we no longer need it. So long, merge, and thanks for all the fish! Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12git-svn: correctly handle packed-refs in refs/remotes/Libravatar Eric Wong1-1/+9
We now use git-rev-parse universally to read refs, instead of our own file_to_s function (which I plan on removing). Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12Merge branch 'maint'Libravatar Junio C Hamano2-19/+23
* maint: Clarify fetch error for missing objects. Move Fink and Ports check to after config file Conflicts: Makefile
2006-12-12add test case for recursive mergeLibravatar Junio C Hamano1-0/+70
This test case is based on the bug report by Shawn Pearce. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12git-svn: correctly display fatal() error messagesLibravatar Eric Wong1-1/+1
If I wanted to print $@, I'd pass $@ to fatal(). This looks like a stupid typo on my part. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12git-svn: allow dcommit to take an alternate headLibravatar Eric Wong2-7/+10
Previously dcommit would unconditionally commit all patches up-to and including the current HEAD. Now if an optional command-line argument is specified, it will only commit up to the specified revision. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12git-svn: enable logging of information not supported by gitLibravatar Eric Wong1-18/+184
The changes are now tracked in $GIT_DIR/svn/$GIT_SVN_ID/untracked.log Information in the untracked.log include: * the addition and removal of empty directories (changes of these will also warn the user) * file and directory property changes, including (but not limited to) svk:merge and svn:externals * revision properties (revprops) are also tracked * users will be warned of 'absent' file and directories (if users are forbidden access) Fields in entries are separated by spaces; "unsafe" characters are URI-encoded so that each entry takes exactly one line. There is currently no automated parser for dealing with the data in untracked.log, but it should be possible to write one to create empty directories on checkout and manage externals/subprojects. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12Clarify fetch error for missing objects.Libravatar Alex Riesen1-7/+8
Otherwise there're such things like: Cannot obtain needed none 9a6e87b60dbd2305c95cecce7d9d60f849a0658d while processing commit 0000000000000000000000000000000000000000. which while looks weird. What is the none needed for? Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12Move Fink and Ports check to after config fileLibravatar Brian Gernhardt1-12/+15
Putting NO_FINK or NO_DARWIN_PORTS in config.mak is ignored because the checks are done before the config is included. Signed-off-by: Brian Gernhardt <benji@silverinsanity.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-12Colourise git-branch outputLibravatar Andy Parkins1-5/+87
I wanted to have a visual indication of which branches are local and which are remote in git-branch -a output; however Junio was concerned that someone might be using the output in a script. This patch addresses the problem by colouring the git-branch output - which in "auto" mode won't be activated. I've based it off the colouring code for builtin-diff.c; which means there is a branch color configuration variable that needs setting to something before the color will appear. The colour parameter is "color.branch" rather than "branch.color" to avoid clashing with the default namespace for default branch merge definitions. This patch chooses green for local, red for remote and bold green for current. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-11diff --numstat: show binary with '-' to match "apply --numstat"Libravatar Junio C Hamano1-1/+4
This changes the --numstat output for binary files from "0 0" to "- -" to match what "apply --numstat" does. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-11Make cvsexportcommit work with filenames with spaces and non-ascii characters.Libravatar Robin Rosenberg2-166/+145
This patch uses git-apply to do the patching which simplifies the code a lot and also uses one pass to git-diff. git-apply gives information on added, removed files as well as which files are binary. Removed the test for checking for matching binary files when deleting them since git-apply happily deletes the file. This is matter of taste since we allow some fuzz for text patches also. Error handling was cleaned up, but not much tested. Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-11shortlog: fix segfault on empty authornameLibravatar Junio C Hamano1-1/+2
The old code looked backwards from the email address to parse the name, allowing an arbitrary number of spaces between the two. However, in the case of no name, we looked back too far to the 'author' (or 'Author:') header. The bug was triggered by commit febf7ea4bed from linux-2.6. Jeff King originally fixed it by looking back only one character; Johannes Schindelin pointed out that we could try harder while at it to cope with commits with broken headers. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-11shortlog: remove "[PATCH]" prefix from shortlog outputLibravatar Junio C Hamano1-2/+8
Originally noticed by Nicolas Pitre; the real cause was the code was prepared to deal with [PATCH] (and [PATCH n/m whatever]) prefixes but forgot that the string can be indented while acting as a filter. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-11Merge branch 'maint'Libravatar Junio C Hamano3-4/+4
* maint: Make sure the empty tree exists when needed in merge-recursive. Don't use memcpy when source and dest. buffers may overlap no need to install manpages as executable
2006-12-11Make sure the empty tree exists when needed in merge-recursive.Libravatar Shawn O. Pearce1-1/+1
There are some baseless merge cases where git-merge-recursive will try to compare one of the branches against the empty tree. However most projects won't have the empty tree object in their object database as Git does not normally create empty tree objects. If the empty tree object is missing then the merge process will die, as it cannot load the object from the database. The error message may make the user think that their database is corrupt when its actually not. So instead we should just create the empty tree object whenever it is needed. If the object already exists as a loose object then no harm done. Otherwise that loose object will be pruned away later by either git-prune or git-prune-packed. Thanks goes to Junio for suggesting this fix. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-11Don't use memcpy when source and dest. buffers may overlapLibravatar Jim Meyering1-1/+1
git-index-pack can call memcpy with overlapping source and destination buffers. The patch below makes it use memmove instead. If you want to demonstrate a failure, add the following two lines + if (input_offset < input_len) + abort (); before the existing memcpy call (shown in the patch below), and then run this: (cd t; sh ./t5500-fetch-pack.sh) Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-11no need to install manpages as executableLibravatar Chris Wright1-2/+2
No need to install manpages as executable. Noticed by Ville Skytt,Ad(B. Signed-off-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-08Documentation: simpler shared repository creationLibravatar J. Bruce Fields1-13/+14
Take Johannes Schindelin's suggestions for a further simplification of the shared repository creation using git --bare init-db --shared, and for a simplified cvsimport using an existing CVS working directory. Also insert more man page references. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> cvs-migration.txt | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-08shortlog: fix segfault on empty authornameLibravatar Jeff King1-2/+2
The old code looked backwards from the email address to parse the name, allowing an arbitrary number of spaces between the two. However, in the case of no name, we looked back too far to the 'author' (or 'Author:') header. Instead, remove at most one space between name and address. The bug was triggered by commit febf7ea4bed from linux-2.6. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-08Add branch.*.merge warning and documentation updateLibravatar Josef Weidendorfer2-2/+20
This patch clarifies the meaning of the branch.*.merge option. Previously, if branch.*.merge was specified but did not match any ref, the message "No changes." was not really helpful regarding the misconfiguration. This patch adds a warning for this. Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-08Fix perl/ build.Libravatar Junio C Hamano2-1/+2
An earlier commit f848718a broke the build in perl/ directory by allowing the Makefile.PL to overwrite the now-tracked Makefile. Fix this by forcing Makefile.PL to produce its output in perl.mak as the broken commit originally intended. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-08git-svn: use do_switch for --follow-parent if the SVN library supports itLibravatar Eric Wong1-7/+39
do_switch works with the SVN Perl bindings after r22312 in the Subversion trunk. Since no released version of SVN currently supports it; we'll just autodetect it and enable its usage when a user has a recent-enough version of SVN. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-08Fix documentation copy&paste typoLibravatar Uwe Zeisberger1-1/+1
This was introduced in 45a3b12cfd3eaa05bbb0954790d5be5b8240a7b5 Signed-off-by: Uwe Kleine-K,AC6(Bnig <zeisberg@informatik.uni-freiburg.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-08git-svn: extra error check to ensure we open a file correctlyLibravatar Eric Wong1-0/+3
This may be an issue with repositories imported with commit 27a1a8014b842c0d70fdc91c68dd361ca2dfb34c or later, but before commit dad73c0bb9f33323ec1aacf560a6263f1d85f81a. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-07Documentation: update git-clone man page with new behaviorLibravatar J. Bruce Fields1-13/+12
Update git-clone man page to reflect recent changes (--use-separate-remote default and use of .git/config instead of remotes files), and rewrite introduction. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-06Merge branch 'maint'Libravatar Junio C Hamano1-0/+1
* maint: cvsserver: Avoid miscounting bytes in Perl v5.8.x
2006-12-06cvsserver: Avoid miscounting bytes in Perl v5.8.xLibravatar Martin Langhoff1-0/+1
At some point between v5.6 and 5.8 Perl started to assume its input, output and filehandles are UTF-8. This breaks the counting of bytes for the CVS protocol, resulting in the client expecting less data than we actually send, and storing truncated files. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-06change the unpack limit treshold to a saner valueLibravatar Nicolas Pitre1-1/+1
Currently the treshold is 5000. The likelihood of this value to ever be crossed for a single push is really small making it not really useful. The optimal treshold for a pure space saving on a filesystem with 4kb blocks is 3. However this is likely to create many small packs concentrating a large number of files in a single directory compared to the same objects which are spread over 256 directories when loose. This means we would need 512 objects per pack on average to approximagte the same directory cost (a pack has 2 files because of the index). But 512 is a really high value just like 5000 since most pushes are unlikely to have that many objects. So let's try with a value of 100 which should have a good balance between small pushes going to be exploded into loose objects and large pushes kept as whole packs. This is not a replacement for periodic repacks of course. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-06Documentation: reorganize cvs-migration.txtLibravatar J. Bruce Fields1-245/+104
Modify cvs-migration.txt so it explains first how to develop against a shared repository, then how to set up a shared repository, then how to import a repository from cvs. Though this seems chronologically backwards, it's still readable in this order, and it puts the more commonly needed material closer to the front. Remove the annotate/pickaxe section; perhaps it can find a place elsewhere in the future. Remove most of the "why git is better than cvs" stuff from the introduction. Add some minor clarifications, including two that have come up several times on the mailing list: 1. Recommend committing any changes before running pull. 2. Note that changes must be commited before they can be pushed. Update the clone discussion to reflect the new --use-separate-remotes default, and add a brief mention of git-cvsserver. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-12-06Explicitly add the default "git pull" behaviour to .git/config on cloneLibravatar Andy Parkins1-1/+3
Without any specification in the .git/config file, git-pull will execute "git-pull origin"; which in turn defaults to pull from the first "pull" definition for the remote, "origin". This is a difficult set of defaults to track for a new user, and it's difficult to see what tells git to do this (especially when it is actually hard-coded behaviour). To ameliorate this slightly, this patch explicitly specifies the default behaviour during a clone using the "branch" section of the config. For example, a clone of a typical repository would create a .git/config containing: [remote "origin"] url = proto://host/repo.git fetch = refs/heads/master:refs/remotes/origin/master [branch "master"] remote = origin merge = refs/heads/master The [branch "master"] section is such that there is no change to the functionality of git-pull, but that functionality is now explicitly documented. Signed-off-by: Andy Parkins <andyparkins@gmail.com>