As promised, this is the "big tool rename" patch. The primary differences
since 0.99.6 are:
(1) git-*-script are no more. The commands installed do not
have any such suffix so users do not have to remember if
something is implemented as a shell script or not.
(2) Many command names with 'cache' in them are renamed with
'index' if that is what they mean.
There are backward compatibility symblic links so that you and
Porcelains can keep using the old names, but the backward
compatibility support is expected to be removed in the near
future.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Update 'git commit' to use the updated `git status`. Also earlier
the `-s` flag was ignored for the initial commit.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Sometimes it may be handy to be able to edit messages that come
from somewhere other than an existing commit.
This makes 'git commit -F <file> -e' to start editor with the initial
log message contents taken from <file>.
Signed-off-by: Junio C Hamano <junkio@cox.net>
When not working on "master" branch, remind the user at the beginning
of the status message, not at the end.
Signed-off-by: Junio C Hamano <junkio@cox.net>
There are three hooks:
- 'pre-commit' is given an opportunity to inspect what is
being committed, before we invoke the EDITOR for the
commit message;
- 'commit-msg' is invoked on the commit log message after
the user prepares it;
- 'post-commit' is run after a successful commit is made.
The first two can interfere to stop the commit. The last one is
for after-the-fact notification.
The earlier built-in commit checker is now moved to pre-commit.
Signed-off-by: Junio C Hamano <junkio@cox.net>
After you deleted files from your working tree, automatic
git-update-cache used when the "--all" flag is given to "git
commit" barfs because it lacks the --remove flag.
It can be argued that this is a feature; people should be
careful and something with a grave consequence like removing
files should be done manually, in which case the current
behaviour may be OK.
The patch is for people who thinks the user who uses the "--all"
flag deserves the danger that comes with the convenience.
Comments?
Signed-off-by: Junio C Hamano <junkio@cox.net>
The earlier one to grab output from diff-files --name-only has a grave
bug that when no paths are given it ended up doing the equivalent of
"git-commit --all", which was not what I intended.
Signed-off-by: Junio C Hamano <junkio@cox.net>
When running "git commit" with explicit path arguments, allow it to
take directory name. This makes "git commit Documentation/" to commit
everything that is changed under Documentation/ directory.
Signed-off-by: Junio C Hamano <junkio@cox.net>
The recent change to give the multiple commit message source was not
carrying over the authorship information from -C/-c commits correctly.
The export of the environment variable happens only in the subprocess,
not the main process that eventually runs git-commit-tree.
The right fix might be to teach git-commit-script to grok the From:
and Date: lines at the beginning of the commit message just like
git-applymbox knows how, but this has to do until that enhancement
happens.
Signed-off-by: Junio C Hamano <junkio@cox.net>
As brought up in the discussion which followed a patch to add a
signed-off-by line with the --sign flag to format-patch from
Johannes Schindelin, add --signoff to the git commit command.
Also add --verify to make sure the lines you introduced are
clean, which is more useful in commit but not very much in
format-patch as it was originally implemented, because finding
botches at format-patch time is too late.
Signed-off-by: Junio C Hamano <junkio@cox.net>
While moving '-m' to make room for CVS compatible "here is the
log message", enhance source of log parameters.
-m 'message': a command line parameter.
-F <file> : a file (use '-' to read from stdin).
-C <commit> : message in existing commit.
-c <commit> : message in existing commit (allows further editing).
Longer option names for these options are also available.
While we are at it, get rid of shell array bashism.
Signed-off-by: Junio C Hamano <junkio@cox.net>
If merging results in an unchanged tree, git-commit-script should not
complain that there's nothing to commit.
Also, add "[--all]" to usage().
[jc: usually there is no reason to record an unchanging merge,
but this code path is triggered only when there is a nontrivial
merge that needed to be resolved by hand, and we should be able
to record the fact that these two tree heads are dealt with as a
regular two-parent commit in order to help later merges.]
Signed-off-by: Junio C Hamano <junkio@cox.net>
This patch changes rev-parse users that pass a single argument
that is supposed to be a rev parameter to use "--verify".
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
It sets up the normal git environment variables and a few helper
functions (currently just "die()"), and returns ok if it all looks like
a git archive. So use it something like
. git-sh-setup-script || die "Not a git archive"
to make the rest of the git scripts more careful and readable.
With -m flag specified, git-commit-script takes the commit
message along with author information from an existing commit.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
It does a "git-update-cache" on the arguments, meaning that you can
commit files without doing a separate "git-update-cache". This commit
was done with
git commit git-commit-script
for example.
Should be obvious...
- Use $VISUAL, $EDITOR, in this order if set, and fall back on
vi.
- Status R, C, D, N usually are followed by number, so adjust
case arms to that pattern.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This is meant to make raw git not hugely less usable than something
like raw CVS. I want to make a 1.0 release of the plumbing, and the
actual commit part was just too intimidating.