summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* git-fetch-pack: avoid unnecessary zero packingLinus Torvalds2005-10-181-6/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If everything is up-to-date locally, we don't need to even ask for a pack-file from the remote, or try to unpack it. This is especially important for tags - since the pack-file common commit logic is based purely on the commit history, it will never be able to find a common tag, and will thus always end up re-fetching them. Especially notably, if the tag points to a non-commit (eg a tagged tree), the pack-file would be unnecessarily big, just because it cannot any most recent common point between commits for pruning. Short-circuiting the case where we already have that reference means that we avoid a lot of these in the common case. NOTE! This only matches remote ref names against the same local name, which works well for tags, but is not as generic as it could be. If we ever need to, we could match against _any_ local ref (if we have it, we have it), but this "match against same name" is simpler and more efficient, and covers the common case. Renaming of refs is common for branch heads, but since those are always commits, the pack-file generation can optimize that case. In some cases we might still end up fetching pack-files unnecessarily, but this at least avoids the re-fetching of tags over and over if you use a regular git fetch --tags ... which was the main reason behind the change. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* No funny names on cygwin...Johannes Schindelin2005-10-181-0/+3
| | | | | | | | On FAT/NTFS, filenames cannot contain tabs. So t3300-funny-names would reliably fail already when trying to create such files. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Ignore more generated filesJohannes Schindelin2005-10-181-0/+3
| | | | | | | | Since git-status now shows the "other" files, too, bring .gitignore up-to-date. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Fix cvsimport warning when called without --no-cvs-directJohannes Schindelin2005-10-181-1/+1
| | | | | | | Perl was warning that $opt_p was undefined in that case. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-checkout: revert specific paths to either index or a given tree-ish.Junio C Hamano2005-10-182-18/+103
| | | | | | | | | | When extra paths arguments are given, git-checkout reverts only those paths to either the version recorded in the index or the version recorded in the given tree-ish. This has been on the TODO list for quite a while. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Teach git-add and git-commit to handle filenames starting with '-'.Junio C Hamano2005-10-182-3/+3
| | | | | | | | | | Recent '--' fixes to "git diff" by Linus made it possible to specify filenames that start with '-'. But in order to do that, you need to be able to add and commit such file to begin with. Teach git-add and git-commit to honor the same '--' convention. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Handle "-" at beginning of filenames, part 3Linus Torvalds2005-10-181-1/+1
| | | | | | | | | This fixes the default built-in exec() of "diff" to add a "--" before the filenames, so that if a filename starts with a "-", the diff program won't think it's an option. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Teach "git diff" to handle filenames starting with '-'Linus Torvalds2005-10-182-4/+9
| | | | | | | | | | It adds "--" to the git-diff.sh scripts, to keep any filenames that start with a "-" from being confused with an option. But in order to do that, it needs to teach git-diff-files to honor "--". Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Avoid ambiguity between refname and filename in rev-parseLinus Torvalds2005-10-181-4/+8
| | | | | | | | | | | | Although it really is very convenient, not requiring explicit '-r' option to name revs is sometimes ambiguous. Usually we allow a "--" to say where a filename starts when it _is_ ambiguous. However, we fail that at times. In particular, git-rev-parse fails it. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Forward port the "funny ref avoidance" in clone and fetch from maint branch.Junio C Hamano2005-10-182-2/+6
| | | | | | | | Somehow I forgot to forward port these fixes. "git clone" from a repository prepared with the latest update-server-info would fail without this patch. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Adjust tests for not quoting SP.Junio C Hamano2005-10-181-5/+11
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Do not quote SP.Junio C Hamano2005-10-181-2/+2
| | | | | | | | | Follow the "encode minimally" principle -- our tools, including git-apply and git-status, can handle pathnames with embedded SP just fine. The only problematic ones are TAB and LF, and we need to quote the metacharacters introduced for quoting. Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-apply: remove unused --show-files flag.Junio C Hamano2005-10-182-43/+2
| | | | | | | Linus says he does not use it (and the thinking behind its initial introduction), and neither Cogito nor StGIT uses it. Signed-off-by: Junio C Hamano <junkio@cox.net>
* update-index --index-info: adjust for funny-path quoting.Junio C Hamano2005-10-181-5/+17
| | | | | | | Although the sole current user uses -z to read this, we should be prepared for somebody to feed non-z format to the command. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Add tests for funny pathnames.Junio C Hamano2005-10-181-0/+133
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Update documentation for C-style quoting.Junio C Hamano2005-10-184-2/+33
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Update git-status to new git-diff-* and git-ls-files output.Junio C Hamano2005-10-181-32/+35
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Update git-diff-* to use C-style quoting for funny pathnames.Junio C Hamano2005-10-181-40/+95
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Improve "git add" again.Junio C Hamano2005-10-182-15/+49
| | | | | | | | | | | | | | | This makes it possible to add paths that have funny characters (TAB and LF) in them, and makes adding many paths more efficient in general. New flag "--stdin" to update-index was initially added for different purpose, but it turns out to be a perfect match for feeding "ls-files --others -z" output to improve "git add". It also adds "--verbose" flag to update-index for use with "git add" command. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Update ls-files and ls-tree to use C-style quoting for funny pathnames.Junio C Hamano2005-10-182-9/+19
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Update git-apply to use C-style quoting for funny pathnames.Junio C Hamano2005-10-182-46/+186
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Functions to quote and unquote pathnames in C-style.Junio C Hamano2005-10-182-2/+175
| | | | | | | | | | | | | | Following the list discussion, define two functions, quote_c_style and unquote_c_style, to help adopting the proposed way for quoting funny pathname letters for GNU patch. The rule is described in: http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2 Currently we do not support the leading '!', but we probably should barf upon seeing it. Rule B4. is interpreted to require always 3 octal digits in \XYZ notation. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'fixes'Junio C Hamano2005-10-182-61/+68
|\
| * git-checkout-index: documentation updates.Junio C Hamano2005-10-181-13/+7
| | | | | | | | | | | | Now the behaviour of '-a' has been straightened out, document it. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * make checkout-index '-a' flag saner.Linus Torvalds2005-10-181-48/+61
| | | | | | | | | | | | | | | | | | The original semantics of pretending as if all files were specified where '-a' appeared and using only the flags given so far was too confusing. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | ref-format documentation.Junio C Hamano2005-10-173-2/+66
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Sparse-directory safety fix.Junio C Hamano2005-10-161-1/+1
| | | | | | | | | | | | | | | | This will be removed when merging the second phase of Linus' "Create object subdirectories on demand" change anyway, but the code to recreate the empty .git/objects/??/ directory was confused. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'fixes'Junio C Hamano2005-10-161-0/+7
|\|
| * whatchanged: document -m option from git-diff-tree.Junio C Hamano2005-10-161-0/+7
| | | | | | | | | | | | | | | | | | The documentation for git-whatchanged is meant to describe only the most frequently used options from git-diff-tree. Because "why doesn't it show merges" was asked more than once, we'd better describe '-m' option there. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | We do not depend on patch.Junio C Hamano2005-10-161-2/+2
| | | | | | | | | | | | | | | | | | Deb packaging claim we depend on patch, but I think we use git-apply where it matters. When a patch does not apply with git-apply, using GNU patch still is helpful sometimes. So demote it from "Depends" to "Suggests". Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'svn' of http://netz.smurf.noris.de/git/gitJunio C Hamano2005-10-165-5/+859
|\ \ | | | | | | | | | | | | | | | | | | [jc: I have my pre-commit hook enabled to catch trailing whitespaces, and fixed them up while merging.] Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | svn commit: re-word the exit-due-to-memory-leak messageMatthias Urlichs2005-10-161-1/+2
| | | | | | | | | | | | | | | | | | Reworded the exit message, as per Kalle Valo's suggestion (but shorter). Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | Makefile entry for git-svnimport contained a small typo.Kalle Valo2005-10-161-1/+1
| | | | | | | | | | | | Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: copy directoriesMatthias Urlichs2005-10-111-13/+56
| | | | | | | | | | | | | | | | | | Import SVN-copied and -referenced directories correctly. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: Add direct HTTP accessMatthias Urlichs2005-10-112-19/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some SVN repositories that are accessible through HTTP don't like when I retrieve files using SVN methods ("internal server error"). Therefore, I added an option to get the contents using (persistent) HTTP directly. This also reduces round-trip time, from two or three requests down to one. Also corrected error handling a bit. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: remove some CVS cruftMatthias Urlichs2005-10-111-35/+4
| | | | | | | | | | | | | | | | | | Some remains of CVS still lingered. Removed. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: make -s option actually optionalMatthias Urlichs2005-10-111-1/+2
| | | | | | | | | | | | | | | | | | The -s option was accidentally not optional. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: typo fixMatthias Urlichs2005-10-111-1/+1
| | | | | | | | | | | | | | | | | | Fixed a minor typo Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: get all revisionsMatthias Urlichs2005-10-101-1/+1
| | | | | | | | | | | | | | | | | | Not skipping the last revision is generally seen as Good Thing. ;-) Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: unlink downlaoded filesMatthias Urlichs2005-10-101-0/+1
| | | | | | | | | | | | | | | | | | | | | Actually removing the files that have been checked out of SVN, after checking them into git of course, is a good idea... Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: Add a loop limit optionMatthias Urlichs2005-10-102-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | The svn library has a serious memory leak. Added a new option (-l NUM) which causes git-svnimport to exit cleanly after fetching that many changes, in order to . Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: incremental importsMatthias Urlichs2005-10-101-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Incremental imports skipped a revision. Also improve interrupt safety -- ^C while writing a tag caused the tag to be skipped. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: skip initial revisionsMatthias Urlichs2005-10-102-7/+12
| | | | | | | | | | | | | | | | | | | | | Add a flag to skip initial revisions: some SVN repositories have initial setup cruft in their logs which we might want to ignore. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: Do not create empty tagsMatthias Urlichs2005-10-101-120/+125
| | | | | | | | | | | | | | | | | | If a tag is "clean", do not create a commit for it. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: Fix tagging.Matthias Urlichs2005-10-101-16/+12
| | | | | | | | | | | | | | | | | | Tagging was 100% broken. :-/ Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: remove debuggingMatthias Urlichs2005-10-101-2/+0
| | | | | | | | | | | | | | | | | | Removed debugging output used to identify the too-many-connections problem. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: wrong file open modeMatthias Urlichs2005-10-101-1/+1
| | | | | | | | | | | | | | | | | | There are multiple | characters in Unicode. Don't use the wrong one ... Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: avoid reconnectingMatthias Urlichs2005-10-101-5/+6
| | | | | | | | | | | | | | | | | | | | | Perl's eval() sets $@ to empts, not undef, when it succeeds. That caused excessive reconnect attempts. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn improt needs SVN::Core 1.2.1 or betterMatthias Urlichs2005-10-101-0/+2
| | | | | | | | | | | | | | | | | | Die with a warning if Perl's svn module is too old. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
| * | svn import: add libsvn-core-perl to Debian's control fileMatthias Urlichs2005-10-101-1/+1
| | | | | | | | | | | | | | | | | | Added libsvn-core-perl to debian/control, "Recommends:" section. Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>