Merge branch 'fk/usage'
authorJunio C Hamano <junkio@cox.net>
Wed, 14 Dec 2005 21:01:01 +0000 (13:01 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 14 Dec 2005 21:01:01 +0000 (13:01 -0800)
29 files changed:
git-add.sh
git-am.sh
git-applymbox.sh
git-applypatch.sh
git-bisect.sh
git-branch.sh
git-checkout.sh
git-cherry.sh
git-clone.sh
git-commit.sh
git-fetch.sh
git-format-patch.sh
git-grep.sh
git-lost-found.sh
git-merge.sh
git-prune.sh
git-pull.sh
git-push.sh
git-rebase.sh
git-repack.sh
git-request-pull.sh
git-reset.sh
git-resolve.sh
git-revert.sh
git-sh-setup.sh
git-status.sh
git-tag.sh
git-verify-tag.sh
t/t3200-branch.sh
index fdec86d1a41af847f9d737a2c058e2d2027f32fe..f719b4b1a81a386c9cf62efad811005471be0f8c 100755 (executable)
@@ -1,13 +1,8 @@
 #!/bin/sh
 
-die () {
-    echo >&2 "$*"
-    exit 1
-}
-
-usage() {
-    die "usage: git add [-n] [-v] <file>..."
-}
+USAGE='[-n] [-v] <file>...'
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
 
 show_only=
 verbose=
@@ -29,8 +24,6 @@ while : ; do
   shift
 done
 
-GIT_DIR=$(git-rev-parse --git-dir) || exit
-
 if test -f "$GIT_DIR/info/exclude"
 then
        git-ls-files -z \
index 6ed527c7a9c2d0bb9bbf84b2176b86ffc0670c93..39f255209e11283a0c3d402f215ff6c187922ea7 100755 (executable)
--- a/git-am.sh
+++ b/git-am.sh
@@ -1,14 +1,10 @@
 #!/bin/sh
 #
 #
-. git-sh-setup
 
-usage () {
-    echo >&2 "usage: $0 [--signoff] [--dotest=<dir>] [--utf8] [--binary] [--3way] <mbox>"
-    echo >&2 " or, when resuming"
-    echo >&2 " $0 [--skip | --resolved]"
-    exit 1;
-}
+USAGE='[--signoff] [--dotest=<dir>] [--utf8] [--binary] [--3way] <mbox>
+  or, when resuming [--skip | --resolved]'
+. git-sh-setup
 
 stop_here () {
     echo "$1" >"$dotest/next"
index c686cc8d27a64998c141cca2989375910601f90f..61c8c024c60935b4766b5052461b4c73918a69ec 100755 (executable)
 ##
 ## git-am is supposed to be the newer and better tool for this job.
 
+USAGE='[-u] [-k] [-q] [-m] (-c .dotest/<num> | mbox) [signoff]'
 . git-sh-setup
 
-usage () {
-    echo >&2 "applymbox [-u] [-k] [-q] [-m] (-c .dotest/<num> | mbox) [signoff]"
-    exit 1
-}
-
 keep_subject= query_apply= continue= utf8= resume=t
 while case "$#" in 0) break ;; esac
 do
index a112e1a50405c733e9e94c610caf36a7b07297dd..e8ba34a0ad4a466083c8462cc038de9d8ad6a4ab 100755 (executable)
 ##     $3 - "info" file with Author, email and subject
 ##     $4 - optional file containing signoff to add
 ##
+
+USAGE='<msg> <patch> <info> [<signoff>]'
 . git-sh-setup
 
+case "$#" in 3|4) usage ;; esac
+
 final=.dotest/final-commit
 ##
 ## If this file exists, we ask before applying
index 05dae8ad13fc7b3a0aa694d038e12845146a0a27..51e1e4417d95530612d3ce5db64c8295c9236f53 100755 (executable)
@@ -1,4 +1,15 @@
 #!/bin/sh
