From 93d69d86912c44206543f6670e93f9fc6f2f859f Mon Sep 17 00:00:00 2001 From: Jon Loeliger Date: Sun, 6 Nov 2005 23:30:56 -0600 Subject: [PATCH] Refactored merge options into separate merge-options.txt. Refactored fetch options into separate fetch-options.txt. Made git-merge use merge-options. Made git-fetch use fetch-options. Made git-pull use merge-options and fetch-options. Added --help option to git-pull and git-format-patch scripts. Rewrote Documentation/Makefile to dynamically determine include dependencies. Signed-off-by: Jon Loeliger Signed-off-by: Junio C Hamano --- Documentation/Makefile | 23 +++++++++++++---------- Documentation/fetch-options.txt | 14 ++++++++++++++ Documentation/git-fetch.txt | 16 ++++------------ Documentation/git-merge.txt | 2 +- Documentation/git-pull.txt | 17 +++++++---------- Documentation/merge-options.txt | 16 ++++++++++++++++ Documentation/merge-pull-opts.txt | 14 -------------- git-format-patch.sh | 4 ++++ git-pull.sh | 12 +++++++++++- 9 files changed, 70 insertions(+), 48 deletions(-) create mode 100644 Documentation/fetch-options.txt create mode 100644 Documentation/merge-options.txt delete mode 100644 Documentation/merge-pull-opts.txt mode change 100755 => 100644 git-pull.sh diff --git a/Documentation/Makefile b/Documentation/Makefile index 741f14cf..bb9533ff 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -49,22 +49,25 @@ install: man $(INSTALL) $(DOC_MAN1) $(DESTDIR)/$(man1) $(INSTALL) $(DOC_MAN7) $(DESTDIR)/$(man7) -# 'include' dependencies -$(patsubst %.txt,%.1,$(wildcard git-diff-*.txt)): \ - diff-format.txt diff-options.txt -$(patsubst %.txt,%.html,$(wildcard git-diff-*.txt)): \ - diff-format.txt diff-options.txt -$(patsubst %,%.1,git-fetch git-pull git-push): pull-fetch-param.txt -$(patsubst %,%.html,git-fetch git-pull git-push): pull-fetch-param.txt +# +# Determine "include::" file references in asciidoc files. +# +TEXTFILES = $(wildcard *.txt) +DEPFILES = $(TEXTFILES:%.txt=%.dep) -$(patsubst %,%.1,git-merge git-pull): merge-pull-opts.txt -$(patsubst %,%.html,git-merge git-pull): merge-pull-opts.txt +%.dep : %.txt + @rm -f $@ + @$(foreach dep, $(shell grep include:: $< | sed -e 's/include::/ /' -e 's/\[\]//'), \ + echo $(<:%.txt=%.html) $(<:%.txt=%.1) : $(dep) >> $@; ) + +-include $(DEPFILES) git.7: ../README + clean: - rm -f *.xml *.html *.1 *.7 howto-index.txt howto/*.html + rm -f *.xml *.html *.1 *.7 howto-index.txt howto/*.html *.dep %.html : %.txt asciidoc -b xhtml11 -d manpage -f asciidoc.conf $< diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt new file mode 100644 index 00000000..12d12b27 --- /dev/null +++ b/Documentation/fetch-options.txt @@ -0,0 +1,14 @@ +-a, \--append:: + Append ref names and object names of fetched refs to the + existing contents of `.git/FETCH_HEAD`. Without this + option old data in `.git/FETCH_HEAD` will be overwritten. + +-f, \--force:: + +-t, \--tags:: + +-u, \--update-head-ok:: + By default `git-fetch` refuses to update the head which + corresponds to the current branch. This flag disables the + check. Note that fetching into the current branch will not + update the index and working directory, so use it with care. diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt index 73f8a99f..438240c0 100644 --- a/Documentation/git-fetch.txt +++ b/Documentation/git-fetch.txt @@ -8,7 +8,7 @@ git-fetch - Download objects and a head from another repository. SYNOPSIS -------- -'git-fetch' ... +'git-fetch' ... DESCRIPTION @@ -17,24 +17,16 @@ Fetches named heads or tags from another repository, along with the objects necessary to complete them. The ref names and their object names of fetched refs are stored -in $GIT_DIR/FETCH_HEAD. This information is left for a later merge +in `.git/FETCH_HEAD`. This information is left for a later merge operation done by "git resolve" or "git octopus". OPTIONS ------- -include::pull-fetch-param.txt[] +include::fetch-options.txt[] --a, \--append:: - Append ref names and object names of fetched refs to the - existing contents of $GIT_DIR/FETCH_HEAD. Without this - option old data in $GIT_DIR/FETCH_HEAD will be overwritten. +include::pull-fetch-param.txt[] --u, \--update-head-ok:: - By default 'git-fetch' refuses to update the head which - corresponds to the current branch. This flag disables the - check. Note that fetching into the current branch will not - update the index and working directory, so use it with care. SEE ALSO diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt index b3ef19ba..904e2fc4 100644 --- a/Documentation/git-merge.txt +++ b/Documentation/git-merge.txt @@ -19,7 +19,7 @@ which drives multiple merge strategy scripts. OPTIONS ------- -include::merge-pull-opts.txt[] +include::merge-options.txt[] :: The commit message to be used for the merge commit (in case diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index 7ebb08da..c65ca9a5 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -20,21 +20,18 @@ Note that you can use `.` (current directory) as the to pull from the local repository -- this is useful when merging local branches into the current branch. + OPTIONS ------- -include::pull-fetch-param.txt[] +include::merge-options.txt[] --a, \--append:: - Append ref names and object names of fetched refs to the - existing contents of `$GIT_DIR/FETCH_HEAD`. Without this - option old data in `$GIT_DIR/FETCH_HEAD` will be overwritten. +include::fetch-options.txt[] -include::merge-pull-opts.txt[] +include::pull-fetch-param.txt[] include::merge-strategies.txt[] - EXAMPLES -------- @@ -72,7 +69,7 @@ $ git fetch origin master:origin +pu:pu maint:maint $ git pull . origin ------------------------------------------------ + -Here, a typical `$GIT_DIR/remotes/origin` file from a +Here, a typical `.git/remotes/origin` file from a `git-clone` operation is used in combination with command line options to `git-fetch` to first update multiple branches of the local repository and then @@ -85,7 +82,7 @@ known to have already obtained and made available all the necessary objects. -Pull of multiple branches from one repository using `$GIT_DIR/remotes` file:: +Pull of multiple branches from one repository using `.git/remotes` file:: + ------------------------------------------------ $ cat .git/remotes/origin @@ -98,7 +95,7 @@ $ git checkout master $ git pull origin ------------------------------------------------ + -Here, a typical `$GIT_DIR/remotes/origin` file from a +Here, a typical `.git/remotes/origin` file from a `git-clone` operation has been hand-modified to include the branch-mapping of additional remote and local heads directly. A single `git-pull` operation while diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt new file mode 100644 index 00000000..eebaf3aa --- /dev/null +++ b/Documentation/merge-options.txt @@ -0,0 +1,16 @@ +-n, \--no-summary:: + Do not show diffstat at the end of the merge. + +--no-commit:: + Perform the merge but pretend the merge failed and do + not autocommit, to give the user a chance to inspect and + further tweak the merge result before committing. + + +-s , \--strategy=:: + Use the given merge strategy; can be supplied more than + once to specify them in the order they should be tried. + If there is no `-s` option, a built-in list of strategies + is used instead (`git-merge-resolve` when merging a single + head, `git-merge-octopus` otherwise). + diff --git a/Documentation/merge-pull-opts.txt b/Documentation/merge-pull-opts.txt deleted file mode 100644 index d9164a04..00000000 --- a/Documentation/merge-pull-opts.txt +++ /dev/null @@ -1,14 +0,0 @@ --n, --no-summary:: - Do not show diffstat at the end of the merge. - ---no-commit:: - Perform the merge but pretend the merge failed and do - not autocommit, to give the user a chance to inspect and - further tweak the merge result before committing. - --s :: - use that merge strategy; can be given more than once to - specify them in the order they should be tried. If - there is no `-s` option, built-in list of strategies is - used instead (`git-merge-resolve` when merging a single - head, `git-merge-octopus` otherwise). diff --git a/git-format-patch.sh b/git-format-patch.sh index b43ba390..548d2d58 100755 --- a/git-format-patch.sh +++ b/git-format-patch.sh @@ -8,6 +8,7 @@ usage () { echo >&2 "usage: $0"' [-n] [-o dir | --stdout] [--keep-subject] [--mbox] [--check] [--signoff] [-...] + [--help] ( from..to ... | upstream [ our-head ] ) Prepare each commit with its patch since our-head forked from upstream, @@ -63,6 +64,9 @@ do --output-directo|--output-director|--output-directory) case "$#" in 1) usage ;; esac; shift outdir="$1" ;; + -h|--h|--he|--hel|--help) + usage + ;; -*' '* | -*"$LF"* | -*' '*) # Ignore diff option that has whitespace for now. ;; diff --git a/git-pull.sh b/git-pull.sh old mode 100755 new mode 100644 index e23d4f55..2358af62 --- a/git-pull.sh +++ b/git-pull.sh @@ -7,7 +7,14 @@ . git-sh-setup || die "Not a git archive" usage () { - die "git pull [-n] [--no-commit] [-s strategy]... ..." + echo >&2 "usage: $0"' [-n] [--no-commit] [--no-summary] [--help] + [-s strategy]... + [] + ... + +Fetch one or more remote refs and merge it/them into the current HEAD. +' + exit 1 } strategy_args= no_summary= no_commit= @@ -33,6 +40,9 @@ do esac strategy_args="${strategy_args}-s $strategy " ;; + -h|--h|--he|--hel|--help) + usage + ;; -*) # Pass thru anything that is meant for fetch. break -- 2.11.0