summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/git-branch.txt7
-rw-r--r--Documentation/git-push.txt8
-rwxr-xr-xgit-branch.sh2
-rwxr-xr-xgit-merge-recursive.py15
-rw-r--r--templates/hooks--pre-commit13
5 files changed, 30 insertions, 15 deletions
diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index d20b475..b1bc827 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -7,7 +7,7 @@ git-branch - Create a new branch, or remove an old one.
SYNOPSIS
--------
-'git-branch' [-d | -D] [<branchname> [start-point]]
+'git-branch' [(-d | -D) <branchname>] | [[-f] <branchname> [<start-point>]]
DESCRIPTION
-----------
@@ -25,10 +25,13 @@ OPTIONS
-D::
Delete a branch irrespective of its index status.
+-f::
+ Force a reset of <branchname> to <start-point> (or current head).
+
<branchname>::
The name of the branch to create or delete.
-start-point::
+<start-point>::
Where to create the branch; defaults to HEAD. This
option has no meaning with -d and -D.
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 2254bac..29fa307 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -30,10 +30,10 @@ include::pull-fetch-param.txt[]
to be pushed.
-f, \--force::
- Usually, the command refuses to update a local ref that is
- not an ancestor of the remote ref used to overwrite it.
- This flag disables the check. What this means is that the
- local repository can lose commits; use it with care.
+ Usually, the command refuses to update a remote ref that is
+ not a descendent of the local ref used to overwrite it.
+ This flag disables the check. This can cause the
+ remote repository to lose commits; use it with care.
Author
diff --git a/git-branch.sh b/git-branch.sh
index b0e54ed..6ac961e 100755
--- a/git-branch.sh
+++ b/git-branch.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-USAGE='[-d <branch>] | [[-f] <branch> [start-point]]'
+USAGE='[(-d | -D) <branchname>] | [[-f] <branchname> [<start-point>]]'
LONG_USAGE='If no arguments, show available branches and mark current branch with a star.
If one argument, create a new branch <branchname> based off of current HEAD.
If two arguments, create a new branch <branchname> based off of <start-point>.'
diff --git a/git-merge-recursive.py b/git-merge-recursive.py
index 56c3641..b17c8e5 100755
--- a/git-merge-recursive.py
+++ b/git-merge-recursive.py
@@ -205,11 +205,16 @@ def mergeFile(oPath, oSha, oMode, aPath, aSha, aMode, bPath, bSha, bMode,
orig = runProgram(['git-unpack-file', oSha]).rstrip()
src1 = runProgram(['git-unpack-file', aSha]).rstrip()
src2 = runProgram(['git-unpack-file', bSha]).rstrip()
- [out, code] = runProgram(['merge',
- '-L', branch1Name + '/' + aPath,
- '-L', 'orig/' + oPath,
- '-L', branch2Name + '/' + bPath,
- src1, orig, src2], returnCode=True)
+ try:
+ [out, code] = runProgram(['merge',
+ '-L', branch1Name + '/' + aPath,
+ '-L', 'orig/' + oPath,
+ '-L', branch2Name + '/' + bPath,
+ src1, orig, src2], returnCode=True)
+ except ProgramError, e:
+ print >>sys.stderr, e
+ die("Failed to execute 'merge'. merge(1) is used as the "
+ "file-level merge tool. Is 'merge' in your path?")
sha = runProgram(['git-hash-object', '-t', 'blob', '-w',
src1]).rstrip()
diff --git a/templates/hooks--pre-commit b/templates/hooks--pre-commit
index 4bb6803..43d3b6e 100644
--- a/templates/hooks--pre-commit
+++ b/templates/hooks--pre-commit
@@ -10,8 +10,16 @@
# This is slightly modified from Andrew Morton's Perfect Patch.
# Lines you introduce should not have trailing whitespace.
# Also check for an indentation that has SP before a TAB.
+
+if git-rev-parse --verify HEAD 2>/dev/null
+then
+ git-diff-index -p -M --cached HEAD
+else
+ # NEEDSWORK: we should produce a diff with an empty tree here
+ # if we want to do the same verification for the initial import.
+ :
+fi |
perl -e '
- my $fh;
my $found_bad = 0;
my $filename;
my $reported_filename = "";
@@ -31,8 +39,7 @@ perl -e '
print STDERR "* $why (line $lineno)\n";
print STDERR "$filename:$lineno:$line\n";
}
- open $fh, "-|", qw(git-diff-index -p -M --cached HEAD);
- while (<$fh>) {
+ while (<>) {
if (m|^diff --git a/(.*) b/\1$|) {
$filename = $1;
next;