+
+USAGE='[start|bad|good|next|reset|visualize]'
+LONG_USAGE='git bisect start [<pathspec>]      reset bisect state and start bisection.
+git bisect bad [<rev>]         mark <rev> a known-bad revision.
+git bisect good [<rev>...]     mark <rev>... known-good revisions.
+git bisect next                        find next bisection to test and check it out.
+git bisect reset [<branch>]    finish bisection search and go back to branch.
+git bisect visualize            show bisect status in gitk.
+git bisect replay <logfile>    replay bisection log
+git bisect log                 show bisect log.'
+
 . git-sh-setup
 
 sq() {
@@ -11,19 +22,6 @@ sq() {
        ' "$@"
 }
 
-usage() {
-    echo >&2 'usage: git bisect [start|bad|good|next|reset|visualize]
-git bisect start [<pathspec>]  reset bisect state and start bisection.
-git bisect bad [<rev>]         mark <rev> a known-bad revision.
-git bisect good [<rev>...]     mark <rev>... known-good revisions.
-git bisect next                        find next bisection to test and check it out.
-git bisect reset [<branch>]    finish bisection search and go back to branch.
-git bisect visualize            show bisect status in gitk.
-git bisect replay <logfile>    replay bisection log
-git bisect log                 show bisect log.'
-    exit 1
-}
-
 bisect_autostart() {
        test -d "$GIT_DIR/refs/bisect" || {
                echo >&2 'You need to start by "git bisect start"'
index 5306b2719ffbedfa077f4d5489ab46448ef5c186..0266f46223c2f20973bbbcb78f4825ff880d9bd3 100755 (executable)
@@ -1,21 +1,12 @@
 #!/bin/sh
 
-GIT_DIR=`git-rev-parse --git-dir` || exit $?
-
-die () {
-    echo >&2 "$*"
-    exit 1
-}
-
-usage () {
-    echo >&2 "usage: $(basename $0)"' [-d <branch>] | [[-f] <branch> [start-point]]
-
-If no arguments, show available branches and mark current branch with a star.
+USAGE='[-d <branch>] | [[-f] <branch> [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>.
-'
-    exit 1
-}
+If two arguments, create a new branch <branchname> based off of <start-point>.'
+
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
 
 headref=$(git-symbolic-ref HEAD | sed -e 's|^refs/heads/||')
 
index 4cf30e2c0529e90886e6edfd485cec67a278e224..f241d4ba6ba5a988f801e3307022d188204ff572 100755 (executable)
@@ -1,9 +1,7 @@
 #!/bin/sh
-. git-sh-setup
 
-usage () {
-    die "usage: git checkout [-f] [-b <new_branch>] [<branch>] [<paths>...]"
-}
+USAGE='[-f] [-b <new_branch>] [<branch>] [<paths>...]'
+. git-sh-setup
 
 old=$(git-rev-parse HEAD)
 new=
index 867522b37ff4fd85f963019a025ba07789ffef37..5e9bd0caf2e1141e3045ea6c3a1f0e9d9285c492 100755 (executable)
@@ -3,11 +3,8 @@
 # Copyright (c) 2005 Junio C Hamano.
 #
 
-. git-sh-setup
-
-usage="usage: $0 "'[-v] <upstream> [<head>]
-
-             __*__*__*__*__> <upstream>
+USAGE='[-v] <upstream> [<head>]'
+LONG_USAGE='             __*__*__*__*__> <upstream>
             /
   fork-point
             \__+__+__+__+__+__+__+__> <head>
@@ -16,8 +13,8 @@ Each commit between the fork-point and <head> is examined, and
 compared against the change each commit between the fork-point and
 <upstream> introduces.  If the change seems to be in the upstream,
 it is shown on the standard output with prefix "+".  Otherwise
-it is shown with prefix "-".
-'
+it is shown with prefix "-".'
+. git-sh-setup
 
 case "$1" in -v) verbose=t; shift ;; esac 
 
@@ -35,7 +32,7 @@ case "$#" in
 2) upstream=`git-rev-parse --verify "$1"` &&
    ours=`git-rev-parse --verify "$2"` || exit
    ;;
-*) echo >&2 "$usage"; exit 1 ;;
+*) usage ;;
 esac
 
 # Note that these list commits in reverse order;
