summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2006-02-21Merge part of jc/portable branchLibravatar Junio C Hamano9-2/+57
2006-02-21git-mktree: reverse of git-ls-tree.Libravatar Junio C Hamano2-1/+138
This reads data in the format a (non recursive) ls-tree outputs and writes a tree object to the object database. The created tree object name is output to the standard output. For convenience, the input data does not need to be sorted; the command sorts the input lines internally. By request from Tommi Virtanen. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-21Merge branch 'lt/merge-tree'Libravatar Junio C Hamano2-1/+273
* lt/merge-tree: git-merge-tree: generalize the "traverse <n> trees in sync" functionality Handling large files with GIT Handling large files with GIT
2006-02-21Merge branch 'jc/ident'Libravatar Junio C Hamano8-16/+45
* jc/ident: Keep Porcelainish from failing by broken ident after making changes. Delay "empty ident" errors until they really matter. Make "empty ident" error message a bit more helpful.
2006-02-21cherry-pick/revert: error-help message rewording.Libravatar Junio C Hamano1-2/+3
It said "after fixing up, commit the result using -F .msg", but it was not clear for new people how "fix up" should be done. Hint "git-update-index <path>". We could recommend "git commit -a -F .msg" instead, but I am hesitant to give that suggestion in the blind -- you could do a cherry-pick, revert or a merge in general in a dirty working tree as long as local modifications do not overlap with the merge, but using "commit -a" would include them in the result. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20Fix fmt-merge-msg counting.Libravatar Junio C Hamano1-3/+3
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20git-svn: 0.9.1: add --version and copyright/license (GPL v2+) informationLibravatar Eric Wong1-2/+11
Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20contrib/git-svn: add Makefile, test, and associated ignoresLibravatar Eric Wong4-0/+252
Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20git-svn: fix several corner-case and rare bugs with 'commit'Libravatar Eric Wong1-60/+200
None of these were really show-stoppers (or even triggered) on most of the trees I've tracked. * Node change prevention for identically named nodes. This is a limitation of SVN, but we find the error and exit before it's passed to SVN so we don't dirty our working tree when our commit fails. git-svn will exit with an error code 1 if any of the following conditions are found: 1. a directory is removed and a file of the same name of the removed directory is created 1a. a file has its parent directory removed and the file is takes the name of the removed parent directory:: baz/zzz => baz 2. a file is removed and a directory of the same name of the removed file is created. 2a. a file is moved into a deeper directory that shares the previous name of the file:: dir/$file => dir/file/$file Since SVN cannot handle these cases, the user will have to manually split the commit into several parts. * --rmdir now handles nested/deep removals. If dir/a/b/c/d/e/file is removed, and everything else is in the dir/ hierarchy is otherwise empty, then dir/ will be deleted when file is deleted from svn and --rmdir specified. * Always assert that we have written the tree we want to write on commits. This helped me find several bugs in the symlink handling code (which as been fixed). * Several symlink handling fixes. We now refuse to set permissions on symlinks. We also always unlink a file if we're going to overwrite it. * Apply changes in a pre-determined order, so we always have rename from locations handy before we delete them. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20contrib/git-svn.txt: add a note about renamed/copied directory supportLibravatar Eric Wong1-0/+7
Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20git-svn: change ; to && in addremove()Libravatar Eric Wong1-2/+2
Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20git-svn: remove any need for the XML::Simple dependencyLibravatar Eric Wong1-49/+35
XML::Simple was originally required back when I made svn-arch-mirror because I needed to explictly track renames with Arch. Then I carried it over to git-svn because I was afraid somebody could commit an svn log message that could throw off a non-XML log parser. Then I noticed the <n> lines column in the header. So, no more XML :) Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20git-svn: Allow for more argument types for commit (from..to)Libravatar Eric Wong2-4/+11
Allow 'from..to' notation from the command line. More liberal sha1 parsing when reading from stdin no longer requires the sha1 to be the first character, so a leading 'commit ' string is OK. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20git-svn: allow --find-copies-harder and -l<num> to be passed on commitLibravatar Eric Wong2-2/+15
Both of these options are passed directly to git-diff-tree when committing to a SVN repository. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20git-svn: fix a typo in defining the --no-stop-on-copy optionLibravatar Eric Wong1-1/+1
Just a typo, I doubt anybody would use (and I highly recommend not using) this option anyways. But you never know... Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-19Merge branch 'jc/merge-msg'Libravatar Junio C Hamano1-11/+19
* jc/merge-msg: fmt-merge-msg: do not add excess newline at the end. fmt-merge-msg: say which branch things were merged into unless 'master'
2006-02-19Merge branch 'jc/mv'Libravatar Junio C Hamano1-0/+9
* jc/mv: Allow git-mv to accept ./ in paths.
2006-02-19fmt-merge-msg: do not add excess newline at the end.Libravatar Junio C Hamano1-0/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-19Documentation: fix typo in rev-parse --short option description.Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Allow git-mv to accept ./ in paths.Libravatar Junio C Hamano1-0/+9
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Optionally work without pythonLibravatar Johannes Schindelin7-1/+32
In some setups (notably server setups) you do not need that dependency. Gracefully handle the absence of python when NO_PYTHON is defined. Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Merge fixes up to GIT 1.2.2Libravatar Junio C Hamano10-33/+122
2006-02-18fmt-merge-msg: say which branch things were merged into unless 'master'Libravatar Junio C Hamano1-11/+18
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Keep Porcelainish from failing by broken ident after making changes.Libravatar Junio C Hamano4-1/+13
"empty ident not allowed" error makes commit-tree fail, so we are already safer in that we would not end up with commit objects that have bogus names on the author or committer fields. However, before commit-tree is called there are already changes made to the index file and the working tree. The operation can be resumed after fixing the environment problem, but when this triggers to a newcomer with unusable gecos, the first question becomes "what did I lose and how would I recover". This patch modifies some Porcelainish commands to verify GIT_COMMITTER_IDENT as soon as we know we are going to make some commits before doing much damage to prevent confusion. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Delay "empty ident" errors until they really matter.Libravatar Junio C Hamano4-29/+32
Previous one warned people upfront to encourage fixing their environment early, but some people just use repositories and git tools read-only without making any changes, and in such a case there is not much point insisting on them having a usable ident. This round attempts to move the error until either "git-var" asks for the ident explicitly or "commit-tree" wants to use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Fix retries in git-cvsimportLibravatar Martin Mares1-8/+5
Fixed a couple of bugs in recovering from broken connections: The _line() method now returns undef correctly when the connection is broken instead of falling off the function and returning garbage. Retries are now reported to stderr and the eventual partially downloaded file is discarded instead of being appended to. The "Server gone away" test has been removed, because it was reachable only if the garbage return bug bit. Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18archimport: remove files from the index before adding/updatingLibravatar Eric Wong1-15/+13
This fixes a bug when importing where a directory gets removed/renamed but is immediately replaced by a file of the same name in the same changeset. This fix only applies to the accurate (default) strategy the moment. This patch should also fix the fast strategy if/when it is updated to handle the cases that would've triggered this bug. This bug was originally found in git-svn, but I remembered I did the same thing with archimport as well. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Add an Emacs interface in contrib.Libravatar Alexandre Julliard1-0/+956
This is an Emacs interface for git. The user interface is modeled on pcl-cvs. It has been developed on Emacs 21 and will probably need some tweaking to work on XEmacs. The basic command is 'M-x git-status' which displays a buffer listing modified files in the selected project tree. In that buffer the following features are supported: - add/remove files - list unknown files - commit marked files - manage .gitignore - commit merges based on MERGE_HEAD - revert files to the HEAD version - resolve conflicts with smerge or ediff - diff files against HEAD/base/mine/other or combined diff - get a log of the revisions for specified files There are plenty of unimplemented features too, see the TODO list at the top of the file... Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Make "empty ident" error message a bit more helpful.Libravatar Junio C Hamano1-0/+14
It appears that some people who did not care about having bogus names in their own commit messages are bitten by the recent change to require a sane environment [*1*]. While it was a good idea to prevent people from using bogus names to create commits and doing sign-offs, the error message is not very informative. This patch attempts to warn things upfront and hint people how to fix their environments. [Footnote] *1* The thread is this one. http://marc.theaimsgroup.com/?t=113868084800004 Especially this message. http://marc.theaimsgroup.com/?m=113932830015032 Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18Merge branch 'jc/topo'Libravatar Junio C Hamano5-9/+29
* jc/topo: topo-order: make --date-order optional.
2006-02-18Merge branch 'jc/rebase-limit'Libravatar Junio C Hamano1-18/+71
* jc/rebase-limit: rebase: allow rebasing onto different base.
2006-02-18gitview: typofixLibravatar Aneesh Kumar K.V1-1/+1
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
2006-02-18git-svn: remove files from the index before adding/updatingLibravatar Eric Wong1-6/+5
This fixes a bug when importing where a directory gets removed/renamed but is immediately replaced by a file of the same name in the same revision. Signed-off-by: Eric Wong <normalperson@yhbt.net>
2006-02-17Make git-reset delete empty directoriesLibravatar Shawn Pearce2-0/+66
When git-reset --hard is used and a subdirectory becomes empty (as it contains no tracked files in the target tree) the empty subdirectory should be removed. This matches the behavior of git-checkout-index and git-read-tree -m which would not have created the subdirectory or would have deleted it when updating the working directory. Subdirectories which are not empty will be left behind. This may happen if the subdirectory still contains object files from the user's build process (for example). [jc: simplified the logic a bit, while keeping the test script.]
2006-02-17Document --short and --git-dir in git-rev-parse(1)Libravatar Jonas Fonseca1-0/+8
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
2006-02-17git-rev-parse: Fix --short= option parsingLibravatar Jonas Fonseca1-3/+3
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
2006-02-17Support IrixLibravatar Johannes Schindelin1-0/+10
Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Optionally support old diffsLibravatar Johannes Schindelin2-0/+14
Some versions of diff do not correctly detect a missing new-line at the end of the file under certain circumstances. When defining NO_ACCURATE_DIFF, work around this bug. Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Fix cpio callLibravatar Johannes Schindelin1-1/+1
To some cpio's, -a and -m options are mutually exclusive. Use only -m. Signed-off-by: Johannes E. Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Prevent git-upload-pack segfault if object cannot be foundLibravatar Carl Worth2-1/+6
Signed-off-by: Carl Worth <cworth@cworth.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Abstract test_create_repo out for use in tests.Libravatar Carl Worth1-6/+17
Signed-off-by: Carl Worth <cworth@cworth.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Trap exit to clean up created directory if clone fails.Libravatar Carl Worth1-0/+4
Signed-off-by: Carl Worth <cworth@cworth.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17SubmittingPatches: note on whitespacesLibravatar Junio C Hamano1-11/+19
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Add a README for gitviewLibravatar Aneesh Kumar K.V1-0/+38
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Add contrib/README.Libravatar Junio C Hamano1-0/+44
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17git-tag: -l to list tags (usability).Libravatar Junio C Hamano2-2/+22
git-tag -l lists all tags, and git-tag -l <pattern> filters the result with <pattern>. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17Add contrib/gitview from Aneesh.Libravatar Aneesh Kumar1-0/+992
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17git-svn: ensure fetch always works chronologically.Libravatar Eric Wong1-3/+4
We run svn log against a URL without a working copy for the first fetch, so we end up a log that's sorted from highest to lowest. That's bad, we always want lowest to highest. Just default to --revision 0:HEAD now if -r isn't specified for the first fetch. Also sort the revisions after we get them just in case somebody accidentally reverses the argument to --revision for whatever reason. Thanks again to Emmanuel Guerin for helping me find this. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-17git-svn: fix revision order when XML::Simple is not loadedLibravatar Eric Wong1-3/+3
Thanks to Emmanuel Guerin for finding the bug. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-16Introducing contrib/git-svn.Libravatar Eric Wong2-0/+978