diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index d20b475735..b1bc8272eb 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] [ [start-point]] +'git-branch' [(-d | -D) ] | [[-f] []] DESCRIPTION ----------- @@ -25,10 +25,13 @@ OPTIONS -D:: Delete a branch irrespective of its index status. +-f:: + Force a reset of to (or current head). + :: The name of the branch to create or delete. -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 365cfd4105..a0ef61dafa 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -35,10 +35,10 @@ include::pull-fetch-param.txt[] line. -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 b0e54ed2af..6ac961e6d1 100755 --- a/git-branch.sh +++ b/git-branch.sh @@ -1,6 +1,6 @@ #!/bin/sh -USAGE='[-d ] | [[-f] [start-point]]' +USAGE='[(-d | -D) ] | [[-f] []]' LONG_USAGE='If no arguments, show available branches and mark current branch with a star. If one argument, create a new branch based off of current HEAD. If two arguments, create a new branch based off of .' diff --git a/git-merge-recursive.py b/git-merge-recursive.py index 56c3641abb..b17c8e595e 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 4bb6803b10..43d3b6ef4a 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;