index e49028f684ffe2fd50012759f54475f0db7b4d68..280cc2e81e98c5fe69e8528ca97069dd0b0e59f5 100755 (executable)
@@ -9,7 +9,7 @@
 unset CDPATH
 
 usage() {
-       echo >&2 "* git clone [-l [-s]] [-q] [-u <upload-pack>] [-n] <repo> [<dir>]"
+       echo >&2 "Usage: $0 [-l [-s]] [-q] [-u <upload-pack>] [-n] <repo> [<dir>]"
        exit 1
 }
 
index 3d250ec853dad3ff7e714025026ca90f2c77e7bb..7e39c107cff93f601c51fec6544a0defe9814db1 100755 (executable)
@@ -3,12 +3,9 @@
 # Copyright (c) 2005 Linus Torvalds
 #
 
+USAGE='[-a] [-s] [-v | --no-verify]  [-m <message> | -F <logfile> | (-C|-c) <commit>] [-e] [<path>...]'
 . git-sh-setup
 
-usage () {
-       die 'git commit [-a] [-s] [-v | --no-verify]  [-m <message> | -F <logfile> | (-C|-c) <commit>] [-e] [<path>...]'
-}
-
 all= logfile= use_commit= no_edit= log_given= log_message= verify=t signoff=
 while case "$#" in 0) break;; esac
 do
index 14ea295113be9381ce9d4af52f022ce99c75506f..767ca61ca6362b086e70b05f3442fcb4ad475c6a 100755 (executable)
@@ -1,5 +1,7 @@
 #!/bin/sh
 #
+
+USAGE='<fetch-options> <repository> <refspec>...'
 . git-sh-setup
 . git-parse-remote
 _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
@@ -34,6 +36,9 @@ do
        -v|--verbose)
                verbose=Yes
                ;;
+       -*)
+               usage
+               ;;
        *)
                break
                ;;
index 921feee59cd7e770328fc1d167e01730a238489e..01508e3b04f91bba3e960eb74eaff3e349e209bd 100755 (executable)
@@ -3,19 +3,8 @@
 # Copyright (c) 2005 Junio C Hamano
 #
 
-. git-sh-setup
-
-# Force diff to run in C locale.
-LANG=C LC_ALL=C
-export LANG LC_ALL
-
-usage () {
-    echo >&2 "usage: $0"' [-n] [-o dir | --stdout] [--keep-subject] [--mbox]
-    [--check] [--signoff] [-<diff options>...]
-    [--help]
-    ( from..to ... | upstream [ our-head ] )
-
-Prepare each commit with its patch since our-head forked from upstream,
+USAGE='[-n | -k] [-o <dir> | --stdout] [--signoff] [--check] [--mbox] [--diff-options] <upstream> [<our-head>]'
+LONG_USAGE='Prepare each commit with its patch since our-head forked from upstream,
 one file per patch, for e-mail submission.  Each output file is
 numbered sequentially from 1, and uses the first line of the commit
 message (massaged for pathname safety) as the filename.
@@ -28,10 +17,12 @@ as "[PATCH N/M] Subject", unless you have only one patch.
 
 When --mbox is specified, the output is formatted to resemble
 UNIX mailbox format, and can be concatenated together for processing
-with applymbox.
-'
-    exit 1
-}
+with applymbox.'
+. git-sh-setup
+
+# Force diff to run in C locale.
+LANG=C LC_ALL=C
+export LANG LC_ALL
 
 diff_opts=
 LF='
index 44c16130bd93fea8b6f172f1614115801f8df2d9..2ed8e955d6c44da7bd15342aac64de997f0f4bf4 100755 (executable)
@@ -3,6 +3,10 @@
 # Copyright (c) Linus Torvalds, 2005
 #
 
+USAGE='<option>... <pattern> <path>...'
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
+
 pattern=
 flags=()
 git_flags=()
