summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2008-03-30diff-index: careful when inspecting work tree itemsLibravatar Junio C Hamano2-15/+56
Earlier, if you changed a staged path into a directory in the work tree, we happily ran lstat(2) on it and found that it exists, and declared that the user changed it to a gitlink. This is wrong for two reasons: (1) It may be a directory, but it may not be a submodule, and in the latter case, the change we need to report is "the blob at the path has disappeared". We need to check with resolve_gitlink_ref() to be consistent with what "git add" and "git update-index --add" does. (2) lstat(2) may have succeeded only because a leading component of the path was turned into a symbolic link that points at something that exists in the work tree. In such a case, the path itself does not exist anymore, as far as the index is concerned. This fixes these breakages in diff-index that the previous patch has exposed. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-30Add corner case tests for diff-index and diff-filesLibravatar Junio C Hamano1-0/+140
diff-index and diff-files can get confused in corner cases when an indexed blob turns into something else in the work tree. This patch adds tests to expose such breakages. The test is classified under t2XXX series instead of t4XXX series, because the ultimate objective is to fix "add -u" (and "commit -a" that shares the same issue). Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-30Silence cpio's "N blocks" output when cloning locallyLibravatar Bryan Donlan1-1/+5
Pass --quiet to cpio in git-clone to hide the (confusing) "0 blocks" message. For compatibility with operating systems which might not support GNUisms, the presence of --quiet is probed for by grepping cpio's --help output. Signed-off-by: Bryan Donlan <bdonlan@fushizen.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-30git-svn: remove redundant slashes from show-ignoreLibravatar Eric Wong1-1/+1
Jonathan Scott Duff wrote: > Recently I tried "git svn showignore" on my parrot repository and it > failed. I tracked it down to the prop_walk() sub. When it recurses, > $path has an extra / on the beginning (i.e., when it recurses, it > tries to get the props for "//apps" instead of "/apps"). I *think* > this is because $path is used in the recursive call rather than $p > (which seems to contain a properly transformed $path). Anyway, I've > attached a patch that works for me and I think is generally the right > thing. Patch-submitted-by: Jonathan Scott Duff Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-28git-p4: Handle Windows EOLs properly after removal of p4 submit template ↵Libravatar Marius Storm-Olsen1-13/+15
handling. git-p4s handling of Windows style EOL was broken after the removal of the p4 submit template handling in commit f2a6059. Fix that, and make getP4OpenedType() more robust. Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Signed-off-by: Simon Hausmann <simon@lst.de>
2008-03-27GIT 1.5.5-rc2Libravatar Junio C Hamano3-8/+3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27GIT 1.5.4.5Libravatar Junio C Hamano2-7/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27builtin-prune: protect objects listed on the command lineLibravatar Junio C Hamano2-3/+14
Finally, this resurrects the documented behaviour to protect other objects listed on the command line from getting pruned. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27builtin-prune.c: use parse_options()Libravatar Michele Ballabio1-22/+16
Using the OPT_DATE() introduced earlier, this updates builtin-prune to use parse_options(). Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27Add tests for git-pruneLibravatar Michele Ballabio1-0/+34
It seems that git prune changed behaviour with respect to revisions added from command line, probably when it became a builtin. Currently, it prints a short usage and exits: instead, it should take those revisions into account and not prune them. So add a couple of test to point this out. We'll be fixing this by switching to parse_options(), so add tests to detect bogus command line parameters as well, to keep ourselves from introducing regressions. Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27parse-options.c: introduce OPT_DATELibravatar Michele Ballabio2-0/+11
There are quite a few places that will need to call approxidate(), when they'll adopt the parse-options system, so this patch adds the function parse_opt_approxidate_cb(), used by OPT_DATE. Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27Update draft release notes for 1.5.5Libravatar Junio C Hamano1-1/+4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27Merge branch 'maint'Libravatar Junio C Hamano4-2/+30
* maint: Update draft release notes for 1.5.4.5 Documentation: clarify use of .git{ignore,attributes} versus .git/info/* t/t3800-mktag.sh: use test_must_fail rather than '!' Conflicts: t/t3800-mktag.sh
2008-03-27Update draft release notes for 1.5.4.5Libravatar Junio C Hamano1-1/+10
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27Merge branch 'jc/maint-fetch-regression-1.5.4' into maintLibravatar Junio C Hamano70-55/+1067
* jc/maint-fetch-regression-1.5.4: git-fetch test: test tracking fetch results, not just FETCH_HEAD Fix branches file configuration Tighten refspec processing
2008-03-27Documentation: clarify use of .git{ignore,attributes} versus .git/info/*Libravatar Jeff King2-0/+19
gitignore patterns can be read from three different files, while gitattributes can come from two files. Let's provide some hints to the user about the differences and how they are typically used. Suggested by Toby Corkindale, but gratuitously reworded by Jeff King. Signed-off-by: Toby Corkindale <toby.corkindale@rea-group.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-27test_must_fail: 129 is a valid error code from usage()Libravatar Junio C Hamano1-1/+1
When a git command is run under test_must_fail to make sure that the argument parser catches bogus command line, it exits with 129. We need to catch it as a valid "graceful error exit". Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26imap-send: properly error out if imap.host is not set in configLibravatar Gerrit Pape1-0/+4
If no imap host is specified in the git config, git imap-send used to try to lookup a null pointer through gethostbyname(), causing a segfault. Since setting the imap.host variable is mandatory, imap-send now properly fails with an explanatory error message. The problem has been reported by picca through http://bugs.debian.org/472632 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26t9600-cvsimport.sh: set HOME before checking for cvsps availabilityLibravatar Frank Lichtenheld1-6/+6
This actually sounds like a bug in cvsps, which requires an existing home directory when asked for the usage through -h $ HOME=/nonexistent cvsps -h Cannot create the cvsps directory '.cvsps': No such file or directory This made t9600 think that cvsps is not available if HOME did not exist, causing the tests to be skipped $ HOME=/nonexistent sh t9600-cvsimport.sh * skipping cvsimport tests, cvsps not found * passed all 0 test(s) Now t9600 sets HOME to the current working directory before checking for the availability of the cvsps program. This issue has been discovered by Marco Rodrigues, and fixed by Frank Lichtenheld through http://bugs.debian.org/471969 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26Always set *nongit_ok in setup_git_directory_gently()Libravatar SZEDER Gábor8-8/+16
setup_git_directory_gently() only modified the value of its *nongit_ok argument if we were not in a git repository. Now it will always set it to 0 when we are inside a repository. Also remove now unnecessary initializations in the callers of this function. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26t/t3800-mktag.sh: use test_must_fail rather than '!'Libravatar Brandon Casey1-2/+2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26Merge branch 'jc/maint-fetch-regression-1.5.4'Libravatar Junio C Hamano66-13/+853
* jc/maint-fetch-regression-1.5.4: git-fetch test: test tracking fetch results, not just FETCH_HEAD Fix branches file configuration Tighten refspec processing Fix the wrong output of `git-show v1.3.0~155^2~4` in documentation.
2008-03-26git-fetch test: test tracking fetch results, not just FETCH_HEADLibravatar Junio C Hamano65-7/+831
We really should have done this long time ago. Existing t5515 test was written for the specific purpose of catching regression to the contents of generated FETCH_HEAD file, but it also is a good place to make sure various fetch configurations do fetch what they intend to fetch (and nothing else). Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26Fix branches file configurationLibravatar Daniel Barkalow1-6/+22
Fetched remote branch from .git/branches/foo should fetch into refs/heads/foo. Also when partial URL is given, the fetched head should always be remote HEAD, and the result should not be stored anywhere. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26Tighten refspec processingLibravatar Daniel Barkalow5-42/+214
This changes the pattern matching code to not store the required final / before the *, and then to require each side to be a valid ref (or empty). In particular, any refspec that looks like it should be a pattern but doesn't quite meet the requirements will be found to be invalid as a fallback non-pattern. This was cherry picked from commit ef00d15 (Tighten refspec processing, 2008-03-17), and two fix-up commits 46220ca (remote.c: Fix overtight refspec validation, 2008-03-20) and 7d19da4 (refspec: allow colon-less wildcard "refs/category/*", 2008-03-25) squashed in. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26Fix the wrong output of `git-show v1.3.0~155^2~4` in documentation.Libravatar Guanqun Lu1-1/+1
Texts between ~ and ~ will be subscripted during the asciidoc translation. Signed-off-by: Guanqun Lu <Guanqun.Lu@Gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> (cherry picked from commit 0c829391cfcdc57172765322575804a7ad5f3116)
2008-03-25refspec: allow colon-less wildcard "refs/category/*"Libravatar Junio C Hamano1-7/+11
"git push --tags elsewhere" is implemented in terms of wildcarded refspec "refs/tags/*" these days, and the user wants to push the tags under the same name to the other branch. This resurrects the support for it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-25init: show "Reinit" message even in an (existing) empty repositoryLibravatar Johannes Schindelin2-2/+20
Earlier, git-init tested for a valid HEAD ref, but if the repository was empty, there was none. Instead, test for the existence of the file $GIT_DIR/HEAD. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-25Documentation/git-checkout: Update summary to reflect current abilitiesLibravatar Julian Phillips2-4/+7
For a while now, git-checkout has been more powerful than the man-page summary would suggest (the main text does describe the new features), so update the summary to hopefully better reflect the current functionality. Also update the glossary description of the word checkout. Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-24Documentation: git-tag '-m'/'-F' implies '-a'Libravatar Dirk Süsserott1-0/+7
2008-03-23builtin-remote: Fix missing newline at end of listing of pushed branchesLibravatar Johannes Sixt2-0/+7
Without this the output of 'git remote show' does not end with a new-line: bash> git remote show repo * remote repo URL: repo.or.cz:/srv/git/kdbg.git Tracked remote branches maint master mob Local branch pushed with 'git push' +master:masterbash> Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-23Fix the wrong output of `git-show v1.3.0~155^2~4` in documentation.Libravatar Guanqun Lu1-1/+1
Texts between ~ and ~ will be subscripted during the asciidoc translation. Signed-off-by: Guanqun Lu <Guanqun.Lu@Gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-23RelNotes: mention checkout/branch's --track option, tooLibravatar Johannes Schindelin1-2/+3
checkout and branch recently learnt to track local branches when branch.autosetupmerge = always, but they _also_ learnt to do that when asked explicitely with the option "--track". Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-23GIT 1.5.5-rc1Libravatar Junio C Hamano2-2/+5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-23gc --auto: raise default auto pack limit from 20 to 50Libravatar Junio C Hamano2-2/+2
Recent discussion on the list, with the improvement f7c22cc (always start looking up objects in the last used pack first, 2007-05-30) brought in, reached the concensus that the current default 20 is too low. Reference: http://thread.gmane.org/gmane.comp.version-control.git/77586 Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-23Merge branch 'git-p4' of git://repo.or.cz/git/git-p4Libravatar Junio C Hamano1-9/+14
* 'git-p4' of git://repo.or.cz/git/git-p4: git-p4: Use P4EDITOR environment variable when set git-p4: Unset P4DIFF environment variable when using 'p4 -du diff' git-p4: Optimize the fetching of data from perforce.
2008-03-22remote.c: Fix overtight refspec validationLibravatar Junio C Hamano5-49/+188
We tightened the refspec validation code in an earlier commit ef00d15 (Tighten refspec processing, 2008-03-17) per my suggestion, but the suggestion was misguided to begin with and it broke this usage: $ git push origin HEAD~12:master The syntax of push refspecs and fetch refspecs are similar in that they are both colon separated LHS and RHS (possibly prefixed with a + to force), but the similarity ends there. For example, LHS in a push refspec can be anything that evaluates to a valid object name at runtime (except when colon and RHS is missing, or it is a glob), while it must be a valid-looking refname in a fetch refspec. To validate them correctly, the caller needs to be able to say which kind of refspecs they are. It is unreasonable to keep a single interface that cannot tell which kind it is dealing with, and ask it to behave sensibly. This commit separates the parsing of the two into different functions, and clarifies the code to implement the parsing proper (i.e. splitting into two parts, making sure both sides are wildcard or neither side is). This happens to also allow pushing a commit named with the esoteric "look for that string" syntax: $ git push ../test.git ':/remote.c: Fix overtight refspec:master' Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-22fast-import: Document the effect of "merge" with no "from" in a commitLibravatar Eyvind Bernhardsen1-3/+8
The fast-import documentation currently does not document the behaviour of "merge" when there is no "from" in a commit. This patch adds a description of what happens: the commit is created with a parent, but no files. This behaviour is equivalent to "from" followed by "filedeleteall". Signed-off-by: Eyvind Bernhardsen <eyvind-git@orakel.ntnu.no> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-22Make git-svn tests behave better on OS XLibravatar Kevin Ballard1-2/+23
Give lib-git-svn.sh a few alternate paths to look for apache2. Explicitly define the LockFile so httpd will actually start under OS X Signed-off-by: Kevin Ballard <kevin@sb.org> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-22Improve description of git filter-branch.Libravatar Ralf Wildenhues1-11/+12
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-22t/t7003-filter-branch.sh: use test_must_fail rather than '!'Libravatar Brandon Casey1-6/+6
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-20Don't try and percent-escape existing percent escapes in git-svn URIsLibravatar Kevin Ballard2-1/+32
git-svn project names are percent-escaped ever since f5530b8 (git-svn: support for funky branch and project names over HTTP(S), 2007-11-11). Unfortunately this breaks the scenario where the user hands git-svn an already-escaped URI. Fix the regexp to skip over what looks like existing percent escapes, and test this scenario. Signed-off-by: Kevin Ballard <kevin@sb.org> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19remote show: do not show symbolic refsLibravatar Johannes Schindelin2-1/+14
For symbolic refs, a sane notion of being "stale" is that the ref they point to no longer exists. Since this is checked already, "remote show" does not need to show them at all. Incidentally, this fixes the issue that "HEAD" was shown as a stale ref by "remote show" in a freshly cloned repository. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19Document the sendemail.smtpserverport config variableLibravatar Kevin Ballard1-0/+3
Add sendemail.smtpserverport to the Configuration section of the git-send-email manpage. It should probably be referenced in the --smtp-server-port option as well. Signed-off-by: Kevin Ballard <kevin@sb.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19Add --reverse to the git-rev-list usage stringLibravatar Kevin Ballard1-0/+1
git-rev-list accepts --reverse, as documented in the manpage, but the usage string does not list it. Signed-off-by: Kevin Ballard <kevin@sb.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19make it easier for people who just want to get rid of 'git gc --auto'Libravatar Nicolas Pitre1-2/+9
Give a direct hint to those who feel highly annoyed by the auto gc behavior. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19builtin-gc.c: allow disabling all auto-gc'ing by assigning 0 to gc.autoLibravatar Brandon Casey1-3/+3
The gc.auto configuration variable is somewhat ambiguous now that there is also a gc.autopacklimit setting. Some users may assume that it controls all auto-gc'ing. Also, now users must set two configuration variables to zero when they want to disable autopacking. Since it is unlikely that users will want to autopack based on some threshold of pack files when they have disabled autopacking based on the number of loose objects, be nice and allow a setting of zero for gc.auto to disable all autopacking. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19Documentation/git-merge: document subtree strategy.Libravatar Miklos Vajna1-0/+7
There was already some documentation about subtree under Documentation/howto but it was missing from git-merge manpage. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19Fix tag followingLibravatar Daniel Barkalow1-0/+16
Before the second fetch-pack connection in the same process, unmark all of the objects marked in the first connection, in order that we'll list them as things we have instead of thinking we've already mentioned them. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-19Make revision limiting more robust against occasional bad commit datesLibravatar Linus Torvalds2-11/+39
The revision limiter uses the commit date to decide when it has seen enough commits to finalize the revision list, but that can get confused if there are incorrect dates far in the past on some commits. This makes the logic a bit more robust by - we always walk an extra SLOP commits from the source list even if we decide that the source list is probably all done (unless the source is entirely empty, of course, because then we really can't do anything at all) - we keep track of the date of the last commit we added to the destination list (this will *generally* be the oldest entry we've seen so far) - we compare that with the youngest entry (the first one) of the source list, and if the destination is older than the source, we know we want to look at the source. which causes occasional date mishaps to be handled cleanly. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>