Jeff King [Thu, 29 Jan 2009 08:33:02 +0000 (03:33 -0500)]
symbolic ref: refuse non-ref targets in HEAD
When calling "git symbolic-ref" it is easy to forget that
the target must be a fully qualified ref. E.g., you might
accidentally do:
$ git symbolic-ref HEAD master
Unfortunately, this is very difficult to recover from,
because the bogus contents of HEAD make git believe we are
no longer in a git repository (as is_git_dir explicitly
checks for "^refs/heads/" in the HEAD target). So
immediately trying to fix the situation doesn't work:
$ git symbolic-ref HEAD refs/heads/master
fatal: Not a git repository
and one is left editing the .git/HEAD file manually.
Furthermore, one might be tempted to use symbolic-ref to set
up a detached HEAD:
$ git symbolic-ref HEAD `git rev-parse HEAD`
which sets up an even more bogus HEAD:
$ cat .git/HEAD
ref:
1a9ace4f2ad4176148e61b5a85cd63d5604aac6d
This patch introduces a small safety valve to prevent the
specific case of anything not starting with refs/heads/ to
go into HEAD. The scope of the safety valve is intentionally
very limited, to make sure that we are not preventing any
behavior that would otherwise be valid (like pointing a
different symref than HEAD outside of refs/heads/).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 29 Jan 2009 08:30:16 +0000 (03:30 -0500)]
validate_headref: tighten ref-matching to just branches
When we are trying to determine whether a directory contains
a git repository, one of the tests we do is to check whether
HEAD is either a symlink or a symref into the "refs/"
hierarchy, or a detached HEAD.
We can tighten this a little more, though: a non-detached
HEAD should always point to a branch (since checking out
anything else should result in detachment), so it is safe to
check for "refs/heads/".
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 29 Jan 2009 08:12:52 +0000 (00:12 -0800)]
GIT 1.6.1.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 29 Jan 2009 07:56:13 +0000 (23:56 -0800)]
Merge branch 'jc/maint-format-patch-o-relative' into maint
* jc/maint-format-patch-o-relative:
Teach format-patch to handle output directory relative to cwd
Conflicts:
t/t4014-format-patch.sh
Junio C Hamano [Thu, 29 Jan 2009 07:42:57 +0000 (23:42 -0800)]
Merge branch 'bs/maint-rename-populate-filespec' into maint
* bs/maint-rename-populate-filespec:
Rename detection: Avoid repeated filespec population
Junio C Hamano [Thu, 29 Jan 2009 07:42:53 +0000 (23:42 -0800)]
Merge branch 'mh/maint-commit-color-status' into maint
* mh/maint-commit-color-status:
git-status -v: color diff output when color.ui is set
git-commit: color status output when color.ui is set
Junio C Hamano [Thu, 29 Jan 2009 07:42:41 +0000 (23:42 -0800)]
Merge branch 'nd/grep-assume-unchanged' into maint
* nd/grep-assume-unchanged:
grep: grep cache entries if they are "assume unchanged"
grep: support --no-ext-grep to test builtin grep
Junio C Hamano [Thu, 29 Jan 2009 07:42:15 +0000 (23:42 -0800)]
Merge branch 'jc/maint-ls-tree' into maint
* jc/maint-ls-tree:
Document git-ls-tree --full-tree
ls-tree: add --full-tree option
Junio C Hamano [Thu, 29 Jan 2009 07:42:10 +0000 (23:42 -0800)]
Merge branch 'np/no-loosen-prune-expire-now' into maint
* np/no-loosen-prune-expire-now:
objects to be pruned immediately don't have to be loosened
Junio C Hamano [Thu, 29 Jan 2009 07:41:56 +0000 (23:41 -0800)]
Merge branch 'mc/cd-p-pwd' into maint
* mc/cd-p-pwd:
git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X
Junio C Hamano [Thu, 29 Jan 2009 07:41:28 +0000 (23:41 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
avoid 31-bit truncation in write_loose_object
Jeff King [Thu, 29 Jan 2009 05:56:34 +0000 (00:56 -0500)]
avoid 31-bit truncation in write_loose_object
The size of the content we are adding may be larger than
2.1G (i.e., "git add gigantic-file"). Most of the code-path
to do so uses size_t or unsigned long to record the size,
but write_loose_object uses a signed int.
On platforms where "int" is 32-bits (which includes x86_64
Linux platforms), we end up passing malloc a negative size.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 28 Jan 2009 04:21:31 +0000 (20:21 -0800)]
send-pack: do not send unknown object name from ".have" to pack-objects
v1.6.1 introduced ".have" extension to the protocol to allow the receiving
side to advertise objects that are reachable from refs in the repositories
it borrows from. This was meant to be used by the sending side to avoid
sending such objects; they are already available through the alternates
mechanism.
The client side implementation in v1.6.1, which was introduced with
40c155f (push: prepare sender to receive extended ref information from the
receiver, 2008-09-09) aka v1.6.1-rc1~203^2~1, were faulty in that it did
not consider the possiblity that the repository receiver borrows from
might have objects it does not know about.
This fixes it by refraining from passing missing commits to underlying
pack-objects. Revision machinery may need to be tightened further to
treat missing uninteresting objects as non-error events, but this is an
obvious and safe fix for a maintenance release that is almost good enough.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 27 Jan 2009 23:23:46 +0000 (15:23 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
test-path-utils: Fix off by one, found by valgrind
get_sha1_basic(): fix invalid memory access, found by valgrind
Johannes Schindelin [Tue, 27 Jan 2009 23:07:36 +0000 (00:07 +0100)]
test-path-utils: Fix off by one, found by valgrind
When normalizing an absolute path, we might have to add a slash _and_ a
NUL to the buffer, so the buffer was one too small.
Let's just future proof the code and alloc PATH_MAX + 1 bytes.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Tue, 27 Jan 2009 23:07:46 +0000 (00:07 +0100)]
get_sha1_basic(): fix invalid memory access, found by valgrind
When get_sha1_basic() is passed a buffer of len 0, it should not
check if buf[len-1] is a curly bracket.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 25 Jan 2009 20:41:09 +0000 (12:41 -0800)]
GIT 1.6.1.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 24 Jan 2009 03:06:38 +0000 (19:06 -0800)]
Merge branch 'cb/maint-unpack-trees-absense' into maint
* cb/maint-unpack-trees-absense:
unpack-trees: remove redundant path search in verify_absent
unpack-trees: fix path search bug in verify_absent
unpack-trees: handle failure in verify_absent
Junio C Hamano [Sat, 24 Jan 2009 03:04:48 +0000 (19:04 -0800)]
Merge branch 'tr/maint-no-index-fixes' into maint
* tr/maint-no-index-fixes:
diff --no-index -q: fix endless loop
diff --no-index: test for pager after option parsing
diff: accept -- when using --no-index
Junio C Hamano [Sat, 24 Jan 2009 03:03:50 +0000 (19:03 -0800)]
Merge branch 'rs/maint-shortlog-foldline' into maint
* rs/maint-shortlog-foldline:
shortlog: handle multi-line subjects like log --pretty=oneline et. al. do
Junio C Hamano [Sat, 24 Jan 2009 03:02:58 +0000 (19:02 -0800)]
Merge branch 'pj/maint-ldflags' into maint
* pj/maint-ldflags:
configure clobbers LDFLAGS
Junio C Hamano [Sat, 24 Jan 2009 03:02:41 +0000 (19:02 -0800)]
Merge branch 'pb/maint-git-pm-false-dir' into maint
* pb/maint-git-pm-false-dir:
Git.pm: correctly handle directory name that evaluates to "false"
Junio C Hamano [Sat, 24 Jan 2009 03:01:32 +0000 (19:01 -0800)]
Merge branch 'js/maint-bisect-gitk' into maint
* js/maint-bisect-gitk:
bisect view: call gitk if Cygwin's SESSIONNAME variable is set
Junio C Hamano [Sat, 24 Jan 2009 03:00:43 +0000 (19:00 -0800)]
Merge branch 'js/add-not-submodule' into maint
* js/add-not-submodule:
git add: do not add files from a submodule
Junio C Hamano [Sat, 24 Jan 2009 02:59:59 +0000 (18:59 -0800)]
Merge branch 'jc/maint-format-patch' into maint
* jc/maint-format-patch:
format-patch: show patch text for the root commit
Junio C Hamano [Sat, 24 Jan 2009 02:59:26 +0000 (18:59 -0800)]
Merge branch 'am/maint-push-doc' into maint
* am/maint-push-doc:
Documentation: avoid using undefined parameters
Documentation: mention branches rather than heads
Documentation: remove a redundant elaboration
Documentation: git push repository can also be a remote
Junio C Hamano [Sat, 24 Jan 2009 02:48:14 +0000 (18:48 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
Fix Documentation for git-describe
Boyd Stephen Smith Jr [Thu, 22 Jan 2009 18:26:25 +0000 (12:26 -0600)]
Fix Documentation for git-describe
The documentation for git-describe says the default abbreviation is 8
hexadecimal digits while cache.c clearly shows DEFAULT_ABBREV set to 7.
This patch corrects the documentation.
Signed-off-by: Boyd Stephen Smith Jr <bss@iguanasuicide.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Tue, 20 Jan 2009 21:08:33 +0000 (22:08 +0100)]
Rename diff.suppress-blank-empty to diff.suppressBlankEmpty
All the other config variables use CamelCase. This config variable should
not be an exception.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Björn Steinbrink [Tue, 20 Jan 2009 15:59:57 +0000 (16:59 +0100)]
Rename detection: Avoid repeated filespec population
In diffcore_rename, we assume that the blob contents in the filespec
aren't required anymore after estimate_similarity has been called and thus
we free it. But estimate_similarity might return early when the file sizes
differ too much. In that case, cnt_data is never set and the next call to
estimate_similarity will populate the filespec again, eventually rereading
the same blob over and over again.
To fix that, we first get the blob sizes and only when the blob contents
are actually required, and when cnt_data will be set, the full filespec is
populated, once.
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Lars Noschinski [Mon, 19 Jan 2009 17:06:43 +0000 (18:06 +0100)]
shell: Document that 'cvs server' is a valid command
git-shell's man page explicitly lists all allowed commands, but 'cvs
server' was missing. Add it.
Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Anders Melchiorsen [Sun, 18 Jan 2009 14:36:58 +0000 (15:36 +0100)]
Documentation: avoid using undefined parameters
The <ref> parameter has not been introduced, so rewrite to
avoid it.
Signed-off-by: Anders Melchiorsen <mail@cup.kalibalik.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Anders Melchiorsen [Sun, 18 Jan 2009 14:36:57 +0000 (15:36 +0100)]
Documentation: mention branches rather than heads
The "matching refs" semantics works only on matching branches these days.
Instead of using "heads" which traditionally has been used more or less
interchangeably with "refs", say "branch" explicitly here.
Signed-off-by: Anders Melchiorsen <mail@cup.kalibalik.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Anders Melchiorsen [Sun, 18 Jan 2009 14:36:56 +0000 (15:36 +0100)]
Documentation: remove a redundant elaboration
The comment in parentheses is wrong, as one has to leave out both the
colon and <dst>. This situation is covered by the section a few lines
down:
A parameter <ref> without a colon pushes the <ref> from the source
repository to the destination repository under the same name.
So, just remove the parentheses.
Signed-off-by: Anders Melchiorsen <mail@cup.kalibalik.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Anders Melchiorsen [Sun, 18 Jan 2009 14:36:55 +0000 (15:36 +0100)]
Documentation: git push repository can also be a remote
This is copied from pull-fetch-param.txt and helps the reader
to not get stuck in the URL section.
Signed-off-by: Anders Melchiorsen <mail@cup.kalibalik.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 18 Jan 2009 07:04:35 +0000 (23:04 -0800)]
Update draft release notes for 1.6.1.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 18 Jan 2009 06:39:49 +0000 (22:39 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
builtin-fsck: fix off by one head count
Documentation: let asciidoc align related options
githooks.txt: add missing word
builtin-commit.c: do not remove COMMIT_EDITMSG
Christian Couder [Sun, 18 Jan 2009 03:46:09 +0000 (04:46 +0100)]
builtin-fsck: fix off by one head count
According to the man page, if "git fsck" is passed one or more heads, it
should verify connectivity and validity of only objects reachable from the
heads it is passed.
However, since
5ac0a20 (Make builtin-fsck.c use parse_options.,
2007-10-15) the command behaved as if no heads were passed, when given
only one argument.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Sat, 17 Jan 2009 15:41:41 +0000 (16:41 +0100)]
t5540: clarify that http-push does not handle packed-refs on the remote
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Sat, 17 Jan 2009 15:11:51 +0000 (16:11 +0100)]
http-push: when making directories, have a trailing slash in the path name
The function lock_remote() sends MKCOL requests to make leading
directories; However, if it does not put a forward slash '/' at the end of
the path, the server sends a 301 redirect.
By leaving the '/' in place, we can avoid this additional step.
Incidentally, at least one version of Curl (7.16.3) does not resend
credentials when it follows a 301 redirect, so this commit also fixes
a bug.
Original patch by Tay Ray Chuan <rctay89@gmail.com>.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Sat, 17 Jan 2009 15:36:26 +0000 (16:36 +0100)]
http-push: fix off-by-path_len
When getting the result of remote_ls(), we were advancing the variable
"path" to the relative path inside the repository.
However, then we went on to malloc a bogus amount of memory: we were
subtracting the prefix length _again_, quite possibly getting something
negative, which xmalloc() interprets as really, really much.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Markus Heidelberg [Fri, 16 Jan 2009 21:42:33 +0000 (22:42 +0100)]
Documentation: let asciidoc align related options
Command line options can share the same paragraph of description, if
they are related or synonymous. In these cases they should be written
among each other, so that asciidoc can format them itself.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stephan Beyer [Fri, 16 Jan 2009 20:36:06 +0000 (21:36 +0100)]
githooks.txt: add missing word
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stephan Beyer [Fri, 16 Jan 2009 19:40:05 +0000 (20:40 +0100)]
builtin-commit.c: do not remove COMMIT_EDITMSG
git-commit tries to remove the file ./COMMIT_EDITMSG instead of
$GIT_DIR/COMMIT_EDITMSG after commit preparation (e.g. running
hooks, launching editor).
This behavior exists since
f5bbc3225c4b07 "Port git commit to C".
Some test cases (e.g. t/t7502-commit.sh) rely on the existence of
$GIT_DIR/COMMIT_EDITMSG after committing and, I guess, many people
are used to it. So it is best not to remove it.
This patch just removes the removal of COMMIT_EDITMSG.
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 15 Jan 2009 22:33:54 +0000 (14:33 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
t3404: Add test case for auto-amending only edited commits after "edit"
t3404: Add test case for aborted --continue after "edit"
t3501: check that commits are actually done
Stephan Beyer [Thu, 15 Jan 2009 12:56:16 +0000 (13:56 +0100)]
t3404: Add test case for auto-amending only edited commits after "edit"
Add a test case for the bugfix introduced by commit
c14c3c82d
"git-rebase--interactive: auto amend only edited commit".
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stephan Beyer [Thu, 15 Jan 2009 12:56:15 +0000 (13:56 +0100)]
t3404: Add test case for aborted --continue after "edit"
Add a test case for the bugfix introduced by commit
8beb1f33d
"git-rebase-interactive: do not squash commits on abort".
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stephan Beyer [Thu, 15 Jan 2009 13:03:17 +0000 (14:03 +0100)]
t3501: check that commits are actually done
The basic idea of t3501 is to check whether revert
and cherry-pick works on renamed files.
But as there is no pure cherry-pick/revert test, it is
good to also check if commits are actually done in that
scenario.
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 15 Jan 2009 06:43:04 +0000 (22:43 -0800)]
Update draft release notes to 1.6.1.1
Junio C Hamano [Thu, 15 Jan 2009 06:34:05 +0000 (22:34 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
fix handling of multiple untracked files for git mv -k
add test cases for "git mv -k"
Miklos Vajna [Thu, 15 Jan 2009 00:33:19 +0000 (01:33 +0100)]
Make t3411 executable
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Wed, 14 Jan 2009 17:03:22 +0000 (18:03 +0100)]
fix handling of multiple untracked files for git mv -k
The "-k" option to "git mv" should allow specifying multiple untracked
files. Currently, multiple untracked files raise an assertion if they
appear consecutively as arguments. Fix this by decrementing the loop
index after removing one entry from the array of arguments.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Wed, 14 Jan 2009 17:03:21 +0000 (18:03 +0100)]
add test cases for "git mv -k"
Add test cases for ignoring nonexisting and untracked files using the -k
option to "git mv". There is one known breakage related to multiple
untracked files specfied as consecutive arguments.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 14 Jan 2009 07:10:50 +0000 (23:10 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
fast-import: Cleanup mode setting.
Git.pm: call Error::Simple() properly
Felipe Contreras [Wed, 14 Jan 2009 01:37:07 +0000 (03:37 +0200)]
fast-import: Cleanup mode setting.
"S_IFREG | mode" makes only sense for 0644 and 0755.
Even though doing (S_IFREG | mode) may not hurt when mode is any other
supported value, that is only true because S_IFREG mode bit happens to
be already on for S_IFLNK or S_IFGITLINK.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jay Soffian [Tue, 13 Jan 2009 22:41:35 +0000 (17:41 -0500)]
Git.pm: call Error::Simple() properly
The error message to Error::Simple() must be passed as a single argument.
Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 13 Jan 2009 09:15:49 +0000 (01:15 -0800)]
Merge branch 'kk/maint-http-push' into maint
* kk/maint-http-push:
http-push: support full URI in handle_remote_ls_ctx()
Junio C Hamano [Tue, 13 Jan 2009 09:15:19 +0000 (01:15 -0800)]
Merge branch 'js/maint-merge-recursive-r-d-conflict' into maint
* js/maint-merge-recursive-r-d-conflict:
merge-recursive: mark rename/delete conflict as unmerged
Junio C Hamano [Tue, 13 Jan 2009 09:13:56 +0000 (01:13 -0800)]
Merge branch 'cb/maint-merge-recursive-fix' into maint
* cb/maint-merge-recursive-fix:
merge-recursive: do not clobber untracked working tree garbage
modify/delete conflict resolution overwrites untracked file
Conflicts:
builtin-merge-recursive.c
Junio C Hamano [Tue, 13 Jan 2009 08:56:40 +0000 (00:56 -0800)]
Merge branch 'ap/maint-apply-modefix' into maint
* ap/maint-apply-modefix:
builtin-apply: prevent non-explicit permission changes
Junio C Hamano [Tue, 13 Jan 2009 08:40:19 +0000 (00:40 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
Avoid spurious error messages on error mistakes.
contrib/examples/README: give an explanation of the status of these files
Pierre Habouzit [Mon, 12 Jan 2009 23:09:36 +0000 (00:09 +0100)]
Avoid spurious error messages on error mistakes.
Prior to that, if the user chose "squash" as a first action, the stderr
looked like:
grep: /home/madcoder/dev/scm/git/.git/rebase-merge/done: No such file or directory
Cannot 'squash' without a previous commit
Now the first line is gone.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
jidanni@jidanni.org [Tue, 13 Jan 2009 01:19:42 +0000 (09:19 +0800)]
contrib/examples/README: give an explanation of the status of these files
We attempt to give an explanation of the status of the files in this
directory.
Signed-off-by: jidanni <jidanni@jidanni.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 12 Jan 2009 23:18:02 +0000 (15:18 -0800)]
Teach format-patch to handle output directory relative to cwd
Without any explicit -o parameter, we correctly avoided putting the
resulting patch output to the toplevel. We should do the same when
the user gave a relative pathname to be consistent with this case.
Noticed by Cesar Eduardo Barros.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 12 Jan 2009 07:27:29 +0000 (23:27 -0800)]
Merge branch 'mh/maint-sendmail-cc-doc' into maint
* mh/maint-sendmail-cc-doc:
doc/git-send-email: mention sendemail.cc config variable
Junio C Hamano [Mon, 12 Jan 2009 07:24:42 +0000 (23:24 -0800)]
Merge branch 'jc/maint-do-not-switch-to-non-commit' into maint
* jc/maint-do-not-switch-to-non-commit:
git checkout: do not allow switching to a tree-ish that is not a commit
jidanni@jidanni.org [Mon, 12 Jan 2009 03:05:54 +0000 (11:05 +0800)]
Documentation/git-push.txt: minor: compress one option
Signed-off-by: jidanni <jidanni@jidanni.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 10 Jan 2009 20:41:33 +0000 (12:41 -0800)]
format-patch: show patch text for the root commit
Even without --root specified, if the range given on the command line
happens to include a root commit, we should include its patch text in the
output.
This fix deliberately ignores log.showroot configuration variable because
"format-patch" and "log -p" can and should behave differently in this
case, as the former is about exporting a part of your history in a form
that is replayable elsewhere and just giving the commit log message
without the patch text does not make any sense for that purpose.
Noticed and fix originally attempted by Nathan W. Panike; credit goes to
Alexander Potashev for injecting sanity to my initial (broken) fix that
used the value from log.showroot configuration, which was misguided.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Markus Heidelberg [Thu, 8 Jan 2009 18:53:05 +0000 (19:53 +0100)]
git-status -v: color diff output when color.ui is set
When using "git status -v", the diff output wasn't colored, even though
color.ui was set. Only when setting color.diff it worked.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Markus Heidelberg [Thu, 8 Jan 2009 18:53:01 +0000 (19:53 +0100)]
git-commit: color status output when color.ui is set
When using "git commit" and there was nothing to commit (the editor
wasn't launched), the status output wasn't colored, even though color.ui
was set. Only when setting color.status it worked.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Wed, 7 Jan 2009 11:15:30 +0000 (12:15 +0100)]
diff --no-index -q: fix endless loop
We forgot to move to the next argument when parsing -q, getting stuck
in an endless loop.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Tue, 6 Jan 2009 23:56:03 +0000 (00:56 +0100)]
diff --no-index: test for pager after option parsing
We need to parse options before we can see if --exit-code was
provided.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Rast [Tue, 6 Jan 2009 18:53:32 +0000 (19:53 +0100)]
diff: accept -- when using --no-index
Accept -- as an "end of options" marker even when using --no-index.
Previously, the -- triggered a "normal" index/tree diff and subsequently
failed because of the unrecognized (in that mode) --no-index.
Note that the second loop can treat '--' as a normal option, because
the preceding checks ensure it is the third-to-last argument.
While at it, fix the parsing of "-q" option in --no-index mode as well.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 7 Jan 2009 06:12:35 +0000 (22:12 -0800)]
Merge branch 'maint-1.6.0' into maint
* maint-1.6.0:
README: tutorial.txt is now called gittutorial.txt
Junio C Hamano [Wed, 7 Jan 2009 06:12:30 +0000 (22:12 -0800)]
Merge branch 'maint-1.5.6' into maint-1.6.0
* maint-1.5.6:
README: tutorial.txt is now called gittutorial.txt
Joey Hess [Wed, 7 Jan 2009 04:23:37 +0000 (23:23 -0500)]
README: tutorial.txt is now called gittutorial.txt
Signed-off-by: Joey Hess <joey@gnu.kitenet.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Tue, 6 Jan 2009 20:41:06 +0000 (21:41 +0100)]
shortlog: handle multi-line subjects like log --pretty=oneline et. al. do
The commit message parser of git shortlog used to treat only the first
non-empty line of the commit message as the subject. Other log commands
(e.g. --pretty=oneline) show the whole first paragraph instead (unwrapped
into a single line).
For consistency, this patch borrows format_subject() from pretty.c to
make shortlog do the same.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Paul Jarc [Mon, 5 Jan 2009 02:27:41 +0000 (21:27 -0500)]
configure clobbers LDFLAGS
In a couple of tests, configure clobbers the LDFLAGS value set by the
caller. This patch fixes it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Thu, 1 Jan 2009 20:54:33 +0000 (21:54 +0100)]
unpack-trees: remove redundant path search in verify_absent
Since the only caller, verify_absent, relies on the fact that o->pos
points to the next index entry anyways, there is no need to recompute
its position.
Furthermore, if a nondirectory entry were found, this would return too
early, because there could still be an untracked directory in the way.
This is currently not a problem, because verify_absent is only called
if the index does not have this entry.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Thu, 1 Jan 2009 20:54:32 +0000 (21:54 +0100)]
unpack-trees: fix path search bug in verify_absent
Commit
0cf73755 (unpack-trees.c: assume submodules are clean during
check-out) changed an argument to verify_absent from 'path' to 'ce',
which is however shadowed by a local variable of the same name.
The bug triggers if verify_absent is used on a tree entry, for which
the index contains one or more subsequent directories of the same
length. The affected subdirectories are removed from the index. The
testcase included in this commit bisects to
55218834 (checkout: do not
lose staged removal), which reveals the bug in this case, but is
otherwise unrelated.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Thu, 1 Jan 2009 20:54:31 +0000 (21:54 +0100)]
unpack-trees: handle failure in verify_absent
Commit
203a2fe1 (Allow callers of unpack_trees() to handle failure)
changed the "die on error" behavior to "return failure code".
verify_absent did not handle errors returned by
verify_clean_subdirectory, however.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Henrik Austad [Mon, 5 Jan 2009 15:25:37 +0000 (16:25 +0100)]
Be consistent in switch usage for tar
tar handles switches with and witout preceding '-', but the
documentation should be consistent nonetheless.
Signed-off-by: Henrik Austad <henrik@austad.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Henrik Austad [Mon, 5 Jan 2009 15:25:36 +0000 (16:25 +0100)]
Use capitalized names where appropriate
The Linux kernel and Emacs are both spelled capitalized
Signed-off-by: Henrik Austad <henrik@austad.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Marcel M. Cary [Tue, 30 Dec 2008 15:10:24 +0000 (07:10 -0800)]
git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X
On Mac OS X and possibly BSDs, /bin/pwd reads PWD from the environment if
available and shows the logical path by default rather than the physical
one.
Unset PWD before running /bin/pwd in both cd_to_toplevel and its test.
Still use the external /bin/pwd because in my Bash on Linux, the builtin
pwd prints the same result whether or not PWD is set.
Signed-off-by: Marcel M. Cary <marcel@oak.homeunix.org>
Tested-by: Wincent Colaiuta <win@wincent.com> (on Mac OS X 10.5.5)
Tested-by: Marcel Koeppen <git-dev@marzelpan.de> (on Mac OS X 10.5.6)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Fri, 2 Jan 2009 18:08:40 +0000 (19:08 +0100)]
git add: do not add files from a submodule
It comes quite as a surprise to an unsuspecting Git user that calling
"git add submodule/file" (which is a mistake, alright) _removes_
the submodule in the index, and adds the file. Instead, complain loudly.
While at it, be nice when the user said "git add submodule/" which is
most likely the consequence of tab-completion, and stage the submodule,
instead of trying to add the contents of that directory.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Fri, 2 Jan 2009 18:08:00 +0000 (19:08 +0100)]
bisect view: call gitk if Cygwin's SESSIONNAME variable is set
It seems that Cygwin sets the variable SESSIONNAME when an interactive
desktop session is running, and does not set it when you log in via ssh.
So we can use this variable to determine whether to run gitk or git log
in git bisect view.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Miklos Vajna [Sat, 3 Jan 2009 03:59:12 +0000 (04:59 +0100)]
fast-export: print usage when no options specified
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 3 Jan 2009 12:07:32 +0000 (04:07 -0800)]
git checkout: do not allow switching to a tree-ish that is not a commit
"git checkout -b newbranch $commit^{tree}" mistakenly created a new branch
rooted at the current HEAD, because in that case, the two structure fields
used to see if the command was invoked without any argument (hence it
needs to default to checking out the HEAD) were populated incorrectly.
Upon seeing a command line argument that we took as a rev, we should store
that string in new.name, even if that does not name a commit. This will
correctly trigger the existing safety logic.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Junio C Hamano [Fri, 2 Jan 2009 10:55:37 +0000 (02:55 -0800)]
builtin-apply: prevent non-explicit permission changes
A git patch that does not change the executable bit records the mode bits
on its "index" line. "git apply" used to interpret this mode exactly the
same way as it interprets the mode recorded on "new mode" line, as the
wish by the patch submitter to set the mode to the one recorded on the
line.
The reason the mode does not agree between the submitter and the receiver
in the first place is because there is _another_ commit that only appears
on one side but not the other since their histories diverged, and that
commit changes the mode. The patch has "index" line but not "new mode"
line because its change is about updating the contents without affecting
the mode. The application of such a patch is an explicit wish by the
submitter to only cherry-pick the commit that updates the contents without
cherry-picking the commit that modifies the mode. Viewed this way, the
current behaviour is problematic, even though the command does warn when
the mode of the path being patched does not match this mode, and a careful
user could detect this inconsistencies between the patch submitter and the
patch receiver.
This changes the semantics of the mode recorded on the "index" line;
instead of interpreting it as the submitter's wish to set the mode to the
recorded value, it merely informs what the mode submitter happened to
have, and the presense of the "index" line is taken as submitter's wish to
keep whatever the mode is on the receiving end.
This is based on the patch originally done by Alexander Potashev with a
minor fix; the tests are mine.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Philippe Bruhat (BooK) [Mon, 29 Dec 2008 00:25:00 +0000 (01:25 +0100)]
Git.pm: correctly handle directory name that evaluates to "false"
The repository constructor mistakenly rewrote a Directory parameter that
Perl happens to evaluate to false (e.g. "0") to ".".
Signed-off-by: Junio C Hamano <gitster@pobox.com>
jidanni@jidanni.org [Sat, 27 Dec 2008 19:49:03 +0000 (03:49 +0800)]
Documentation/git-tag.txt: minor typo and grammar fix
Signed-off-by: jidanni <jidanni@jidanni.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Pitre [Tue, 30 Dec 2008 19:45:11 +0000 (14:45 -0500)]
objects to be pruned immediately don't have to be loosened
When there is no grace period before pruning unreferenced objects, it is
pointless to push those objects in their loose form just to delete them
right away.
Also be more explicit about the possibility of using "now" in the
gc.pruneexpire config variable (needed for the above behavior to
happen).
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nanako Shiraishi [Wed, 31 Dec 2008 10:00:50 +0000 (19:00 +0900)]
Document git-ls-tree --full-tree
Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 29 Dec 2008 09:17:34 +0000 (01:17 -0800)]
Prepare for v1.6.1.1 maintenance release
Signed-off-by: Junio C Hamano <gitster@pobox.com>
jidanni@jidanni.org [Mon, 29 Dec 2008 07:03:17 +0000 (15:03 +0800)]
Documentation/diff-options.txt: unify options
Instead of listing short option (e.g. "-U<n>") as a shorthand for its
longer counterpart (e.g. "--unified=<n>"), list the synonyms together. It
saves one indirection to find what the reader wants.
Signed-off-by: jidanni <jidanni@jidanni.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Markus Heidelberg [Sun, 28 Dec 2008 23:37:25 +0000 (00:37 +0100)]
doc/git-send-email: mention sendemail.cc config variable
This variable was added in
5f8b9fc (git-send-email: add a new
sendemail.cc configuration variable, 2008-04-27), but is not yet refered
to by the documentation.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Devin Doucette [Sat, 27 Dec 2008 09:39:31 +0000 (02:39 -0700)]
gitweb: Fix export check in git_get_projects_list
When $filter was empty, the path passed to check_export_ok would
contain an extra '/', which some implementations of export_auth_hook
are sensitive to.
It makes more sense to fix this here than to handle the special case
in each implementation of export_auth_hook.
Signed-off-by: Devin Doucette <devin@doucette.cc>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Sat, 27 Dec 2008 08:21:03 +0000 (15:21 +0700)]
grep: grep cache entries if they are "assume unchanged"
"Assume unchanged" bit means "please pretend that I have never touched
this file", so if user removes the file, we should not care.
This patch teaches "git grep" to use cache version in such
situations. External grep case has not been fixed yet. But given that
on the platform that CE_VALID bit may be used like Windows, external
grep is not available anyway, I would wait for people to raise their
hands before touching it.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Sat, 27 Dec 2008 08:21:04 +0000 (15:21 +0700)]
grep: support --no-ext-grep to test builtin grep
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 27 Dec 2008 22:22:37 +0000 (14:22 -0800)]
Merge branch 'rs/maint-tformat-foldline' into maint
* rs/maint-tformat-foldline:
pretty: support multiline subjects with format:
pretty: factor out format_subject()
pretty: factor out skip_empty_lines()