@@ -40,8 +44,7 @@ while : ; do
        shift
 done
 [ "$pattern" ] || {
-       echo >&2 "usage: 'git grep <pattern> [pathspec*]'"
-       exit 1
+       usage
 }
 git-ls-files -z "${git_flags[@]}" "$@" |
        xargs -0 grep "${flags[@]}" -e "$pattern"
index 2beec2aa635d2876482294a162923a1dfd1572f6..ba6d587f3199e5847dc942810ea85b2dbec656b9 100755 (executable)
@@ -1,6 +1,14 @@
 #!/bin/sh
 
-GIT_DIR=`git-rev-parse --git-dir` || exit $?
+USAGE=''
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
+
+if [ "$#" != "0" ]
+then
+    usage
+fi
+
 laf="$GIT_DIR/lost-found"
 rm -fr "$laf" && mkdir -p "$laf/commit" "$laf/other" || exit
 
index d25ae4b82d4208216bb7ce5b5d414ee8b2797865..e50fbb1160ad6ccfebc0d65fcc54bc3488e597cd 100755 (executable)
@@ -3,15 +3,13 @@
 # Copyright (c) 2005 Junio C Hamano
 #
 
+
+USAGE='[-n] [--no-commit] [-s <strategy>]... <merge-message> <head> <remote>+'
 . git-sh-setup
 
 LF='
 '
 
-usage () {
-    die "git-merge [-n] [--no-commit] [-s <strategy>]... <merge-message> <head> <remote>+"
-}
-
 all_strategies='recursive octopus resolve stupid ours'
 default_strategies='recursive'
 use_strategies=
index 7e7f0ad56d381dc546f1bc598e41c1d7fa1e3a36..7b61d05c4b58c57c833563955e3206f0e4142c39 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+USAGE='[-n] [--] [<head>...]'
 . git-sh-setup
 
 dryrun=
@@ -9,7 +10,7 @@ do
     case "$1" in
     -n) dryrun=-n echo=echo ;;
     --) break ;;
-    -*) echo >&2 "usage: git-prune [ -n ] [ heads... ]"; exit 1 ;;
+    -*) usage ;;
     *)  break ;;
     esac
     shift;
index 3a139849fbfc545b7c479dd2889a0285fab646d5..0991d5f14cd6d903572a041cfbfe3cde219c738f 100755 (executable)
@@ -4,19 +4,10 @@
 #
 # Fetch one or more remote refs and merge it/them into the current HEAD.
 
+USAGE='[-n | --no-summary] [--no-commit] [-s strategy]... [<fetch-options>] <repo> <head>...'
+LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.'
 . git-sh-setup
 
-usage () {
-    echo >&2 "usage: $0"' [-n] [--no-commit] [--no-summary] [--help]
-    [-s strategy]...
-    [<fetch-options>]
-    <repo> <head>...
-
-Fetch one or more remote refs and merge it/them into the current HEAD.
-'
-    exit 1
-}
-
 strategy_args= no_summary= no_commit=
 while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac
 do
index 140c8f85d55c5654cfc9077fecfd03ad067a6862..1c5cf80f8786eb20c6092a8fbce48e1f1c1cb9e1 100755 (executable)
@@ -1,10 +1,7 @@
 #!/bin/sh
-. git-sh-setup
-
-usage () {
-    die "Usage: git push [--all] [--force] <repository> [<refspec>]"
-}
 
+USAGE='[--all] [--force] <repository> [<refspec>...]'
+. git-sh-setup
 
 # Parse out parameters and then stop at remote, so that we can
 # translate it using .git/branches information
index 638ff0dbc01cbf87edf1af511d5caac5ee4f1d66..8a5f44aa5e0a732b27a1fde307f77bc810574e7e 100755 (executable)
@@ -3,6 +3,7 @@
 # Copyright (c) 2005 Junio C Hamano.
 #
 
+USAGE='<upstream> [<head>]'
 . git-sh-setup
 
 # Make sure we do not have .dotest
