summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/.gitignore2
-rw-r--r--Documentation/RelNotes-1.5.6.txt17
-rw-r--r--Documentation/SubmittingPatches5
-rw-r--r--Documentation/blame-options.txt6
-rwxr-xr-xDocumentation/cat-texi.perl2
-rw-r--r--Documentation/config.txt19
-rw-r--r--Documentation/fetch-options.txt30
-rw-r--r--Documentation/git-add.txt23
-rw-r--r--Documentation/git-am.txt24
-rw-r--r--Documentation/git-apply.txt9
-rw-r--r--Documentation/git-archive.txt6
-rw-r--r--Documentation/git-bisect.txt7
-rw-r--r--Documentation/git-blame.txt6
-rw-r--r--Documentation/git-branch.txt3
-rw-r--r--Documentation/git-cat-file.txt1
-rw-r--r--Documentation/git-checkout-index.txt15
-rw-r--r--Documentation/git-checkout.txt3
-rw-r--r--Documentation/git-cherry-pick.txt12
-rw-r--r--Documentation/git-clean.txt2
-rw-r--r--Documentation/git-commit.txt74
-rw-r--r--Documentation/git-config.txt9
-rw-r--r--Documentation/git-count-objects.txt1
-rw-r--r--Documentation/git-cvsserver.txt7
-rw-r--r--Documentation/git-daemon.txt12
-rw-r--r--Documentation/git-describe.txt3
-rw-r--r--Documentation/git-diff-files.txt3
-rw-r--r--Documentation/git-fast-export.txt20
-rw-r--r--Documentation/git-fetch-pack.txt22
-rw-r--r--Documentation/git-filter-branch.txt3
-rw-r--r--Documentation/git-fmt-merge-msg.txt6
-rw-r--r--Documentation/git-for-each-ref.txt5
-rw-r--r--Documentation/git-format-patch.txt15
-rw-r--r--Documentation/git-grep.txt37
-rw-r--r--Documentation/git-help.txt12
-rw-r--r--Documentation/git-http-push.txt7
-rw-r--r--Documentation/git-init.txt3
-rw-r--r--Documentation/git-instaweb.txt15
-rw-r--r--Documentation/git-ls-files.txt30
-rw-r--r--Documentation/git-ls-remote.txt8
-rw-r--r--Documentation/git-mv.txt3
-rw-r--r--Documentation/git-name-rev.txt7
-rw-r--r--Documentation/git-pack-objects.txt3
-rw-r--r--Documentation/git-pack-refs.txt4
-rw-r--r--Documentation/git-peek-remote.txt2
-rw-r--r--Documentation/git-prune.txt2
-rw-r--r--Documentation/git-pull.txt9
-rw-r--r--Documentation/git-push.txt26
-rw-r--r--Documentation/git-quiltimport.txt2
-rw-r--r--Documentation/git-read-tree.txt3
-rw-r--r--Documentation/git-rebase.txt15
-rw-r--r--Documentation/git-remote.txt19
-rw-r--r--Documentation/git-repack.txt3
-rw-r--r--Documentation/git-rev-parse.txt12
-rw-r--r--Documentation/git-revert.txt12
-rw-r--r--Documentation/git-rm.txt10
-rw-r--r--Documentation/git-send-email.txt12
-rw-r--r--Documentation/git-send-pack.txt14
-rw-r--r--Documentation/git-shortlog.txt12
-rw-r--r--Documentation/git-show-branch.txt6
-rw-r--r--Documentation/git-show-ref.txt21
-rw-r--r--Documentation/git-stripspace.txt3
-rw-r--r--Documentation/git-submodule.txt9
-rw-r--r--Documentation/git-svn.txt3
-rw-r--r--Documentation/git-symbolic-ref.txt3
-rw-r--r--Documentation/git-update-index.txt6
-rw-r--r--Documentation/git-update-ref.txt2
-rw-r--r--Documentation/git-update-server-info.txt3
-rw-r--r--Documentation/git-upload-pack.txt4
-rw-r--r--Documentation/git-web--browse.txt9
-rw-r--r--Documentation/git.txt8
-rw-r--r--Documentation/gitattributes.txt6
-rw-r--r--Documentation/githooks.txt3
-rw-r--r--Documentation/gitk.txt3
-rw-r--r--Documentation/gittutorial.txt2
-rw-r--r--Documentation/howto/setup-git-server-over-http.txt2
-rw-r--r--Documentation/merge-options.txt9
-rw-r--r--Documentation/pretty-formats.txt22
-rw-r--r--Documentation/rev-list-options.txt30
-rw-r--r--Documentation/technical/api-builtin.txt15
-rw-r--r--Documentation/technical/api-parse-options.txt204
-rw-r--r--Documentation/technical/api-path-list.txt125
-rw-r--r--Documentation/technical/api-run-command.txt4
-rw-r--r--Documentation/user-manual.txt15
83 files changed, 898 insertions, 273 deletions
diff --git a/Documentation/.gitignore b/Documentation/.gitignore
index 2f938f471a..d8edd90406 100644
--- a/Documentation/.gitignore
+++ b/Documentation/.gitignore
@@ -2,7 +2,9 @@
*.html
*.[1-8]
*.made
+*.texi
git.info
+gitman.info
howto-index.txt
doc.dep
cmds-*.txt
diff --git a/Documentation/RelNotes-1.5.6.txt b/Documentation/RelNotes-1.5.6.txt
index a79e4b9393..e143d8d61b 100644
--- a/Documentation/RelNotes-1.5.6.txt
+++ b/Documentation/RelNotes-1.5.6.txt
@@ -18,11 +18,15 @@ Updates since v1.5.5
* "git init" now autodetects the case sensitivity of the filesystem and
sets core.ignorecase accordingly.
+* cpio is no longer used; neither "curl" binary (libcurl is still used).
+
(documentation)
* Many freestanding documentation pages have been converted and made
- available to "git help" (aka "man git-<command>") as section 7 of the
- manual pages.
+ available to "git help" (aka "man git<something>") as section 7 of
+ the manual pages. This means bookmarks to some HTML documentation
+ files may need to be updated (eg "tutorial.html" became
+ "gittutorial.html").
(performance)
@@ -70,7 +74,7 @@ Updates since v1.5.5
* "git init --bare" is a synonym for "git --bare init" now.
-* "git gc --auto" honors a new pre-aut-gc hook to temporarily disable it.
+* "git gc --auto" honors a new pre-auto-gc hook to temporarily disable it.
* "git log --pretty=tformat:<custom format>" gives a LF after each entry,
instead of giving a LF between each pair of entries which is how
@@ -108,9 +112,4 @@ Fixes since v1.5.5
All of the fixes in v1.5.5 maintenance series are included in
this release, unless otherwise noted.
-
---
-exec >/var/tmp/1
-O=v1.5.6-rc1
-echo O=`git describe refs/heads/master`
-git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
+And there are too numerous small fixes to otherwise note here ;-)
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 0e155c936c..b1164753e1 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -419,6 +419,11 @@ settings but I haven't tried, yet.
mail.identity.default.compose_html => false
mail.identity.id?.compose_html => false
+(Lukas Sandström)
+
+There is a script in contrib/thunderbird-patch-inline which can help
+you include patches with Thunderbird in an easy way. To use it, do the
+steps above and then use the script as the external editor.
Gnus
----
diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
index c11bb7d36c..5428111d73 100644
--- a/Documentation/blame-options.txt
+++ b/Documentation/blame-options.txt
@@ -41,7 +41,8 @@ of lines before or after the line given by <start>.
-S <revs-file>::
Use revs from revs-file instead of calling linkgit:git-rev-list[1].
--p, --porcelain::
+-p::
+--porcelain::
Show in a format designed for machine consumption.
--incremental::
@@ -83,5 +84,6 @@ alphanumeric characters that git must detect as moving
between files for it to associate those lines with the parent
commit.
--h, --help::
+-h::
+--help::
Show help message.
diff --git a/Documentation/cat-texi.perl b/Documentation/cat-texi.perl
index e3d8e9faa8..dbc133cd3c 100755
--- a/Documentation/cat-texi.perl
+++ b/Documentation/cat-texi.perl
@@ -11,7 +11,7 @@ while (<STDIN>) {
if (s/^\@top (.*)/\@node $1,,,Top/) {
push @menu, $1;
}
- s/\(\@pxref{\[URLS\]}\)//;
+ s/\(\@pxref{\[(URLS|REMOTES)\]}\)//;
print TMP;
}
close TMP;
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 5331b450ea..1e09a57c8c 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1013,6 +1013,25 @@ status.relativePaths::
relative to the repository root (this was the default for git
prior to v1.5.4).
+status.showUntrackedFiles::
+ By default, linkgit:git-status[1] and linkgit:git-commit[1] show
+ files which are not currently tracked by Git. Directories which
+ contain only untracked files, are shown with the directory name
+ only. Showing untracked files means that Git needs to lstat() all
+ all the files in the whole repository, which might be slow on some
+ systems. So, this variable controls how the commands displays
+ the untracked files. Possible values are:
++
+--
+ - 'no' - Show no untracked files
+ - 'normal' - Shows untracked files and directories
+ - 'all' - Shows also individual files in untracked directories.
+--
++
+If this variable is not specified, it defaults to 'normal'.
+This variable can be overridden with the -u|--untracked-files option
+of linkgit:git-status[1] and linkgit:git-commit[1].
+
tar.umask::
This variable can be used to restrict the permission bits of
tar archive entries. The default is 0002, which turns off the
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index b675911480..85c87180db 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -1,22 +1,26 @@
--q, \--quiet::
+-q::
+--quiet::
Pass --quiet to git-fetch-pack and silence any other internally
used programs.
--v, \--verbose::
+-v::
+--verbose::
Be verbose.
--a, \--append::
+-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.
-\--upload-pack <upload-pack>::
+--upload-pack <upload-pack>::
When given, and the repository to fetch from is handled
by 'git-fetch-pack', '--exec=<upload-pack>' is passed to
the command to specify non-default path for the command
run on the other end.
--f, \--force::
+-f::
+--force::
When `git-fetch` is used with `<rbranch>:<lbranch>`
refspec, it refuses to update the local branch
`<lbranch>` unless the remote branch `<rbranch>` it
@@ -24,16 +28,18 @@
overrides that check.
ifdef::git-pull[]
-\--no-tags::
+--no-tags::
endif::git-pull[]
ifndef::git-pull[]
--n, \--no-tags::
+-n::
+--no-tags::
endif::git-pull[]
By default, tags that point at objects that are downloaded
from the remote repository are fetched and stored locally.
This option disables this automatic tag following.
--t, \--tags::
+-t::
+--tags::
Most of the tags are fetched automatically as branch
heads are downloaded, but tags that do not point at
objects reachable from the branch heads that are being
@@ -41,10 +47,12 @@ endif::git-pull[]
flag lets all tags and their associated objects be
downloaded.
--k, \--keep::
+-k::
+--keep::
Keep downloaded pack.
--u, \--update-head-ok::
+-u::
+--update-head-ok::
By default `git-fetch` refuses to update the head which
corresponds to the current branch. This flag disables the
check. This is purely for the internal use for `git-pull`
@@ -52,7 +60,7 @@ endif::git-pull[]
implementing your own Porcelain you are not supposed to
use it.
-\--depth=<depth>::
+--depth=<depth>::
Deepen the history of a 'shallow' repository created by
`git clone` with `--depth=<depth>` option (see linkgit:git-clone[1])
by the specified number of commits.
diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt
index 88165da38f..b8e3fa6759 100644
--- a/Documentation/git-add.txt
+++ b/Documentation/git-add.txt
@@ -8,8 +8,9 @@ git-add - Add file contents to the index
SYNOPSIS
--------
[verse]
-'git-add' [-n] [-v] [-f] [--interactive | -i] [--patch | -p] [-u] [--refresh]
- [--ignore-errors] [--] <filepattern>...
+'git-add' [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p]
+ [--update | -u] [--refresh] [--ignore-errors] [--]
+ <filepattern>...
DESCRIPTION
-----------
@@ -50,27 +51,33 @@ OPTIONS
and `dir/file2`) can be given to add all files in the
directory, recursively.
--n, \--dry-run::
+-n::
+--dry-run::
Don't actually add the file(s), just show if they exist.
--v, \--verbose::
+-v::
+--verbose::
Be verbose.
-f::
+--force::
Allow adding otherwise ignored files.
--i, \--interactive::
+-i::
+--interactive::
Add modified contents in the working tree interactively to
the index. Optional path arguments may be supplied to limit
operation to a subset of the working tree. See ``Interactive
mode'' for details.
--p, \--patch::
+-p::
+--patch::
Similar to Interactive mode but the initial command loop is
bypassed and the 'patch' subcommand is invoked using each of
the specified filepatterns before exiting.
-u::
+--update::
Update only files that git already knows about, staging modified
content for commit and marking deleted files for removal. This
is similar
@@ -79,11 +86,11 @@ OPTIONS
command line. If no paths are specified, all tracked files in the
current directory and its subdirectories are updated.
-\--refresh::
+--refresh::
Don't add the file(s), but only refresh their stat()
information in the index.
-\--ignore-errors::
+--ignore-errors::
If some files could not be added because of errors indexing
them, do not abort the operation, but continue adding the
others. The command shall still exit with non-zero status.
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index 7f6f5b472a..46544a0769 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -28,14 +28,17 @@ OPTIONS
supply this argument, reads from the standard input. If you supply
directories, they'll be treated as Maildirs.
--s, --signoff::
+-s::
+--signoff::
Add `Signed-off-by:` line to the commit message, using
the committer identity of yourself.
--k, --keep::
+-k::
+--keep::
Pass `-k` flag to `git-mailinfo` (see linkgit:git-mailinfo[1]).
--u, --utf8::
+-u::
+--utf8::
Pass `-u` flag to `git-mailinfo` (see linkgit:git-mailinfo[1]).
The proposed commit log message taken from the e-mail
is re-coded into UTF-8 encoding (configuration variable
@@ -49,13 +52,15 @@ default. You could use `--no-utf8` to override this.
Pass `-n` flag to `git-mailinfo` (see
linkgit:git-mailinfo[1]).
--3, --3way::
+-3::
+--3way::
When the patch does not apply cleanly, fall back on
3-way merge, if the patch records the identity of blobs
it is supposed to apply to, and we have those blobs
available locally.
--b, --binary::
+-b::
+--binary::
Pass `--allow-binary-replacement` flag to `git-apply`
(see linkgit:git-apply[1]).
@@ -64,19 +69,22 @@ default. You could use `--no-utf8` to override this.
program that applies
the patch.
--C<n>, -p<n>::
+-C<n>::
+-p<n>::
These flags are passed to the `git-apply` (see linkgit:git-apply[1])
program that applies
the patch.
--i, --interactive::
+-i::
+--interactive::
Run interactively.
--skip::
Skip the current patch. This is only meaningful when
restarting an aborted patch.
--r, --resolved::
+-r::
+--resolved::
After a patch failure (e.g. attempting to apply
conflicting patch), the user has applied it by hand and
the index file stores the result of the application.
diff --git a/Documentation/git-apply.txt b/Documentation/git-apply.txt
index 76277bd178..c8347637da 100644
--- a/Documentation/git-apply.txt
+++ b/Documentation/git-apply.txt
@@ -73,7 +73,8 @@ OPTIONS
When a pure mode change is encountered (which has no index information),
the information is read from the current index instead.
--R, --reverse::
+-R::
+--reverse::
Apply the patch in reverse.
--reject::
@@ -124,7 +125,8 @@ discouraged.
the result with this option, which would apply the
deletion part but not addition part.
---allow-binary-replacement, --binary::
+--allow-binary-replacement::
+--binary::
Historically we did not allow binary patch applied
without an explicit permission from the user, and this
flag was the way to do so. Currently we always allow binary
@@ -169,7 +171,8 @@ behavior:
correctly. This option adds support for applying such patches by
working around this bug.
--v, --verbose::
+-v::
+--verbose::
Report progress to stderr. By default, only a message about the
current patch being applied will be printed. This option will cause
additional information to be reported.
diff --git a/Documentation/git-archive.txt b/Documentation/git-archive.txt
index a3e36dbb0d..9b5f3ae5ed 100644
--- a/Documentation/git-archive.txt
+++ b/Documentation/git-archive.txt
@@ -36,10 +36,12 @@ OPTIONS
Format of the resulting archive: 'tar' or 'zip'. The default
is 'tar'.
---list, -l::
+-l::
+--list::
Show all available formats.
---verbose, -v::
+-v::
+--verbose::
Report progress to stderr.
--prefix=<prefix>/::
diff --git a/Documentation/git-bisect.txt b/Documentation/git-bisect.txt
index 37c7acbe9f..3ca0d330ad 100644
--- a/Documentation/git-bisect.txt
+++ b/Documentation/git-bisect.txt
@@ -85,10 +85,9 @@ Oh, and then after you want to reset to the original head, do a
$ git bisect reset
------------------------------------------------
-to get back to the original branch, instead of being in one of the
-bisection branches ("git bisect start" will do that for you too,
-actually: it will reset the bisection state, and before it does that
-it checks that you're not using some old bisection branch).
+to get back to the original branch, instead of being on the bisection
+commit ("git bisect start" will do that for you too, actually: it will
+reset the bisection state).
Bisect visualize
~~~~~~~~~~~~~~~~
diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
index 7900f33d4b..8f4fb46685 100644
--- a/Documentation/git-blame.txt
+++ b/Documentation/git-blame.txt
@@ -52,12 +52,14 @@ include::blame-options.txt[]
a certain threshold for git-blame to consider those lines
of code to have been moved.
--f, --show-name::
+-f::
+--show-name::
Show filename in the original commit. By default
filename is shown if there is any line that came from a
file with different name, due to rename detection.
--n, --show-number::
+-n::
+--show-number::
Show line number in the original commit (Default: off).
-s::
diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index a70fa76f31..0fd58083eb 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -95,7 +95,8 @@ OPTIONS
-a::
List both remote-tracking branches and local branches.
--v, --verbose::
+-v::
+--verbose::
Show sha1 and commit subject line for each head.
--abbrev=<length>::
diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt
index 3f77dbd107..f58013ca60 100644
--- a/Documentation/git-cat-file.txt
+++ b/Documentation/git-cat-file.txt
@@ -8,6 +8,7 @@ git-cat-file - Provide content or type/size information for repository objects
SYNOPSIS
--------
+[verse]
'git-cat-file' [-t | -s | -e | -p | <type>] <object>
'git-cat-file' [--batch | --batch-check] < <list-of-objects>
diff --git a/Documentation/git-checkout-index.txt b/Documentation/git-checkout-index.txt
index a8cad9c21f..676203b2eb 100644
--- a/Documentation/git-checkout-index.txt
+++ b/Documentation/git-checkout-index.txt
@@ -22,21 +22,26 @@ Will copy all files listed from the index to the working directory
OPTIONS
-------
--u|--index::
+-u::
+--index::
update stat information for the checked out entries in
the index file.
--q|--quiet::
+-q::
+--quiet::
be quiet if files exist or are not in the index
--f|--force::
+-f::
+--force::
forces overwrite of existing files
--a|--all::
+-a::
+--all::
checks out all files in the index. Cannot be used
together with explicit filenames.
--n|--no-create::
+-n::
+--no-create::
Don't checkout new files, only refresh files already checked
out.
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index a5bf9d6f89..3ad9760a4d 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -47,7 +47,8 @@ OPTIONS
by linkgit:git-check-ref-format[1]. Some of these checks
may restrict the characters allowed in a branch name.
--t, --track::
+-t::
+--track::
When creating a new branch, set up configuration so that git-pull
will automatically retrieve data from the start point, which must be
a branch. Use this if you always pull from the same upstream branch
diff --git a/Documentation/git-cherry-pick.txt b/Documentation/git-cherry-pick.txt
index 3762272b88..5ac9cfb0ef 100644
--- a/Documentation/git-cherry-pick.txt
+++ b/Documentation/git-cherry-pick.txt
@@ -22,7 +22,8 @@ OPTIONS
For a more complete list of ways to spell commits, see
"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
--e|--edit::
+-e::
+--edit::
With this option, `git-cherry-pick` will let you edit the commit
message prior to committing.
@@ -44,14 +45,16 @@ OPTIONS
described above, and `-r` was to disable it. Now the
default is not to do `-x` so this option is a no-op.
--m parent-number|--mainline parent-number::
+-m parent-number::
+--mainline parent-number::
Usually you cannot cherry-pick a merge because you do not know which
side of the merge should be considered the mainline. This
option specifies the parent number (starting from 1) of
the mainline and allows cherry-pick to replay the change
relative to the specified parent.
--n|--no-commit::
+-n::
+--no-commit::
Usually the command automatically creates a commit with
a commit log message stating which commit was
cherry-picked. This flag applies the change necessary
@@ -64,7 +67,8 @@ OPTIONS
This is useful when cherry-picking more than one commits'
effect to your working tree in a row.
--s|--signoff::
+-s::
+--signoff::
Add Signed-off-by line at the end of the commit message.
diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt
index deebf3b315..37a82ee4b8 100644
--- a/Documentation/git-clean.txt
+++ b/Documentation/git-clean.txt
@@ -30,9 +30,11 @@ OPTIONS
git-clean will refuse to run unless given -f or -n.
-n::
+--dry-run::
Don't actually remove anything, just show what would be done.
-q::
+--quiet::
Be quiet, only report errors, but not the files that are
successfully removed.
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 02d4baab6d..d0fe192fb3 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -8,9 +8,9 @@ git-commit - Record changes to the repository
SYNOPSIS
--------
[verse]
-'git-commit' [-a | --interactive] [-s] [-v] [-u]
- [(-c | -C) <commit> | -F <file> | -m <msg> | --amend]
- [--allow-empty] [--no-verify] [-e] [--author <author>]
+'git-commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend]
+ [(-c | -C) <commit>] [-F <file> | -m <msg>]
+ [--allow-empty] [--no-verify] [-e] [--author=<author>]
[--cleanup=<mode>] [--] [[-i | -o ]<file>...]
DESCRIPTION
@@ -52,39 +52,49 @@ that, you can recover from it with linkgit:git-reset[1].
OPTIONS
-------
--a|--all::
+-a::
+--all::
Tell the command to automatically stage files that have
been modified and deleted, but new files you have not
told git about are not affected.
--c or -C <commit>::
- Take existing commit object, and reuse the log message
+-C <commit>::
+--reuse-message=<commit>::
+ Take an existing commit object, and reuse the log message
and the authorship information (including the timestamp)
- when creating the commit. With '-C', the editor is not
- invoked; with '-c' the user can further edit the commit
- message.
+ when creating the commit.
+
+-c <commit>::
+--reedit-message=<commit>::
+ Like '-C', but with '-c' the editor is invoked, so that
+ the user can further edit the commit message.
-F <file>::
+--file=<file>::
Take the commit message from the given file. Use '-' to
read the message from the standard input.
---author <author>::
+--author=<author>::
Override the author name used in the commit. Use
`A U Thor <author@example.com>` format.
--m <msg>|--message=<msg>::
+-m <msg>::
+--message=<msg>::
Use the given <msg> as the commit message.
--t <file>|--template=<file>::
+-t <file>::
+--template=<file>::
Use the contents of the given file as the initial version
of the commit message. The editor is invoked and you can
make subsequent changes. If a message is specified using
the `-m` or `-F` options, this option has no effect. This
overrides the `commit.template` configuration variable.
--s|--signoff::
+-s::
+--signoff::
Add Signed-off-by line at the end of the commit message.
+-n::
--no-verify::
This option bypasses the pre-commit and commit-msg hooks.
See also linkgit:githooks[5][hooks].
@@ -105,14 +115,14 @@ OPTIONS
'whitespace' removes just leading/trailing whitespace lines
and 'strip' removes both whitespace and commentary.
--e|--edit::
+-e::
+--edit::
The message taken from file with `-F`, command line with
`-m`, and from file with `-C` are usually used as the
commit log message unmodified. This option lets you
further edit the message taken from these sources.
--amend::
-
Used to amend the tip of the current branch. Prepare the tree
object you would want to replace the latest commit as usual
(this includes the usual -i/-o and explicit paths), and the
@@ -133,13 +143,15 @@ It is a rough equivalent for:
but can be used to amend a merge commit.
--
--i|--include::
+-i::
+--include::
Before making a commit out of staged contents so far,
stage the contents of paths given on the command line
as well. This is usually not what you want unless you
are concluding a conflicted merge.
--o|--only::
+-o::
+--only::
Make a commit only from the paths specified on the
command line, disregarding any contents that have been
staged so far. This is the default mode of operation of
@@ -150,20 +162,32 @@ but can be used to amend a merge commit.
the last commit without committing changes that have
already been staged.
--u|--untracked-files::
- Show all untracked files, also those in uninteresting
- directories, in the "Untracked files:" section of commit
- message template. Without this option only its name and
- a trailing slash are displayed for each untracked
- directory.
+-u[<mode>]::
+--untracked-files[=<mode>]::
+ Show untracked files (Default: 'all').
++
+The mode parameter is optional, and is used to specify
+the handling of untracked files. The possible options are:
++
+--
+ - 'no' - Show no untracked files
+ - 'normal' - Shows untracked files and directories
+ - 'all' - Also shows individual files in untracked directories.
+--
++
+See linkgit:git-config[1] for configuration variable
+used to change the default for when the option is not
+specified.
--v|--verbose::
+-v::
+--verbose::
Show unified diff between the HEAD commit and what
would be committed at the bottom of the commit message
template. Note that this diff output doesn't have its
lines prefixed with '#'.
--q|--quiet::
+-q::
+--quiet::
Suppress commit summary message.
\--::
diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt
index 84b754f8d0..c90421ee7f 100644
--- a/Documentation/git-config.txt
+++ b/Documentation/git-config.txt
@@ -101,7 +101,8 @@ rather than from all available files.
+
See also <<FILES>>.
--f config-file, --file config-file::
+-f config-file::
+--file config-file::
Use the given config file instead of the one specified by GIT_CONFIG.
--remove-section::
@@ -116,7 +117,8 @@ See also <<FILES>>.
--unset-all::
Remove all lines matching the key from config file.
--l, --list::
+-l::
+--list::
List all variables set in config file.
--bool::
@@ -128,7 +130,8 @@ See also <<FILES>>.
in the config file will cause the value to be multiplied
by 1024, 1048576, or 1073741824 prior to output.
--z, --null::
+-z::
+--null::
For all options that output values and/or keys, always
end values with the null character (instead of a
newline). Use newline instead as a delimiter between
diff --git a/Documentation/git-count-objects.txt b/Documentation/git-count-objects.txt
index e1219b3167..1ba85a259a 100644
--- a/Documentation/git-count-objects.txt
+++ b/Documentation/git-count-objects.txt
@@ -18,6 +18,7 @@ them, to help you decide when it is a good time to repack.
OPTIONS
-------
-v::
+--verbose::
In addition to the number of loose objects and disk
space consumed, it reports the number of in-pack
objects, number of packs, and number of objects that can be
diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt
index b7721131dd..3310ae25ff 100644
--- a/Documentation/git-cvsserver.txt
+++ b/Documentation/git-cvsserver.txt
@@ -41,10 +41,13 @@ Don't allow recursing into subdirectories
Don't check for `gitcvs.enabled` in config. You also have to specify a list
of allowed directories (see below) if you want to use this option.
---version, -V::
+-V::
+--version::
Print version information and exit
---help, -h, -H::
+-h::
+-H::
+--help::
Print usage information and exit
<directory>::
diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt
index 3fb71d683e..344f24ea59 100644
--- a/Documentation/git-daemon.txt
+++ b/Documentation/git-daemon.txt
@@ -103,7 +103,8 @@ OPTIONS
Log to syslog instead of stderr. Note that this option does not imply
--verbose, thus by default only error conditions will be logged.
---user-path, --user-path=path::
+--user-path::
+--user-path=path::
Allow ~user notation to be used in requests. When
specified with no parameter, requests to
git://host/~alice/foo is taken as a request to access
@@ -127,7 +128,8 @@ OPTIONS
Save the process id in 'file'. Ignored when the daemon
is run under `--inetd`.
---user=user, --group=group::
+--user=user::
+--group=group::
Change daemon's uid and gid before entering the service loop.
When only `--user` is given without `--group`, the
primary group ID for the user is used. The values of
@@ -138,14 +140,16 @@ Giving these options is an error when used with `--inetd`; use
the facility of inet daemon to achieve the same before spawning
`git-daemon` if needed.
---enable=service, --disable=service::
+--enable=service::
+--disable=service::
Enable/disable the service site-wide per default. Note
that a service disabled site-wide can still be enabled
per repository if it is marked overridable and the
repository enables the service with an configuration
item.
---allow-override=service, --forbid-override=service::
+--allow-override=service::
+--forbid-override=service::
Allow/forbid overriding the site-wide default with per
repository configuration. By default, all the services
are overridable.
diff --git a/Documentation/git-describe.txt b/Documentation/git-describe.txt
index 3f0b7b2f47..9f6f483186 100644
--- a/Documentation/git-describe.txt
+++ b/Documentation/git-describe.txt
@@ -70,6 +70,9 @@ OPTIONS
Only consider tags matching the given pattern (can be used to avoid
leaking private tags made from the repository).
+--always::
+ Show uniquely abbreviated commit object as fallback.
+
EXAMPLES
--------
diff --git a/Documentation/git-diff-files.txt b/Documentation/git-diff-files.txt
index ed9bd75b74..8a64869d27 100644
--- a/Documentation/git-diff-files.txt
+++ b/Documentation/git-diff-files.txt
@@ -30,7 +30,8 @@ The default is to diff against our branch (-2) and the
cleanly resolved paths. The option -0 can be given to
omit diff output for unmerged entries and just show "Unmerged".
--c,--cc::
+-c::
+--cc::
This compares stage 2 (our branch), stage 3 (their
branch) and the working tree file and outputs a combined
diff, similar to the way 'diff-tree' shows a merge
diff --git a/Documentation/git-fast-export.txt b/Documentation/git-fast-export.txt
index 332346cc5d..277a547a02 100644
--- a/Documentation/git-fast-export.txt
+++ b/Documentation/git-fast-export.txt
@@ -36,6 +36,26 @@ when encountering a signed tag. With 'strip', the tags will be made
unsigned, with 'verbatim', they will be silently exported
and with 'warn', they will be exported, but you will see a warning.
+--export-marks=<file>::
+ Dumps the internal marks table to <file> when complete.
+ Marks are written one per line as `:markid SHA-1`. Only marks
+ for revisions are dumped; marks for blobs are ignored.
+ Backends can use this file to validate imports after they
+ have been completed, or to save the marks table across
+ incremental runs. As <file> is only opened and truncated
+ at completion, the same path can also be safely given to
+ \--import-marks.
+
+--import-marks=<file>::
+ Before processing any input, load the marks specified in
+ <file>. The input file must exist, must be readable, and
+ must use the same format as produced by \--export-marks.
++
+Any commits that have already been marked will not be exported again.
+If the backend uses a similar \--import-marks file, this allows for
+incremental bidirectional exporting of the repository by keeping the
+marks the same across runs.
+
EXAMPLES
--------
diff --git a/Documentation/git-fetch-pack.txt b/Documentation/git-fetch-pack.txt
index 6ee3dccc1f..282fcaf17f 100644
--- a/Documentation/git-fetch-pack.txt
+++ b/Documentation/git-fetch-pack.txt
@@ -28,30 +28,32 @@ have a common ancestor commit.
OPTIONS
-------
-\--all::
+--all::
Fetch all remote refs.
-\--quiet, \-q::
+-q::
+--quiet::
Pass '-q' flag to 'git-unpack-objects'; this makes the
cloning process less verbose.
-\--keep, \-k::
+-k::
+--keep::
Do not invoke 'git-unpack-objects' on received data, but
create a single packfile out of it instead, and store it
in the object database. If provided twice then the pack is
locked against repacking.
-\--thin::
+--thin::
Spend extra cycles to minimize the number of objects to be sent.
Use it on slower connection.
-\--include-tag::
+--include-tag::
If the remote side supports it, annotated tags objects will
be downloaded on the same connection as the other objects if
the object the tag references is downloaded. The caller must
otherwise determine the tags this option made available.
-\--upload-pack=<git-upload-pack>::
+--upload-pack=<git-upload-pack>::
Use this to specify the path to 'git-upload-pack' on the
remote side, if is not found on your $PATH.
Installations of sshd ignores the user's environment
@@ -63,16 +65,16 @@ OPTIONS
shells by having a lean .bashrc file (they set most of
the things up in .bash_profile).
-\--exec=<git-upload-pack>::
+--exec=<git-upload-pack>::
Same as \--upload-pack=<git-upload-pack>.
-\--depth=<n>::
+--depth=<n>::
Limit fetching to ancestor-chains not longer than n.
-\--no-progress::
+--no-progress::
Do not show the progress.
-\-v::
+-v::
Run verbosely.
<host>::
diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
index 44060687ab..ea77f1fce5 100644
--- a/Documentation/git-filter-branch.txt
+++ b/Documentation/git-filter-branch.txt
@@ -161,7 +161,8 @@ to other tags will be rewritten to point to the underlying commit.
does this in the '.git-rewrite/' directory but you can override
that choice by this parameter.
--f|--force::
+-f::
+--force::
`git filter-branch` refuses to start with an existing temporary
directory or when there are already refs starting with
'refs/original/', unless forced.
diff --git a/Documentation/git-fmt-merge-msg.txt b/Documentation/git-fmt-merge-msg.txt
index 328cc542dc..2a7cfb980b 100644
--- a/Documentation/git-fmt-merge-msg.txt
+++ b/Documentation/git-fmt-merge-msg.txt
@@ -33,11 +33,13 @@ OPTIONS
Do not list one-line descriptions from the actual commits being
merged.
---summary,--no-summary::
+--summary::
+--no-summary::
Synonyms to --log and --no-log; these are deprecated and will be
removed in the future.
---file <file>, -F <file>::
+-F <file>::
+--file <file>::
Take the list of merged objects from <file> instead of
stdin.
diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt
index 6325ff9a68..b347bfbb14 100644
--- a/Documentation/git-for-each-ref.txt
+++ b/Documentation/git-for-each-ref.txt
@@ -53,7 +53,10 @@ OPTIONS
literally, in the latter case matching completely or from the
beginning up to a slash.
---shell, --perl, --python, --tcl::
+--shell::
+--perl::
+--python::
+--tcl::
If given, strings that substitute `%(fieldname)`
placeholders are quoted as string literals suitable for
the specified host language. This is meant to produce
diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index cdee642060..4dafa39a92 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -74,14 +74,17 @@ include::diff-options.txt[]
-<n>::
Limits the number of patches to prepare.
--o|--output-directory <dir>::
+-o <dir>::
+--output-directory <dir>::
Use <dir> to store the resulting files, instead of the
current working directory.
--n|--numbered::
+-n::
+--numbered::
Name output in '[PATCH n/m]' format.
--N|--no-numbered::
+-N::
+--no-numbered::
Name output in '[PATCH]' format.
--start-number <n>::
@@ -92,11 +95,13 @@ include::diff-options.txt[]
without the default first line of the commit appended.
Mutually exclusive with the --stdout option.
--k|--keep-subject::
+-k::
+--keep-subject::
Do not strip/add '[PATCH]' from the first line of the
commit log message.
--s|--signoff::
+-s::
+--signoff::
Add `Signed-off-by:` line to the commit message, using
the committer identity of yourself.
diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
index 13b9cf770c..1b646b73f0 100644
--- a/Documentation/git-grep.txt
+++ b/Documentation/git-grep.txt
@@ -33,25 +33,30 @@ OPTIONS
Instead of searching in the working tree files, check
the blobs registered in the index file.
--a | --text::
+-a::
+--text::
Process binary files as if they were text.
--i | --ignore-case::
+-i::
+--ignore-case::
Ignore case differences between the patterns and the
files.
-I::
Don't match the pattern in binary files.
--w | --word-regexp::
+-w::
+--word-regexp::
Match the pattern only at word boundary (either begin at the
beginning of a line, or preceded by a non-word character; end at
the end of a line or followed by a non-word character).
--v | --invert-match::
+-v::
+--invert-match::
Select non-matching lines.
--h | -H::
+-h::
+-H::
By default, the command shows the filename for each
match. `-h` option is used to suppress this output.
`-H` is there for completeness and does not do anything
@@ -64,24 +69,33 @@ OPTIONS
option forces paths to be output relative to the project
top directory.
--E | --extended-regexp | -G | --basic-regexp::
+-E::
+--extended-regexp::
+-G::
+--basic-regexp::
Use POSIX extended/basic regexp for patterns. Default
is to use basic regexp.
--F | --fixed-strings::
+-F::
+--fixed-strings::
Use fixed strings for patterns (don't interpret pattern
as a regex).
-n::
Prefix the line number to matching lines.
--l | --files-with-matches | --name-only | -L | --files-without-match::
+-l::
+--files-with-matches::
+--name-only::
+-L::
+--files-without-match::
Instead of showing every matched line, show only the
names of files that contain (or do not contain) matches.
For better compatibility with git-diff, --name-only is a
synonym for --files-with-matches.
--c | --count::
+-c::
+--count::
Instead of showing every matched line, show the number of
lines that match.
@@ -103,7 +117,10 @@ OPTIONS
scripts passing user input to grep. Multiple patterns are
combined by 'or'.
---and | --or | --not | ( | )::
+--and::
+--or::
+--not::
+( ... )::
Specify how multiple patterns are combined using Boolean
expressions. `--or` is the default operator. `--and` has
higher precedence than `--or`. `-e` has to be used for all
diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index 8994c6d434..faecd6bb90 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -28,15 +28,18 @@ former is internally converted into the latter.
OPTIONS
-------
--a|--all::
+-a::
+--all::
Prints all the available commands on the standard output. This
option supersedes any other option.
--i|--info::
+-i::
+--info::
Display manual page for the command in the 'info' format. The
'info' program will be used for that purpose.
--m|--man::
+-m::
+--man::
Display manual page for the command in the 'man' format. This
option may be used to override a value set in the
'help.format' configuration variable.
@@ -45,7 +48,8 @@ By default the 'man' program will be used to display the manual page,
but the 'man.viewer' configuration variable may be used to choose
other display programs (see below).
--w|--web::
+-w::
+--web::
Display manual page for the command in the 'web' (HTML)
format. A web browser will be used for that purpose.
+
diff --git a/Documentation/git-http-push.txt b/Documentation/git-http-push.txt
index 143291d126..d69b20549b 100644
--- a/Documentation/git-http-push.txt
+++ b/Documentation/git-http-push.txt
@@ -15,8 +15,8 @@ DESCRIPTION
Sends missing objects to remote repository, and updates the
remote branch.
-*NOTE*: This command is temporarily disabled if your cURL
-library is older than 7.16, as the combination has been reported
+*NOTE*: This command is temporarily disabled if your libcurl
+is older than 7.16, as the combination has been reported
not to work and sometimes corrupts repository.
OPTIONS
@@ -40,7 +40,8 @@ OPTIONS
Report the list of objects being walked locally and the
list of objects successfully sent to the remote repository.
--d, -D::
+-d::
+-D::
Remove <ref> from remote repository. The specified branch
cannot be the remote HEAD. If -d is specified the following
other conditions must also be met:
diff --git a/Documentation/git-init.txt b/Documentation/git-init.txt
index c48b615da2..792643c809 100644
--- a/Documentation/git-init.txt
+++ b/Documentation/git-init.txt
@@ -16,7 +16,8 @@ OPTIONS
--
--q, \--quiet::
+-q::
+--quiet::
Only print error and warning messages, all other output will be suppressed.
diff --git a/Documentation/git-instaweb.txt b/Documentation/git-instaweb.txt
index 11e6a81779..7da5b8d9a9 100644
--- a/Documentation/git-instaweb.txt
+++ b/Documentation/git-instaweb.txt
@@ -20,24 +20,29 @@ repository.
OPTIONS
-------
--l|--local::
+-l::
+--local::
Only bind the web server to the local IP (127.0.0.1).
--d|--httpd::
+-d::
+--httpd::
The HTTP daemon command-line that will be executed.
Command-line options may be specified here, and the
configuration file will be added at the end of the command-line.
Currently lighttpd, apache2 and webrick are supported.
(Default: lighttpd)
--m|--module-path::
+-m::
+--module-path::
The module path (only needed if httpd is Apache).
(Default: /usr/lib/apache2/modules)
--p|--port::
+-p::
+--port::
The port number to bind the httpd to. (Default: 1234)
--b|--browser::
+-b::
+--browser::
The web browser that should be used to view the gitweb
page. This will be passed to the 'git-web--browse' helper
script along with the URL of the gitweb instance. See
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index 1b0b212245..560594e25f 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -30,23 +30,29 @@ shown:
OPTIONS
-------
--c|--cached::
+-c::
+--cached::
Show cached files in the output (default)
--d|--deleted::
+-d::
+--deleted::
Show deleted files in the output
--m|--modified::
+-m::
+--modified::
Show modified files in the output
--o|--others::
+-o::
+--others::
Show other files in the output
--i|--ignored::
+-i::
+--ignored::
Show ignored files in the output.
Note that this also reverses any exclude list present.
--s|--stage::
+-s::
+--stage::
Show stage files in the output
--directory::
@@ -56,10 +62,12 @@ OPTIONS
--no-empty-directory::
Do not list empty directories. Has no effect without --directory.
--u|--unmerged::
+-u::
+--unmerged::
Show unmerged files in the output (forces --stage)
--k|--killed::
+-k::
+--killed::
Show files on the filesystem that need to be removed due
to file/directory conflicts for checkout-index to
succeed.
@@ -67,11 +75,13 @@ OPTIONS
-z::
\0 line termination on output.
--x|--exclude=<pattern>::
+-x <pattern>::
+--exclude=<pattern>::
Skips files matching pattern.
Note that pattern is a shell wildcard pattern.
--X|--exclude-from=<file>::
+-X <file>::
+--exclude-from=<file>::
exclude patterns are read from <file>; 1 per line.
--exclude-per-directory=<file>::
diff --git a/Documentation/git-ls-remote.txt b/Documentation/git-ls-remote.txt
index 8ad7a94f95..f92f3ca186 100644
--- a/Documentation/git-ls-remote.txt
+++ b/Documentation/git-ls-remote.txt
@@ -20,13 +20,17 @@ commit IDs.
OPTIONS
-------
--h|--heads, -t|--tags::
+-h::
+--heads::
+-t::
+--tags::
Limit to only refs/heads and refs/tags, respectively.
These options are _not_ mutually exclusive; when given
both, references stored in refs/heads and refs/tags are
displayed.
--u <exec>, --upload-pack=<exec>::
+-u <exec>::
+--upload-pack=<exec>::
Specify the full path of linkgit:git-upload-pack[1] on the remote
host. This allows listing references from repositories accessed via
SSH and where the SSH daemon does not use the PATH configured by the
diff --git a/Documentation/git-mv.txt b/Documentation/git-mv.txt
index fb485de2c8..339190600a 100644
--- a/Documentation/git-mv.txt
+++ b/Documentation/git-mv.txt
@@ -34,7 +34,8 @@ OPTIONS
condition. An error happens when a source is neither existing nor
controlled by GIT, or when it would overwrite an existing
file unless '-f' is given.
--n, \--dry-run::
+-n::
+--dry-run::
Do nothing; only show what would happen
diff --git a/Documentation/git-name-rev.txt b/Documentation/git-name-rev.txt
index 12784d7372..ffac3f8f56 100644
--- a/Documentation/git-name-rev.txt
+++ b/Documentation/git-name-rev.txt
@@ -41,6 +41,13 @@ OPTIONS
of linkgit:git-describe[1] more closely. This option
cannot be combined with --stdin.
+--no-undefined::
+ Die with error code != 0 when a reference is undefined,
+ instead of printing `undefined`.
+
+--always::
+ Show uniquely abbreviated commit object as fallback.
+
EXAMPLE
-------
diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt
index d5a87effa4..f4d8d68e34 100644
--- a/Documentation/git-pack-objects.txt
+++ b/Documentation/git-pack-objects.txt
@@ -79,7 +79,8 @@ base-name::
reference was included in the resulting packfile. This
can be useful to send new tags to native git clients.
---window=[N], --depth=[N]::
+--window=[N]::
+--depth=[N]::
These two options affect how the objects contained in
the pack are stored using delta compression. The
objects are first internally sorted by type, size and
diff --git a/Documentation/git-pack-refs.txt b/Documentation/git-pack-refs.txt
index fa48681374..c0718468d5 100644
--- a/Documentation/git-pack-refs.txt
+++ b/Documentation/git-pack-refs.txt
@@ -42,7 +42,7 @@ unpacked.
OPTIONS
-------
-\--all::
+--all::
The command by default packs all tags and refs that are already
packed, and leaves other refs
@@ -51,7 +51,7 @@ developed and packing their tips does not help performance.
This option causes branch tips to be packed as well. Useful for
a repository with many branches of historical interests.
-\--no-prune::
+--no-prune::
The command usually removes loose refs under `$GIT_DIR/refs`
hierarchy after packing them. This option tells it not to.
diff --git a/Documentation/git-peek-remote.txt b/Documentation/git-peek-remote.txt
index 56be1b6118..ffbf93a799 100644
--- a/Documentation/git-peek-remote.txt
+++ b/Documentation/git-peek-remote.txt
@@ -16,7 +16,7 @@ This command is deprecated; use `git-ls-remote` instead.
OPTIONS
-------
-\--upload-pack=<git-upload-pack>::
+--upload-pack=<git-upload-pack>::
Use this to specify the path to 'git-upload-pack' on the
remote side, if it is not found on your $PATH. Some
installations of sshd ignores the user's environment
diff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt
index 7283d07a0e..ec335d6fab 100644
--- a/Documentation/git-prune.txt
+++ b/Documentation/git-prune.txt
@@ -37,7 +37,7 @@ OPTIONS
\--::
Do not interpret any more arguments as options.
-\--expire <time>::
+--expire <time>::
Only expire loose objects older than <time>.
<head>...::
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index 5c522ced98..d0f1595f7e 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -30,7 +30,7 @@ include::merge-options.txt[]
:git-pull: 1
-\--rebase::
+--rebase::
Instead of a merge, perform a rebase after fetching. If
there is a remote ref for the upstream branch, and this branch
was rebased since last fetched, the rebase uses that information
@@ -38,13 +38,14 @@ include::merge-options.txt[]
for branch `<name>`, set configuration `branch.<name>.rebase`
to `true`.
+
-*NOTE:* This is a potentially _dangerous_ mode of operation.
+[NOTE]
+This is a potentially _dangerous_ mode of operation.
It rewrites history, which does not bode well when you
published that history already. Do *not* use this option
unless you have read linkgit:git-rebase[1] carefully.
-\--no-rebase::
- Override earlier \--rebase.
+--no-rebase::
+ Override earlier --rebase.
include::fetch-options.txt[]
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 9d8c379717..f3d5d883a7 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -61,13 +61,14 @@ already exists on the remote side. This is the default operation mode
if no explicit refspec is found (that is neither on the command line
nor in any Push line of the corresponding remotes file---see below).
-\--all::
+--all::
Instead of naming each ref to push, specifies that all
refs under `$GIT_DIR/refs/heads/` be pushed.
-\--mirror::
+--mirror::
Instead of naming each ref to push, specifies that all
- refs under `$GIT_DIR/refs/heads/` and `$GIT_DIR/refs/tags/`
+ refs under `$GIT_DIR/refs/` (which includes but is not
+ limited to `refs/heads/`, `refs/remotes/`, and `refs/tags/`)
be mirrored to the remote repository. Newly created local
refs will be pushed to the remote end, locally updated refs
will be force updated on the remote end, and deleted refs
@@ -75,39 +76,42 @@ nor in any Push line of the corresponding remotes file---see below).
if the configuration option `remote.<remote>.mirror` is
set.
-\--dry-run::
+--dry-run::
Do everything except actually send the updates.
-\--tags::
+--tags::
All refs under `$GIT_DIR/refs/tags` are pushed, in
addition to refspecs explicitly listed on the command
line.
-\--receive-pack=<git-receive-pack>::
+--receive-pack=<git-receive-pack>::
Path to the 'git-receive-pack' program on the remote
end. Sometimes useful when pushing to a remote
repository over ssh, and you do not have the program in
a directory on the default $PATH.
-\--exec=<git-receive-pack>::
+--exec=<git-receive-pack>::
Same as \--receive-pack=<git-receive-pack>.
--f, \--force::
+-f::
+--force::
Usually, the command refuses to update a remote ref that is
not an ancestor 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.
-\--repo=<repo>::
+--repo=<repo>::
When no repository is specified the command defaults to
"origin"; this overrides it.
-\--thin, \--no-thin::
+--thin::
+--no-thin::
These options are passed to `git-send-pack`. Thin
transfer spends extra cycles to minimize the number of
objects to be sent and meant to be used on slower connection.
--v, \--verbose::
+-v::
+--verbose::
Run verbosely.
include::urls-remotes.txt[]
diff --git a/Documentation/git-quiltimport.txt b/Documentation/git-quiltimport.txt
index d0bc182c74..0600379394 100644
--- a/Documentation/git-quiltimport.txt
+++ b/Documentation/git-quiltimport.txt
@@ -29,6 +29,8 @@ preserved as the 1 line subject in the git description.
OPTIONS
-------
+
+-n::
--dry-run::
Walk through the patches in the series and warn
if we cannot find all of the necessary information to commit
diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index cbe68352bf..58fb906ef6 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -50,6 +50,9 @@ OPTIONS
trees that are not directly related to the current
working tree status into a temporary index file.
+-v::
+ Show the progress of checking files out.
+
--trivial::
Restrict three-way merge by `git-read-tree` to happen
only if there is no file-level merging required, instead
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index cc48beec75..7166414355 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -213,19 +213,22 @@ OPTIONS
--skip::
Restart the rebasing process by skipping the current patch.
--m, \--merge::
+-m::
+--merge::
Use merging strategies to rebase. When the recursive (default) merge
strategy is used, this allows rebase to be aware of renames on the
upstream side.
--s <strategy>, \--strategy=<strategy>::
+-s <strategy>::
+--strategy=<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-recursive` when merging a single
head, `git-merge-octopus` otherwise). This implies --merge.
--v, \--verbose::
+-v::
+--verbose::
Display a diffstat of what changed upstream since the last rebase.
-C<n>::
@@ -238,12 +241,14 @@ OPTIONS
This flag is passed to the `git-apply` program
(see linkgit:git-apply[1]) that applies the patch.
--i, \--interactive::
+-i::
+--interactive::
Make a list of the commits which are about to be rebased. Let the
user edit that list before rebasing. This mode can also be used to
split commits (see SPLITTING COMMITS below).
--p, \--preserve-merges::
+-p::
+--preserve-merges::
Instead of ignoring merges, try to recreate them. This option
only works in interactive mode.
diff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt
index e97dc09296..345943a264 100644
--- a/Documentation/git-remote.txt
+++ b/Documentation/git-remote.txt
@@ -9,11 +9,11 @@ git-remote - manage set of tracked repositories
SYNOPSIS
--------
[verse]
-'git-remote'
+'git-remote' [-v | --verbose]
'git-remote' add [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
'git-remote' rm <name>
-'git-remote' show <name>
-'git-remote' prune <name>
+'git-remote' show [-n] <name>
+'git-remote' prune [-n | --dry-run] <name>
'git-remote' update [group]
DESCRIPTION
@@ -22,6 +22,14 @@ DESCRIPTION
Manage the set of repositories ("remotes") whose branches you track.
+OPTIONS
+-------
+
+-v::
+--verbose::
+ Be a little more verbose and show remote url after name.
+
+
COMMANDS
--------
@@ -72,9 +80,8 @@ These stale branches have already been removed from the remote repository
referenced by <name>, but are still locally available in
"remotes/<name>".
+
-With `-n` option, the remote heads are not confirmed first with `git
-ls-remote <name>`; cached information is used instead. Use with
-caution.
+With `--dry-run` option, report what branches will be pruned, but do no
+actually prune them.
'update'::
diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
index 793dccaa9d..04d6f1fbc4 100644
--- a/Documentation/git-repack.txt
+++ b/Documentation/git-repack.txt
@@ -73,7 +73,8 @@ OPTIONS
this repository (or a direct copy of it)
over HTTP or FTP. See gitlink:git-update-server-info[1].
---window=[N], --depth=[N]::
+--window=[N]::
+--depth=[N]::
These two options affect how the objects contained in the pack are
stored using delta compression. The objects are first internally
sorted by type, size and optionally names and compared against the
diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt
index a0ef1fd550..9e273bc5a6 100644
--- a/Documentation/git-rev-parse.txt
+++ b/Documentation/git-rev-parse.txt
@@ -52,7 +52,8 @@ OPTIONS
The parameter given must be usable as a single, valid
object name. Otherwise barf and abort.
--q, --quiet::
+-q::
+--quiet::
Only meaningful in `--verify` mode. Do not output an error
message if the first argument is not a valid object name;
instead exit with non-zero status silently.
@@ -119,16 +120,19 @@ OPTIONS
--is-bare-repository::
When the repository is bare print "true", otherwise "false".
---short, --short=number::
+--short::
+--short=number::
Instead of outputting the full SHA1 values of object names try to
abbreviate them to a shorter unique name. When no length is specified
7 is used. The minimum length is 4.
---since=datestring, --after=datestring::
+--since=datestring::
+--after=datestring::
Parses the date string, and outputs corresponding
--max-age= parameter for git-rev-list command.
---until=datestring, --before=datestring::
+--until=datestring::
+--before=datestring::
Parses the date string, and outputs corresponding
--min-age= parameter for git-rev-list command.
diff --git a/Documentation/git-revert.txt b/Documentation/git-revert.txt
index 5e6adfcea3..5b49b81386 100644
--- a/Documentation/git-revert.txt
+++ b/Documentation/git-revert.txt
@@ -22,12 +22,14 @@ OPTIONS
For a more complete list of ways to spell commit names, see
"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
--e|--edit::
+-e::
+--edit::
With this option, `git-revert` will let you edit the commit
message prior to committing the revert. This is the default if
you run the command from a terminal.
--m parent-number|--mainline parent-number::
+-m parent-number::
+--mainline parent-number::
Usually you cannot revert a merge because you do not know which
side of the merge should be considered the mainline. This
option specifies the parent number (starting from 1) of
@@ -38,7 +40,8 @@ OPTIONS
With this option, `git-revert` will not start the commit
message editor.
--n|--no-commit::
+-n::
+--no-commit::
Usually the command automatically creates a commit with
a commit log message stating which commit was reverted.
This flag applies the change necessary to revert the
@@ -51,7 +54,8 @@ OPTIONS
This is useful when reverting more than one commits'
effect to your working tree in a row.
--s|--signoff::
+-s::
+--signoff::
Add Signed-off-by line at the end of the commit message.
diff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt
index da3fe59135..d88554bedc 100644
--- a/Documentation/git-rm.txt
+++ b/Documentation/git-rm.txt
@@ -38,7 +38,8 @@ OPTIONS
-f::
Override the up-to-date check.
--n, \--dry-run::
+-n::
+--dry-run::
Don't actually remove any file(s). Instead, just show
if they exist in the index and would otherwise be removed
by the command.
@@ -52,15 +53,16 @@ OPTIONS
the list of files, (useful when filenames might be mistaken
for command-line options).
-\--cached::
+--cached::
Use this option to unstage and remove paths only from the index.
Working tree files, whether modified or not, will be
left alone.
-\--ignore-unmatch::
+--ignore-unmatch::
Exit with a zero status even if no files matched.
--q, \--quiet::
+-q::
+--quiet::
git-rm normally outputs one line (in the form of an "rm" command)
for each file removed. This option suppresses that output.
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index a29583796d..251d661afd 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -40,7 +40,8 @@ The --cc option must be repeated for each user you want on the cc list.
Output of this command must be single email address per line.
Default is the value of 'sendemail.cccmd' configuration value.
---chain-reply-to, --no-chain-reply-to::
+--chain-reply-to::
+--no-chain-reply-to::
If this is set, each email will be sent as a reply to the previous
email sent. If disabled with "--no-chain-reply-to", all emails after
the first will be sent as replies to the first email sent. When using
@@ -65,7 +66,8 @@ The --cc option must be repeated for each user you want on the cc list.
Only necessary if --compose is also set. If --compose
is not set, this will be prompted for.
---signed-off-by-cc, --no-signed-off-by-cc::
+--signed-off-by-cc::
+--no-signed-off-by-cc::
If this is set, add emails found in Signed-off-by: or Cc: lines to the
cc list.
Default is the value of 'sendemail.signedoffcc' configuration value;
@@ -141,7 +143,8 @@ user is prompted for a password while the input is masked for privacy.
Only necessary if --compose is also set. If --compose
is not set, this will be prompted for.
---suppress-from, --no-suppress-from::
+--suppress-from::
+--no-suppress-from::
If this is set, do not add the From: address to the cc: list.
Default is the value of 'sendemail.suppressfrom' configuration value;
if that is unspecified, default to --no-suppress-from.
@@ -157,7 +160,8 @@ user is prompted for a password while the input is masked for privacy.
if that is unspecified, default to 'self' if --suppress-from is
specified, as well as 'sob' if --no-signed-off-cc is specified.
---thread, --no-thread::
+--thread::
+--no-thread::
If this is set, the In-Reply-To header will be set on each email sent.
If disabled with "--no-thread", no emails will have the In-Reply-To
header set.
diff --git a/Documentation/git-send-pack.txt b/Documentation/git-send-pack.txt
index 850c351dcd..ba2fdaec08 100644
--- a/Documentation/git-send-pack.txt
+++ b/Documentation/git-send-pack.txt
@@ -21,33 +21,33 @@ updates it from the current repository, sending named refs.
OPTIONS
-------
-\--receive-pack=<git-receive-pack>::
+--receive-pack=<git-receive-pack>::
Path to the 'git-receive-pack' program on the remote
end. Sometimes useful when pushing to a remote
repository over ssh, and you do not have the program in
a directory on the default $PATH.
-\--exec=<git-receive-pack>::
+--exec=<git-receive-pack>::
Same as \--receive-pack=<git-receive-pack>.
-\--all::
+--all::
Instead of explicitly specifying which refs to update,
update all heads that locally exist.
-\--dry-run::
+--dry-run::
Do everything except actually send the updates.
-\--force::
+--force::
Usually, the command refuses to update a remote ref that
is not an ancestor of the local ref used to overwrite it.
This flag disables the check. What this means is that
the remote repository can lose commits; use it with
care.
-\--verbose::
+--verbose::
Run verbosely.
-\--thin::
+--thin::
Spend extra cycles to minimize the number of objects to be sent.
Use it on slower connection.
diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt
index 5079b568e6..daa64d4d81 100644
--- a/Documentation/git-shortlog.txt
+++ b/Documentation/git-shortlog.txt
@@ -22,17 +22,21 @@ Additionally, "[PATCH]" will be stripped from the commit description.
OPTIONS
-------
--h, \--help::
+-h::
+--help::
Print a short usage message and exit.
--n, \--numbered::
+-n::
+--numbered::
Sort output according to the number of commits per author instead
of author alphabetic order.
--s, \--summary::
+-s::
+--summary::
Suppress commit description and provide a commit count summary only.
--e, \--email::
+-e::
+--email::
Show the email address of each author.
-w[<width>[,<indent1>[,<indent2>]]]::
diff --git a/Documentation/git-show-branch.txt b/Documentation/git-show-branch.txt
index 32595ad549..de9e8f885f 100644
--- a/Documentation/git-show-branch.txt
+++ b/Documentation/git-show-branch.txt
@@ -38,10 +38,12 @@ OPTIONS
branches under $GIT_DIR/refs/heads/topic, giving
`topic/*` would show all of them.
--r|--remotes::
+-r::
+--remotes::
Show the remote-tracking branches.
--a|--all::
+-a::
+--all::
Show both remote-tracking branches and local branches.
--current::
diff --git a/Documentation/git-show-ref.txt b/Documentation/git-show-ref.txt
index a85332c363..6b99529b6b 100644
--- a/Documentation/git-show-ref.txt
+++ b/Documentation/git-show-ref.txt
@@ -29,22 +29,26 @@ in the `.git` directory.
OPTIONS
-------
--h, --head::
+-h::
+--head::
Show the HEAD reference.
---tags, --heads::
+--tags::
+--heads::
Limit to only "refs/heads" and "refs/tags", respectively. These
options are not mutually exclusive; when given both, references stored
in "refs/heads" and "refs/tags" are displayed.
--d, --dereference::
+-d::
+--dereference::
Dereference tags into object IDs as well. They will be shown with "^{}"
appended.
--s, --hash::
+-s::
+--hash::
Only show the SHA1 hash, not the reference name. When also using
--dereference the dereferenced tag will still be shown after the SHA1.
@@ -55,17 +59,20 @@ OPTIONS
Aside from returning an error code of 1, it will also print an error
message if '--quiet' was not specified.
---abbrev, --abbrev=len::
+--abbrev::
+--abbrev=len::
Abbreviate the object name. When using `--hash`, you do
not have to say `--hash --abbrev`; `--hash=len` would do.
--q, --quiet::
+-q::
+--quiet::
Do not print any results to stdout. When combined with '--verify' this
can be used to silently check if a reference exists.
---exclude-existing, --exclude-existing=pattern::
+--exclude-existing::
+--exclude-existing=pattern::
Make git-show-ref act as a filter that reads refs from stdin of the
form "^(?:<anything>\s)?<refname>(?:\^\{\})?$" and performs the
diff --git a/Documentation/git-stripspace.txt b/Documentation/git-stripspace.txt
index 4883834a14..8421a39f26 100644
--- a/Documentation/git-stripspace.txt
+++ b/Documentation/git-stripspace.txt
@@ -16,7 +16,8 @@ Remove multiple empty lines, and empty lines at beginning and end.
OPTIONS
-------
--s|--strip-comments::
+-s::
+--strip-comments::
In addition to empty lines, also strip lines starting with '#'.
<stream>::
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index 139206f014..441ae1483b 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -61,10 +61,12 @@ summary::
OPTIONS
-------
--q, --quiet::
+-q::
+--quiet::
Only print error messages.
--b, --branch::
+-b::
+--branch::
Branch of repository to add as submodule.
--cached::
@@ -72,7 +74,8 @@ OPTIONS
commands typically use the commit found in the submodule HEAD, but
with this option, the commit stored in the index is used instead.
--n, --summary-limit::
+-n::
+--summary-limit::
This option is only valid for the summary command.
Limit the summary size (number of commits shown in total).
Giving 0 will disable the summary; a negative number means unlimited
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index f4cbd2f212..97bed54fbd 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -448,6 +448,8 @@ svn-remote.<name>.rewriteRoot::
the repository with a public http:// or svn:// URL in the
metadata so users of it will see the public URL.
+--
+
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
options all affect the metadata generated and used by git-svn; they
*must* be set in the configuration file before any history is imported
@@ -456,7 +458,6 @@ and these settings should never be changed once they are set.
Additionally, only one of these four options can be used per-svn-remote
section because they affect the 'git-svn-id:' metadata line.
---
BASIC EXAMPLES
--------------
diff --git a/Documentation/git-symbolic-ref.txt b/Documentation/git-symbolic-ref.txt
index e9b996baa8..3d3a059c5e 100644
--- a/Documentation/git-symbolic-ref.txt
+++ b/Documentation/git-symbolic-ref.txt
@@ -26,7 +26,8 @@ a regular file whose contents is `ref: refs/heads/master`.
OPTIONS
-------
--q, --quiet::
+-q::
+--quiet::
Do not issue an error message if the <name> is not a
symbolic ref but a detached HEAD; instead exit with
non-zero status silently.
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index c703365186..bbb0a6ad57 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -76,7 +76,8 @@ OPTIONS
--chmod=(+|-)x::
Set the execute permissions on the updated files.
---assume-unchanged, --no-assume-unchanged::
+--assume-unchanged::
+--no-assume-unchanged::
When these flags are specified, the object name recorded
for the paths are not updated. Instead, these options
sets and unsets the "assume unchanged" bit for the
@@ -88,7 +89,8 @@ OPTIONS
filesystem that has very slow lstat(2) system call
(e.g. cifs).
---again, -g::
+-g::
+--again::
Runs `git-update-index` itself on the paths whose index
entries are different from those from the `HEAD` commit.
diff --git a/Documentation/git-update-ref.txt b/Documentation/git-update-ref.txt
index 7f7e3d197b..bae2c8b7ec 100644
--- a/Documentation/git-update-ref.txt
+++ b/Documentation/git-update-ref.txt
@@ -7,7 +7,7 @@ git-update-ref - Update the object name stored in a ref safely
SYNOPSIS
--------
-'git-update-ref' [-m <reason>] (-d <ref> <oldvalue> | [--no-deref] <ref> <newvalue> [<oldvalue>])
+'git-update-ref' [-m <reason>] (-d <ref> [<oldvalue>] | [--no-deref] <ref> <newvalue> [<oldvalue>])
DESCRIPTION
-----------
diff --git a/Documentation/git-update-server-info.txt b/Documentation/git-update-server-info.txt
index aa1ee67cbb..d21be41d06 100644
--- a/Documentation/git-update-server-info.txt
+++ b/Documentation/git-update-server-info.txt
@@ -22,7 +22,8 @@ generates such auxiliary files.
OPTIONS
-------
--f|--force::
+-f::
+--force::
Update the info files from scratch.
diff --git a/Documentation/git-upload-pack.txt b/Documentation/git-upload-pack.txt
index 521da5b200..bac465e13f 100644
--- a/Documentation/git-upload-pack.txt
+++ b/Documentation/git-upload-pack.txt
@@ -24,10 +24,10 @@ repository. For push operations, see 'git-send-pack'.
OPTIONS
-------
-\--strict::
+--strict::
Do not try <directory>/.git/ if <directory> is no git directory.
-\--timeout=<n>::
+--timeout=<n>::
Interrupt transfer after <n> seconds of inactivity.
<directory>::
diff --git a/Documentation/git-web--browse.txt b/Documentation/git-web--browse.txt
index f8d5fb11d1..e80a7c1cc4 100644
--- a/Documentation/git-web--browse.txt
+++ b/Documentation/git-web--browse.txt
@@ -31,14 +31,17 @@ Custom commands may also be specified.
OPTIONS
-------
--b BROWSER|--browser=BROWSER::
+-b BROWSER::
+--browser=BROWSER::
Use the specified BROWSER. It must be in the list of supported
browsers.
--t BROWSER|--tool=BROWSER::
+-t BROWSER::
+--tool=BROWSER::
Same as above.
--c CONF.VAR|--config=CONF.VAR::
+-c CONF.VAR::
+--config=CONF.VAR::
CONF.VAR is looked up in the git config files. If it's set,
then its value specify the browser that should be used.
diff --git a/Documentation/git.txt b/Documentation/git.txt
index cf67110a91..7414238fe5 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -43,6 +43,11 @@ unreleased) version of git, that is available from 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:
+* link:v1.5.6/git.html[documentation for release 1.5.6]
+
+* release notes for
+ link:RelNotes-1.5.6.txt[1.5.6],
+
* link:v1.5.5/git.html[documentation for release 1.5.5]
* release notes for
@@ -138,7 +143,8 @@ help ...'.
environment variable. If no path is given 'git' will print
the current setting and then exit.
--p|--paginate::
+-p::
+--paginate::
Pipe all output into 'less' (or if set, $PAGER).
--no-pager::
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index 471754eb12..6e67990f64 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -502,6 +502,12 @@ frotz unspecified
Creating an archive
~~~~~~~~~~~~~~~~~~~
+`export-ignore`
+^^^^^^^^^^^^^^^
+
+Files and directories with the attribute `export-ignore` won't be added to
+archive files.
+
`export-subst`
^^^^^^^^^^^^^^
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 4f06ae0ed4..262a4f1626 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -17,7 +17,8 @@ Hooks are little scripts you can place in `$GIT_DIR/hooks`
directory to trigger action at certain points. When
`git-init` is run, a handful example hooks are copied in the
`hooks` directory of the new repository, but by default they are
-all disabled. To enable a hook, make it executable with `chmod +x`.
+all disabled. To enable a hook, rename it by removing its `.sample`
+suffix.
This document describes the currently defined hooks.
diff --git a/Documentation/gitk.txt b/Documentation/gitk.txt
index 14bcf91f40..f843f39bf2 100644
--- a/Documentation/gitk.txt
+++ b/Documentation/gitk.txt
@@ -25,7 +25,8 @@ To control which revisions to shown, the command takes options applicable to
the linkgit:git-rev-list[1] command. This manual page describes only the most
frequently used options.
--n <number>, --max-count=<number>::
+-n <number>::
+--max-count=<number>::
Limits the number of commits to show.
diff --git a/Documentation/gittutorial.txt b/Documentation/gittutorial.txt
index 9563a632eb..d465aab64e 100644
--- a/Documentation/gittutorial.txt
+++ b/Documentation/gittutorial.txt
@@ -114,7 +114,7 @@ newly modified content to the index. Finally, commit your changes with:
$ git commit
------------------------------------------------
-This will again prompt your for a message describing the change, and then
+This will again prompt you for a message describing the change, and then
record a new version of the project.
Alternatively, instead of running `git add` beforehand, you can use
diff --git a/Documentation/howto/setup-git-server-over-http.txt b/Documentation/howto/setup-git-server-over-http.txt
index b7d09c1ec6..4032748608 100644
--- a/Documentation/howto/setup-git-server-over-http.txt
+++ b/Documentation/howto/setup-git-server-over-http.txt
@@ -186,7 +186,7 @@ Step 3: setup the client
------------------------
Make sure that you have HTTP support, i.e. your git was built with
-curl (version more recent than 7.10). The command 'git http-push' with
+libcurl (version more recent than 7.10). The command 'git http-push' with
no argument should display a usage message.
Then, add the following to your $HOME/.netrc (you can do without, but will be
diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt
index f37a776489..ffbc6e9861 100644
--- a/Documentation/merge-options.txt
+++ b/Documentation/merge-options.txt
@@ -2,10 +2,12 @@
Show a diffstat at the end of the merge. The diffstat is also
controlled by the configuration option merge.stat.
--n, \--no-stat::
+-n::
+--no-stat::
Do not show diffstat at the end of the merge.
---summary, \--no-summary::
+--summary::
+--no-summary::
Synonyms to --stat and --no-stat; these are deprecated and will be
removed in the future.
@@ -49,7 +51,8 @@
a fast-forward, only update the branch pointer. This is
the default behavior of git-merge.
--s <strategy>, \--strategy=<strategy>::
+-s <strategy>::
+--strategy=<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
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index e8bea3e18e..ec37555794 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -124,3 +124,25 @@ The placeholders are:
- '%m': left, right or boundary mark
- '%n': newline
- '%x00': print a byte from a hex code
+
+* 'tformat:'
++
+The 'tformat:' format works exactly like 'format:', except that it
+provides "terminator" semantics instead of "separator" semantics. In
+other words, each commit has the message terminator character (usually a
+newline) appended, rather than a separator placed between entries.
+This means that the final entry of a single-line format will be properly
+terminated with a new line, just as the "oneline" format does.
+For example:
++
+---------------------
+$ git log -2 --pretty=format:%h 4da45bef \
+ | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/'
+4da45be
+7134973 -- NO NEWLINE
+
+$ git log -2 --pretty=tformat:%h 4da45bef \
+ | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/'
+4da45be
+7134973
+---------------------
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index 05d5abec25..37dd1d61ea 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -129,7 +129,8 @@ limiting may be applied.
--
--n 'number', --max-count='number'::
+-n 'number'::
+--max-count='number'::
Limit the number of commits output.
@@ -137,21 +138,25 @@ limiting may be applied.
Skip 'number' commits before starting to show the commit output.
---since='date', --after='date'::
+--since='date'::
+--after='date'::
Show commits more recent than a specific date.
---until='date', --before='date'::
+--until='date'::
+--before='date'::
Show commits older than a specific date.
ifdef::git-rev-list[]
---max-age='timestamp', --min-age='timestamp'::
+--max-age='timestamp'::
+--min-age='timestamp'::
Limit the commits output to specified time range.
endif::git-rev-list[]
---author='pattern', --committer='pattern'::
+--author='pattern'::
+--committer='pattern'::
Limit the commits output to ones with author/committer
header lines that match the specified pattern (regular expression).
@@ -161,16 +166,19 @@ endif::git-rev-list[]
Limit the commits output to ones with log message that
matches the specified pattern (regular expression).
--i, --regexp-ignore-case::
+-i::
+--regexp-ignore-case::
Match the regexp limiting patterns without regard to letters case.
--E, --extended-regexp::
+-E::
+--extended-regexp::
Consider the limiting patterns to be extended regular expressions
instead of the default basic regular expressions.
--F, --fixed-strings::
+-F::
+--fixed-strings::
Consider the limiting patterns to be fixed strings (don't interpret
pattern as a regular expression).
@@ -239,7 +247,8 @@ from the other branch (for example, "3rd on b" may be cherry-picked
from branch A). With this option, such pairs of commits are
excluded from the output.
--g, --walk-reflogs::
+-g::
+--walk-reflogs::
Instead of walking the commit ancestry chain, walk
reflog entries from the most recent one to older ones.
@@ -268,7 +277,8 @@ See also linkgit:git-reflog[1].
Output uninteresting commits at the boundary, which are usually
not shown.
---dense, --sparse::
+--dense::
+--sparse::
When optional paths are given, the default behaviour ('--dense') is to
only output commits that changes at least one of them, and also ignore
diff --git a/Documentation/technical/api-builtin.txt b/Documentation/technical/api-builtin.txt
index 52cdb4c520..7ede1e64e5 100644
--- a/Documentation/technical/api-builtin.txt
+++ b/Documentation/technical/api-builtin.txt
@@ -4,7 +4,7 @@ builtin API
Adding a new built-in
---------------------
-There are 4 things to do to add a bulit-in command implementation to
+There are 4 things to do to add a built-in command implementation to
git:
. Define the implementation of the built-in command `foo` with
@@ -18,8 +18,8 @@ git:
defined in `git.c`. The entry should look like:
{ "foo", cmd_foo, <options> },
-
- where options is the bitwise-or of:
++
+where options is the bitwise-or of:
`RUN_SETUP`::
@@ -33,6 +33,12 @@ git:
If the standard output is connected to a tty, spawn a pager and
feed our output to it.
+`NEED_WORK_TREE`::
+
+ Make sure there is a work tree, i.e. the command cannot act
+ on bare repositories.
+ This makes only sense when `RUN_SETUP` is also set.
+
. Add `builtin-foo.o` to `BUILTIN_OBJS` in `Makefile`.
Additionally, if `foo` is a new command, there are 3 more things to do:
@@ -41,8 +47,7 @@ Additionally, if `foo` is a new command, there are 3 more things to do:
. Write documentation in `Documentation/git-foo.txt`.
-. Add an entry for `git-foo` to the list at the end of
- `Documentation/cmd-list.perl`.
+. Add an entry for `git-foo` to `command-list.txt`.
How a built-in is called
diff --git a/Documentation/technical/api-parse-options.txt b/Documentation/technical/api-parse-options.txt
index b7cda94f54..539863b1f9 100644
--- a/Documentation/technical/api-parse-options.txt
+++ b/Documentation/technical/api-parse-options.txt
@@ -1,6 +1,206 @@
parse-options API
=================
-Talk about <parse-options.h>
+The parse-options API is used to parse and massage options in git
+and to provide a usage help with consistent look.
-(Pierre)
+Basics
+------
+
+The argument vector `argv[]` may usually contain mandatory or optional
+'non-option arguments', e.g. a filename or a branch, and 'options'.
+Options are optional arguments that start with a dash and
+that allow to change the behavior of a command.
+
+* There are basically three types of options:
+ 'boolean' options,
+ options with (mandatory) 'arguments' and
+ options with 'optional arguments'
+ (i.e. a boolean option that can be adjusted).
+
+* There are basically two forms of options:
+ 'Short options' consist of one dash (`-`) and one alphanumeric
+ character.
+ 'Long options' begin with two dashes (`\--`) and some
+ alphanumeric characters.
+
+* Options are case-sensitive.
+ Please define 'lower-case long options' only.
+
+The parse-options API allows:
+
+* 'sticked' and 'separate form' of options with arguments.
+ `-oArg` is sticked, `-o Arg` is separate form.
+ `\--option=Arg` is sticked, `\--option Arg` is separate form.
+
+* Long options may be 'abbreviated', as long as the abbreviation
+ is unambiguous.
+
+* Short options may be bundled, e.g. `-a -b` can be specified as `-ab`.
+
+* Boolean long options can be 'negated' (or 'unset') by prepending
+ `no-`, e.g. `\--no-abbrev` instead of `\--abbrev`.
+
+* Options and non-option arguments can clearly be separated using the `\--`
+ option, e.g. `-a -b \--option \-- \--this-is-a-file` indicates that
+ `\--this-is-a-file` must not be processed as an option.
+
+Steps to parse options
+----------------------
+
+. `#include "parse-options.h"`
+
+. define a NULL-terminated
+ `static const char * const builtin_foo_usage[]` array
+ containing alternative usage strings
+
+. define `builtin_foo_options` array as described below
+ in section 'Data Structure'.
+
+. in `cmd_foo(int argc, const char **argv, const char *prefix)`
+ call
+
+ argc = parse_options(argc, argv, builtin_foo_options, builtin_foo_usage, flags);
++
+`parse_options()` will filter out the processed options of `argv[]` and leave the
+non-option arguments in `argv[]`.
+`argc` is updated appropriately because of the assignment.
++
+Flags are the bitwise-or of:
+
+`PARSE_OPT_KEEP_DASHDASH`::
+ Keep the `\--` that usually separates options from
+ non-option arguments.
+
+`PARSE_OPT_STOP_AT_NON_OPTION`::
+ Usually the whole argument vector is massaged and reordered.
+ Using this flag, processing is stopped at the first non-option
+ argument.
+
+Data Structure
+--------------
+
+The main data structure is an array of the `option` struct,
+say `static struct option builtin_add_options[]`.
+There are some macros to easily define options:
+
+`OPT__ABBREV(&int_var)`::
+ Add `\--abbrev[=<n>]`.
+
+`OPT__DRY_RUN(&int_var)`::
+ Add `-n, \--dry-run`.
+
+`OPT__QUIET(&int_var)`::
+ Add `-q, \--quiet`.
+
+`OPT__VERBOSE(&int_var)`::
+ Add `-v, \--verbose`.
+
+`OPT_GROUP(description)`::
+ Start an option group. `description` is a short string that
+ describes the group or an empty string.
+ Start the description with an upper-case letter.
+
+`OPT_BOOLEAN(short, long, &int_var, description)`::
+ Introduce a boolean option.
+ `int_var` is incremented on each use.
+
+`OPT_BIT(short, long, &int_var, description, mask)`::
+ Introduce a boolean option.
+ If used, `int_var` is bitwise-ored with `mask`.
+
+`OPT_SET_INT(short, long, &int_var, description, integer)`::
+ Introduce a boolean option.
+ If used, set `int_var` to `integer`.
+
+`OPT_SET_PTR(short, long, &ptr_var, description, ptr)`::
+ Introduce a boolean option.
+ If used, set `ptr_var` to `ptr`.
+
+`OPT_STRING(short, long, &str_var, arg_str, description)`::
+ Introduce an option with string argument.
+ The string argument is put into `str_var`.
+
+`OPT_INTEGER(short, long, &int_var, description)`::
+ Introduce an option with integer argument.
+ The integer is put into `int_var`.
+
+`OPT_DATE(short, long, &int_var, description)`::
+ Introduce an option with date argument, see `approxidate()`.
+ The timestamp is put into `int_var`.
+
+`OPT_CALLBACK(short, long, &var, arg_str, description, func_ptr)`::
+ Introduce an option with argument.
+ The argument will be fed into the function given by `func_ptr`
+ and the result will be put into `var`.
+ See 'Option Callbacks' below for a more elaborate description.
+
+`OPT_ARGUMENT(long, description)`::
+ Introduce a long-option argument that will be kept in `argv[]`.
+
+
+The last element of the array must be `OPT_END()`.
+
+If not stated otherwise, interpret the arguments as follows:
+
+* `short` is a character for the short option
+ (e.g. `\'e\'` for `-e`, use `0` to omit),
+
+* `long` is a string for the long option
+ (e.g. `"example"` for `\--example`, use `NULL` to omit),
+
+* `int_var` is an integer variable,
+
+* `str_var` is a string variable (`char *`),
+
+* `arg_str` is the string that is shown as argument
+ (e.g. `"branch"` will result in `<branch>`).
+ If set to `NULL`, three dots (`...`) will be displayed.
+
+* `description` is a short string to describe the effect of the option.
+ It shall begin with a lower-case letter and a full stop (`.`) shall be
+ omitted at the end.
+
+Option Callbacks
+----------------
+
+The function must be defined in this form:
+
+ int func(const struct option *opt, const char *arg, int unset)
+
+The callback mechanism is as follows:
+
+* Inside `funct`, the only interesting member of the structure
+ given by `opt` is the void pointer `opt->value`.
+ `\*opt->value` will be the value that is saved into `var`, if you
+ use `OPT_CALLBACK()`.
+ For example, do `*(unsigned long *)opt->value = 42;` to get 42
+ into an `unsigned long` variable.
+
+* Return value `0` indicates success and non-zero return
+ value will invoke `usage_with_options()` and, thus, die.
+
+* If the user negates the option, `arg` is `NULL` and `unset` is 1.
+
+Sophisticated option parsing
+----------------------------
+
+If you need, for example, option callbacks with optional arguments
+or without arguments at all, or if you need other special cases,
+that are not handled by the macros above, you need to specify the
+members of the `option` structure manually.
+
+This is not covered in this document, but well documented
+in `parse-options.h` itself.
+
+Examples
+--------
+
+See `test-parse-options.c` and
+`builtin-add.c`,
+`builtin-clone.c`,
+`builtin-commit.c`,
+`builtin-fetch.c`,
+`builtin-fsck.c`,
+`builtin-rm.c`
+for real-world examples.
diff --git a/Documentation/technical/api-path-list.txt b/Documentation/technical/api-path-list.txt
index d077683171..9dbedd0a67 100644
--- a/Documentation/technical/api-path-list.txt
+++ b/Documentation/technical/api-path-list.txt
@@ -1,9 +1,126 @@
path-list API
=============
-Talk about <path-list.h>, things like
+The path_list API offers a data structure and functions to handle sorted
+and unsorted string lists.
-* it is not just paths but strings in general;
-* the calling sequence.
+The name is a bit misleading, a path_list may store not only paths but
+strings in general.
-(Dscho)
+The caller:
+
+. Allocates and clears a `struct path_list` variable.
+
+. Initializes the members. You might want to set the flag `strdup_paths`
+ if the strings should be strdup()ed. For example, this is necessary
+ when you add something like git_path("..."), since that function returns
+ a static buffer that will change with the next call to git_path().
++
+If you need something advanced, you can manually malloc() the `items`
+member (you need this if you add things later) and you should set the
+`nr` and `alloc` members in that case, too.
+
+. Adds new items to the list, using `path_list_append` or `path_list_insert`.
+
+. Can check if a string is in the list using `path_list_has_path` or
+ `unsorted_path_list_has_path` and get it from the list using
+ `path_list_lookup` for sorted lists.
+
+. Can sort an unsorted list using `sort_path_list`.
+
+. Finally it should free the list using `path_list_clear`.
+
+Example:
+
+----
+struct path_list list;
+int i;
+
+memset(&list, 0, sizeof(struct path_list));
+path_list_append("foo", &list);
+path_list_append("bar", &list);
+for (i = 0; i < list.nr; i++)
+ printf("%s\n", list.items[i].path)
+----
+
+NOTE: It is more efficient to build an unsorted list and sort it
+afterwards, instead of building a sorted list (`O(n log n)` instead of
+`O(n^2)`).
++
+However, if you use the list to check if a certain string was added
+already, you should not do that (using unsorted_path_list_has_path()),
+because the complexity would be quadratic again (but with a worse factor).
+
+Functions
+---------
+
+* General ones (works with sorted and unsorted lists as well)
+
+`print_path_list`::
+
+ Dump a path_list to stdout, useful mainly for debugging purposes. It
+ can take an optional header argument and it writes out the
+ string-pointer pairs of the path_list, each one in its own line.
+
+`path_list_clear`::
+
+ Free a path_list. The `path` pointer of the items will be freed in case
+ the `strdup_paths` member of the path_list is set. The second parameter
+ controls if the `util` pointer of the items should be freed or not.
+
+* Functions for sorted lists only
+
+`path_list_has_path`::
+
+ Determine if the path_list has a given string or not.
+
+`path_list_insert`::
+
+ Insert a new element to the path_list. The returned pointer can be handy
+ if you want to write something to the `util` pointer of the
+ path_list_item containing the just added string.
++
+Since this function uses xrealloc() (which die()s if it fails) if the
+list needs to grow, it is safe not to check the pointer. I.e. you may
+write `path_list_insert(...)->util = ...;`.
+
+`path_list_lookup`::
+
+ Look up a given string in the path_list, returning the containing
+ path_list_item. If the string is not found, NULL is returned.
+
+* Functions for unsorted lists only
+
+`path_list_append`::
+
+ Append a new string to the end of the path_list.
+
+`sort_path_list`::
+
+ Make an unsorted list sorted.
+
+`unsorted_path_list_has_path`::
+
+ It's like `path_list_has_path()` but for unsorted lists.
++
+This function needs to look through all items, as opposed to its
+counterpart for sorted lists, which performs a binary search.
+
+Data structures
+---------------
+
+* `struct path_list_item`
+
+Represents an item of the list. The `path` member is a pointer to the
+string, and you may use the `util` member for any purpose, if you want.
+
+* `struct path_list`
+
+Represents the list itself.
+
+. The array of items are available via the `items` member.
+. The `nr` member contains the number of items stored in the list.
+. The `alloc` member is used to avoid reallocating at every insertion.
+ You should not tamper with it.
+. Setting the `strdup_paths` member to 1 will strdup() the strings
+ before adding them, see above.
diff --git a/Documentation/technical/api-run-command.txt b/Documentation/technical/api-run-command.txt
index c364a22c8f..3e1342acf4 100644
--- a/Documentation/technical/api-run-command.txt
+++ b/Documentation/technical/api-run-command.txt
@@ -63,7 +63,7 @@ command to run in a sub-process.
The caller:
-1. allocates and clears (memset(&chld, '0', sizeof(chld));) a
+1. allocates and clears (memset(&chld, 0, sizeof(chld));) a
struct child_process variable;
2. initializes the members;
3. calls start_command();
@@ -136,7 +136,7 @@ to produce output that the caller reads.
The caller:
-1. allocates and clears (memset(&asy, '0', sizeof(asy));) a
+1. allocates and clears (memset(&asy, 0, sizeof(asy));) a
struct async variable;
2. initializes .proc and .data;
3. calls start_async();
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index bfde507e0e..64a820bf60 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt
@@ -1254,16 +1254,15 @@ these three "file stages" represents a different version of the file:
-------------------------------------------------
$ git show :1:file.txt # the file in a common ancestor of both branches
-$ git show :2:file.txt # the version from HEAD, but including any
- # nonconflicting changes from MERGE_HEAD
-$ git show :3:file.txt # the version from MERGE_HEAD, but including any
- # nonconflicting changes from HEAD.
+$ git show :2:file.txt # the version from HEAD.
+$ git show :3:file.txt # the version from MERGE_HEAD.
-------------------------------------------------
-Since the stage 2 and stage 3 versions have already been updated with
-nonconflicting changes, the only remaining differences between them are
-the important ones; thus linkgit:git-diff[1] can use the information in
-the index to show only those conflicts.
+When you ask linkgit:git-diff[1] to show the conflicts, it runs a
+three-way diff between the conflicted merge results in the work tree with
+stages 2 and 3 to show only hunks whose contents come from both sides,
+mixed (in other words, when a hunk's merge results come only from stage 2,
+that part is not conflicting and is not shown. Same for stage 3).
The diff above shows the differences between the working-tree version of
file.txt and the stage 2 and stage 3 versions. So instead of preceding