@@ -19,7 +20,7 @@ you still have something valuable there.'
 fi
 
 # The other head is given.  Make sure it is valid.
-other=$(git-rev-parse --verify "$1^0") || exit
+other=$(git-rev-parse --verify "$1^0") || usage
 
 # Make sure we have HEAD that is valid.
 head=$(git-rev-parse --verify "HEAD^0") || exit
@@ -36,7 +37,7 @@ esac
 # If the branch to rebase is given, first switch to it.
 case "$#" in
 2)
-       git-checkout "$2" || exit
+       git-checkout "$2" || usage
 esac
 
 # If the HEAD is a proper descendant of $other, we do not even need
index 430ddc5a706945035149464d0bea8f25acc21d3c..1fafb6ecf6ffbac817865470ec923af203da8e7e 100755 (executable)
@@ -3,6 +3,7 @@
 # Copyright (c) 2005 Linus Torvalds
 #
 
+USAGE='[-a] [-d] [-l] [-n]'
 . git-sh-setup
        
 no_update_info= all_into_one= remove_redundant= local=
@@ -13,7 +14,7 @@ do
        -a)     all_into_one=t ;;
        -d)     remove_redundant=t ;;
        -l)     local=t ;;
-       *)      break ;;
+       *)      usage ;;
        esac
        shift
 done
index ae6cd272bab01ba7fa9ac7378fe33e07e853d307..2c48bfb299325ba7a27e883b6a4815ebde09ae58 100755 (executable)
@@ -4,13 +4,11 @@
 # This file is licensed under the GPL v2, or a later version
 # at the discretion of Linus Torvalds.
 
-usage()
-{
-       echo "$0 <commit> <url> [ <head> ]"
-       echo "  Summarizes the changes since <commit> to the standard output,"
-       echo "  and includes <url> in the message generated."
-       exit 1
-}
+USAGE='<commit> <url> [<head>]'
+LONG_USAGE='Summarizes the changes since <commit> to the standard output,
+and includes <url> in the message generated.'
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
 
 revision=$1
 url=$2
index 72ef303aedc69a1d9cdd946a91059638cb2e550a..eb44ee8cc197b7ff11159cf046b790cf693d3a72 100755 (executable)
@@ -1,9 +1,7 @@
 #!/bin/sh
-. git-sh-setup
 
-usage () {
-       die 'Usage: git reset [--mixed | --soft | --hard]  [<commit-ish>]'
-}
+USAGE='[--mixed | --soft | --hard]  [<commit-ish>]'
+. git-sh-setup
 
 tmp=/var/tmp/reset.$$
 trap 'rm -f $tmp-*' 0 1 2 3 15
index fcc5ad7349e3f77a6817e499b331b262c4a07b57..926307005493b7c8c4253b1adff34bdb4bc57b77 100755 (executable)
@@ -4,11 +4,9 @@
 #
 # Resolve two trees.
 #
-. git-sh-setup
 
-usage () {
-       die "git-resolve <head> <remote> <merge-message>"
-}
+USAGE='<head> <remote> <merge-message>'
+. git-sh-setup
 
 dropheads() {
        rm -f -- "$GIT_DIR/MERGE_HEAD" \
index 9d499c4807e7e583e960232d93624303554e8b81..63d201be1bf810499cfeb7aecbc23ec15e171bb7 100755 (executable)
@@ -3,29 +3,20 @@
 # Copyright (c) 2005 Linus Torvalds
 # Copyright (c) 2005 Junio C Hamano
 #
-. git-sh-setup
 
 case "$0" in
 *-revert* )
        test -t 0 && edit=-e
-       me=revert ;;
+       me=revert
+       USAGE='[--edit | --no-edit] [-n] <commit-ish>' ;;
 *-cherry-pick* )
        edit=
-       me=cherry-pick ;;
+       me=cherry-pick
+       USAGE='[--edit] [-n] [-r] <commit-ish>'  ;;
 * )
        die "What are you talking about?" ;;
 esac
-
-usage () {
-       case "$me" in
-       cherry-pick)
-               die "usage git $me [--edit] [-n] [-r] <commit-ish>"
-               ;;
-       revert)
-               die "usage git $me [--edit | --no-edit] [-n] <commit-ish>"
-               ;;
-       esac
-}
+. git-sh-setup
 
 no_commit= replay=
 while case "$#" in 0) break ;; esac
index b4f10224baf8328a9d6efa761b025450df414bb2..1e638e493d51c9216e3d2e93aad5657cdf9793b4 100755 (executable)
 # exporting it.
 unset CDPATH
 
-: ${GIT_DIR=.git}
-: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
-
 die() {
        echo >&2 "$@"
        exit 1
 }
 
-# Make sure we are in a valid repository of a vintage we understand.
-GIT_DIR="$GIT_DIR" git-var GIT_AUTHOR_IDENT >/dev/null || exit
+usage() {
+       die "Usage: $0 $USAGE"
+}
+
+if [ -z "$LONG_USAGE" ]
+then
+       LONG_USAGE="Usage: $0 $USAGE"
+else
+       LONG_USAGE="Usage: $0 $USAGE
+
+$LONG_USAGE"
+fi
+
+case "$1" in
+       --h|--he|--hel|--help)
+       echo "$LONG_USAGE"
+       exit
+esac
+
+if [ -z "$SUBDIRECTORY_OK" ]
+then
+       : ${GIT_DIR=.git}
+       : ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
+
+       # Make sure we are in a valid repository of a vintage we understand.
+       GIT_DIR="$GIT_DIR" git-var GIT_AUTHOR_IDENT >/dev/null || exit
+else
+       GIT_DIR=$(git-rev-parse --git-dir) || exit
+fi
index 2dda0c505cf41c9dbd9fc6db75f3c0550f6ee82f..50ccd24efb707d615e560dfbd38abec5b2b25b20 100755 (executable)
@@ -2,7 +2,16 @@
 #
 # Copyright (c) 2005 Linus Torvalds
 #
-GIT_DIR=$(git-rev-parse --git-dir) || exit
+
+USAGE=''
+SUBDIRECTORY_OK='Yes'
+
+. git-sh-setup
+
+if [ "$#" != "0" ]
+then
+  usage
+fi
 
 report () {
   header="#
index 2435a75f7a9414bdceb1cef308a99918784f5421..6d0c973239a1b72bbef43aa430f1ee534b7ab458 100755 (executable)
@@ -1,17 +1,9 @@
 #!/bin/sh
 # Copyright (c) 2005 Linus Torvalds
 
-GIT_DIR=`git-rev-parse --git-dir` || exit $?
-
-usage () {
-    echo >&2 "Usage: git-tag [-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <tagname> [<head>]"
-    exit 1
-}
-
-die () {
-    echo >&2 "$*"
-    exit 1
-}
+USAGE='[-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <tagname> [<head>]'
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
 
 annotate=
 signed=
index 1f44da53496e880395286dafb431b9c3095df9f1..726b1e706ba247ee5b17e1312d7195119a690da2 100755 (executable)
@@ -1,11 +1,13 @@
 #!/bin/sh
 
-GIT_DIR=`git-rev-parse --git-dir` || exit $?
+USAGE='<tag>'
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
 
-die () {
-    echo >&2 "$*"
-    exit 1
-}
+if [ "$#" != "1" ]
+then
+  usage
+fi
 
 type="$(git-cat-file -t "$1" 2>/dev/null)" ||
        die "$1: no such object."
index 36f7749bed8a40f50f218bbd6c4dcf7763c5abee..c3de151942effc8ca1c9927a356b1b1b91bb0aeb 100755 (executable)
@@ -16,8 +16,8 @@ test_expect_success \
      git-update-index --add A &&
      git-commit -m "Initial commit."'
 
-test_expect_failure \
-    'git branch --help should return error code' \
+test_expect_success \
+    'git branch --help should return success now.' \
     'git-branch --help'
 
 test_expect_failure \