summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/RelNotes/1.5.2.1.txt6
-rw-r--r--Documentation/RelNotes/1.6.0.2.txt6
-rw-r--r--Documentation/RelNotes/1.6.1.3.txt4
-rw-r--r--Documentation/RelNotes/1.6.1.4.txt3
-rw-r--r--Documentation/RelNotes/1.6.1.txt6
-rw-r--r--Documentation/RelNotes/1.7.12.3.txt16
-rw-r--r--Documentation/RelNotes/1.7.12.4.txt23
-rw-r--r--Documentation/RelNotes/1.8.0.txt48
-rw-r--r--Documentation/config.txt8
-rw-r--r--Documentation/diff-config.txt4
-rw-r--r--Documentation/git-clone.txt4
-rw-r--r--Documentation/git-commit.txt10
-rw-r--r--Documentation/git-merge.txt2
-rw-r--r--Documentation/git-push.txt2
-rw-r--r--Documentation/git-remote-helpers.txt21
-rw-r--r--Documentation/git-reset.txt8
-rw-r--r--Documentation/git-rm.txt15
-rw-r--r--Documentation/git-status.txt3
-rw-r--r--Documentation/git-submodule.txt7
-rw-r--r--Documentation/git-svn.txt7
-rw-r--r--Documentation/git.txt9
-rw-r--r--Documentation/gitattributes.txt6
-rw-r--r--Documentation/gitcli.txt12
-rw-r--r--Documentation/gitignore.txt6
-rw-r--r--Documentation/gitmodules.txt4
-rw-r--r--Documentation/gitrepository-layout.txt6
-rw-r--r--Documentation/merge-config.txt4
-rw-r--r--Documentation/rev-list-options.txt10
-rw-r--r--Documentation/technical/api-argv-array.txt8
-rw-r--r--Documentation/urls.txt8
30 files changed, 205 insertions, 71 deletions
diff --git a/Documentation/RelNotes/1.5.2.1.txt b/Documentation/RelNotes/1.5.2.1.txt
index ebf20e22a7..d41984df0b 100644
--- a/Documentation/RelNotes/1.5.2.1.txt
+++ b/Documentation/RelNotes/1.5.2.1.txt
@@ -45,9 +45,3 @@ Fixes since v1.5.2
- git-fastimport --import-marks was broken; fixed.
- A lot of documentation updates, clarifications and fixes.
-
---
-exec >/var/tmp/1
-O=v1.5.2-65-g996e2d6
-echo O=`git describe refs/heads/maint`
-git shortlog --no-merges $O..refs/heads/maint
diff --git a/Documentation/RelNotes/1.6.0.2.txt b/Documentation/RelNotes/1.6.0.2.txt
index e1e24b3295..7d8fb85e1b 100644
--- a/Documentation/RelNotes/1.6.0.2.txt
+++ b/Documentation/RelNotes/1.6.0.2.txt
@@ -79,9 +79,3 @@ Fixes since v1.6.0.1
packfile.
Also contains many documentation updates.
-
---
-exec >/var/tmp/1
-O=v1.6.0.1-78-g3632cfc
-echo O=$(git describe maint)
-git shortlog --no-merges $O..maint
diff --git a/Documentation/RelNotes/1.6.1.3.txt b/Documentation/RelNotes/1.6.1.3.txt
index 6f0bde156a..cd08d8174e 100644
--- a/Documentation/RelNotes/1.6.1.3.txt
+++ b/Documentation/RelNotes/1.6.1.3.txt
@@ -26,7 +26,3 @@ Fixes since v1.6.1.2
* RPM binary package installed the html manpages in a wrong place.
Also includes minor documentation fixes and updates.
-
-
---
-git shortlog --no-merges v1.6.1.2-33-gc789350..
diff --git a/Documentation/RelNotes/1.6.1.4.txt b/Documentation/RelNotes/1.6.1.4.txt
index 0ce6316d75..ccbad794c0 100644
--- a/Documentation/RelNotes/1.6.1.4.txt
+++ b/Documentation/RelNotes/1.6.1.4.txt
@@ -39,6 +39,3 @@ Fixes since v1.6.1.3
This fix was first merged to 1.6.2.3.
Also includes minor documentation fixes and updates.
-
---
-git shortlog --no-merges v1.6.1.3..
diff --git a/Documentation/RelNotes/1.6.1.txt b/Documentation/RelNotes/1.6.1.txt
index adb7ccab0a..7b152a6fdc 100644
--- a/Documentation/RelNotes/1.6.1.txt
+++ b/Documentation/RelNotes/1.6.1.txt
@@ -278,9 +278,3 @@ release, unless otherwise noted.
* "gitweb" did not mark non-ASCII characters imported from external HTML fragments
correctly.
-
---
-exec >/var/tmp/1
-O=v1.6.1-rc3-74-gf66bc5f
-echo O=$(git describe master)
-git shortlog --no-merges $O..master ^maint
diff --git a/Documentation/RelNotes/1.7.12.3.txt b/Documentation/RelNotes/1.7.12.3.txt
index 8d4f879458..ecda427a35 100644
--- a/Documentation/RelNotes/1.7.12.3.txt
+++ b/Documentation/RelNotes/1.7.12.3.txt
@@ -4,6 +4,18 @@ Git 1.7.12.3 Release Notes
Fixes since v1.7.12.2
---------------------
+ * "git am" mishandled a patch attached as application/octet-stream
+ (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not
+ honored correctly.
+
+ * It was unclear in the documentation for "git blame" that it is
+ unnecessary for users to use the "--follow" option.
+
+ * A repository created with "git clone --single" had its fetch
+ refspecs set up just like a clone without "--single", leading the
+ subsequent "git fetch" to slurp all the other branches, defeating
+ the whole point of specifying "only this branch".
+
* "git fetch" over http had an old workaround for an unlikely server
misconfiguration; it turns out that this hurts debuggability of the
configuration in general, and has been reverted.
@@ -12,6 +24,10 @@ Fixes since v1.7.12.2
is much less common, and did not advertise the more common "gzip" on
its Accept-Encoding header.
+ * "git receive-pack" (the counterpart to "git push") did not give
+ progress output while processing objects it received to the puser
+ when run over the smart-http protocol.
+
* "git status" honored the ignore=dirty settings in .gitmodules but
"git commit" didn't.
diff --git a/Documentation/RelNotes/1.7.12.4.txt b/Documentation/RelNotes/1.7.12.4.txt
new file mode 100644
index 0000000000..c6da3cc939
--- /dev/null
+++ b/Documentation/RelNotes/1.7.12.4.txt
@@ -0,0 +1,23 @@
+Git 1.7.12.4 Release Notes
+==========================
+
+Fixes since v1.7.12.3
+---------------------
+
+ * "git fetch" over the dumb-http revision walker could segfault when
+ curl's multi interface was used.
+
+ * It was possible to give specific paths for "asciidoc" and other
+ tools in the documentation toolchain, but not for "xmlto".
+
+ * "gitweb" did not give the correct committer timezone in its feed
+ output due to a typo.
+
+ * The "-Xours" (and similarly -Xtheirs) backend option to "git
+ merge -s recursive" was ignored for binary files. Now it is
+ honored.
+
+ * The "binary" synthetic attribute made "diff" to treat the path as
+ binary, but not "merge".
+
+Also contains many documentation updates.
diff --git a/Documentation/RelNotes/1.8.0.txt b/Documentation/RelNotes/1.8.0.txt
index 2528bc379a..43883c14f0 100644
--- a/Documentation/RelNotes/1.8.0.txt
+++ b/Documentation/RelNotes/1.8.0.txt
@@ -4,16 +4,18 @@ Git v1.8.0 Release Notes
Backward compatibility notes
----------------------------
-In the next major release, we will change the behavior of the "git
-push" command. When "git push [$there]" does not say what to push, we
-have used the traditional "matching" semantics so far (all your branches were
-sent to the remote as long as there already are branches of the same
-name over there). We will now use the "simple" semantics, that pushes the
-current branch to the branch with the same name only when the current
+In the next major release (not *this* one), we will change the
+behavior of the "git push" command.
+
+When "git push [$there]" does not say what to push, we have used the
+traditional "matching" semantics so far (all your branches were sent
+to the remote as long as there already are branches of the same name
+over there). We will use the "simple" semantics that pushes the
+current branch to the branch with the same name, only when the current
branch is set to integrate with that remote branch. There is a user
preference configuration variable "push.default" to change this, and
"git push" will warn about the upcoming change until you set this
-variable.
+variable in this release.
"git branch --set-upstream" is deprecated and may be removed in a
relatively distant future. "git branch [-u|--set-upstream-to]" has
@@ -35,7 +37,7 @@ UI, Workflows & Features
* When "git am" sanitizes the "Subject:" line, we strip the prefix from
"Re: subject" and also from a less common "re: subject", but left
- the even less common "RE: subject" intact. We strip that now, too.
+ the even less common "RE: subject" intact. Now we strip that too.
* It was tempting to say "git branch --set-upstream origin/master",
but that tells Git to arrange the local branch "origin/master" to
@@ -62,6 +64,8 @@ UI, Workflows & Features
* "git grep" learned to use a non-standard pattern type by default if
a configuration variable tells it to.
+ * Accumulated updates to "git gui" has been merged.
+
* "git log -g" learned the "--grep-reflog=<pattern>" option to limit
its output to commits with a reflog message that matches the given
pattern.
@@ -73,9 +77,6 @@ UI, Workflows & Features
with the mergetool.$name.cmd configuration variable even for built-in
mergetool backends.
- * The "-Xours" backend option to "git merge -s recursive" now takes
- effect even on binary files.
-
* "git rebase -i" learned the "--edit-todo" option to open an editor
to edit the instruction sheet.
@@ -88,7 +89,7 @@ Foreign Interface
encountering a conflict during "p4 submit".
-Performance, Internal Implementation, etc. (please report possible regressions)
+Performance, Internal Implementation, etc.
* Git ships with a fall-back regexp implementation for platforms with
buggy regexp library, but it was easy for people to keep using their
@@ -153,10 +154,9 @@ to them for details).
* When "git am" is fed an input that has multiple "Content-type: ..."
header, it did not grok charset= attribute correctly.
- * A patch attached as application/octet-stream (e.g. not text/*) were
- mishandled, not correctly honoring Content-Transfer-Encoding
- (e.g. base64).
- (merge 9d55b2e lt/mailinfo-handle-attachment-more-sanely later to maint).
+ * "git am" mishandled a patch attached as application/octet-stream
+ (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not
+ honored correctly.
* "git blame MAKEFILE" run in a history that has "Makefile" but not
"MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
@@ -169,7 +169,6 @@ to them for details).
* It was unclear in the documentation for "git blame" that it is
unnecessary for users to use the "--follow" option.
- (merge e5dce96 jc/blame-follows-renames later to maint).
* Output from "git branch -v" contains "(no branch)" that could be
localized, but the code to align it along with the names of
@@ -184,7 +183,6 @@ to them for details).
refspecs set up just like a clone without "--single", leading the
subsequent "git fetch" to slurp all the other branches, defeating
the whole point of specifying "only this branch".
- (merge 31b808a rt/maint-clone-single later to maint).
* Documentation talked about "first line of commit log" when it meant
the title of the commit. The description was clarified by defining
@@ -208,12 +206,13 @@ to them for details).
* "git fetch" over http had an old workaround for an unlikely server
misconfiguration; it turns out that this hurts debuggability of the
configuration in general, and has been reverted.
- (merge 6ac964a sp/maint-http-info-refs-no-retry later to maint).
* "git fetch" over http advertised that it supports "deflate", which
is much less common, and did not advertise the more common "gzip" on
its Accept-Encoding header.
- (merge aa90b96 sp/maint-http-enable-gzip later to maint).
+
+ * "git fetch" over the dumb-http revision walker could segfault when
+ curl's multi interface was used.
* "git gc --auto" notified the user that auto-packing has triggered
even under the "--quiet" option.
@@ -227,13 +226,15 @@ to them for details).
--author or --committer, it showed commits that mention either A or
B (or both) instead.
+ * The "-Xours" backend option to "git merge -s recursive" was ignored
+ for binary files.
+
* "git p4", when "--use-client-spec" and "--detect-branches" are used
together, misdetected branches.
* "git receive-pack" (the counterpart to "git push") did not give
progress output while processing objects it received to the puser
when run over the smart-http protocol.
- (merge 74eb32d jk/receive-pack-unpack-error-to-pusher later to maint).
* When you misspell the command name you give to the "exec" action in
the "git rebase -i" instruction sheet you were told that 'rebase' is not a
@@ -258,8 +259,9 @@ to them for details).
* "git submodule frotz" was not diagnosed as "frotz" being an unknown
subcommand to "git submodule"; the user instead got a complaint
that "git submodule status" was run with an unknown path "frotz".
- (merge af9c9f9 rr/maint-submodule-unknown-cmd later to maint).
* "git status" honored the ignore=dirty settings in .gitmodules but
"git commit" didn't.
- (merge 8f6811e os/commit-submodule-ignore later to maint).
+
+ * "gitweb" did not give the correct committer timezone in its feed
+ output due to a typo.
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 11f320b962..9a0544cf1f 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -538,14 +538,14 @@ core.pager::
`LESS` variable to some other value. Alternately,
these settings can be overridden on a project or
global basis by setting the `core.pager` option.
- Setting `core.pager` has no affect on the `LESS`
+ Setting `core.pager` has no effect on the `LESS`
environment variable behaviour above, so if you want
to override git's default settings this way, you need
to be explicit. For example, to disable the S option
in a backward compatible manner, set `core.pager`
- to `less -+$LESS -FRX`. This will be passed to the
- shell by git, which will translate the final command to
- `LESS=FRSX less -+FRSX -FRX`.
+ to `less -+S`. This will be passed to the shell by
+ git, which will translate the final command to
+ `LESS=FRSX less -+S`.
core.whitespace::
A comma separated list of common whitespace problems to
diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt
index 67a90a828c..75ab8a51ca 100644
--- a/Documentation/diff-config.txt
+++ b/Documentation/diff-config.txt
@@ -56,6 +56,10 @@ diff.statGraphWidth::
Limit the width of the graph part in --stat output. If set, applies
to all commands generating --stat output except format-patch.
+diff.context::
+ Generate diffs with <n> lines of context instead of the default of
+ 3. This value is overridden by the -U option.
+
diff.external::
If this config variable is set, diff generation is not
performed using the internal diff machinery, but using the
diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index 6d98ef3d2a..7fefdb0384 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -196,9 +196,9 @@ objects from the source repository into a pack in the cloned repository.
`--no-single-branch` is given to fetch the histories near the
tips of all branches.
Further fetches into the resulting repository will only update the
- remote tracking branch for the branch this option was used for the
+ remote-tracking branch for the branch this option was used for the
initial cloning. If the HEAD at the remote did not point at any
- branch when `--single-branch` clone was made, no remote tracking
+ branch when `--single-branch` clone was made, no remote-tracking
branch is created.
--recursive::
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 9594ac8e9d..0295890621 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -13,7 +13,7 @@ SYNOPSIS
[-F <file> | -m <msg>] [--reset-author] [--allow-empty]
[--allow-empty-message] [--no-verify] [-e] [--author=<author>]
[--date=<date>] [--cleanup=<mode>] [--status | --no-status]
- [-i | -o] [--] [<file>...]
+ [-i | -o] [-S[<keyid>]] [--] [<file>...]
DESCRIPTION
-----------
@@ -109,6 +109,10 @@ OPTIONS
format. See linkgit:git-status[1] for details. Implies
`--dry-run`.
+--long::
+ When doing a dry-run, give the output in a the long-format.
+ Implies `--dry-run`.
+
-z::
--null::
When showing `short` or `porcelain` status output, terminate
@@ -276,6 +280,10 @@ configuration variable documented in linkgit:git-config[1].
commit message template when using an editor to prepare the
default commit message.
+-S[<keyid>]::
+--gpg-sign[=<keyid>]::
+ GPG-sign commit.
+
\--::
Do not interpret any more arguments as options.
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index 20f9228511..d34ea3c50b 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -99,7 +99,7 @@ commit or stash your changes before running 'git merge'.
more than two parents (affectionately called an Octopus merge).
+
If no commit is given from the command line, and if `merge.defaultToUpstream`
-configuration variable is set, merge the remote tracking branches
+configuration variable is set, merge the remote-tracking branches
that the current branch is configured to use as its upstream.
See also the configuration section of this manual page.
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 22d2580129..fe46c4258a 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -175,7 +175,7 @@ useful if you write an alias or script around 'git push'.
--recurse-submodules=check|on-demand::
Make sure all submodule commits used by the revisions to be
- pushed are available on a remote tracking branch. If 'check' is
+ pushed are available on a remote-tracking branch. If 'check' is
used git will verify that all submodule commits that changed in
the revisions to be pushed are available on at least one remote
of the submodule. If any commits are missing the push will be
diff --git a/Documentation/git-remote-helpers.txt b/Documentation/git-remote-helpers.txt
index f5836e46d0..5ce4cda8e7 100644
--- a/Documentation/git-remote-helpers.txt
+++ b/Documentation/git-remote-helpers.txt
@@ -98,6 +98,20 @@ advertised with this capability must cover all refs reported by
the list command. If no 'refspec' capability is advertised,
there is an implied `refspec *:*`.
+'bidi-import'::
+ The fast-import commands 'cat-blob' and 'ls' can be used by remote-helpers
+ to retrieve information about blobs and trees that already exist in
+ fast-import's memory. This requires a channel from fast-import to the
+ remote-helper.
+ If it is advertised in addition to "import", git establishes a pipe from
+ fast-import to the remote-helper's stdin.
+ It follows that git and fast-import are both connected to the
+ remote-helper's stdin. Because git can send multiple commands to
+ the remote-helper it is required that helpers that use 'bidi-import'
+ buffer all 'import' commands of a batch before sending data to fast-import.
+ This is to prevent mixing commands and fast-import responses on the
+ helper's stdin.
+
Capabilities for Pushing
~~~~~~~~~~~~~~~~~~~~~~~~
'connect'::
@@ -286,7 +300,12 @@ terminated with a blank line. For each batch of 'import', the remote
helper should produce a fast-import stream terminated by a 'done'
command.
+
-Supported if the helper has the "import" capability.
+Note that if the 'bidi-import' capability is used the complete batch
+sequence has to be buffered before starting to send data to fast-import
+to prevent mixing of commands and fast-import responses on the helper's
+stdin.
++
+Supported if the helper has the 'import' capability.
'connect' <service>::
Connects to given service. Standard input and standard output
diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt
index 117e3743a6..978d8da50c 100644
--- a/Documentation/git-reset.txt
+++ b/Documentation/git-reset.txt
@@ -10,7 +10,7 @@ SYNOPSIS
[verse]
'git reset' [-q] [<commit>] [--] <paths>...
'git reset' (--patch | -p) [<commit>] [--] [<paths>...]
-'git reset' (--soft | --mixed | --hard | --merge | --keep) [-q] [<commit>]
+'git reset' [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]
DESCRIPTION
-----------
@@ -43,11 +43,11 @@ This means that `git reset -p` is the opposite of `git add -p`, i.e.
you can use it to selectively reset hunks. See the ``Interactive Mode''
section of linkgit:git-add[1] to learn how to operate the `--patch` mode.
-'git reset' --<mode> [<commit>]::
+'git reset' [<mode>] [<commit>]::
This form resets the current branch head to <commit> and
possibly updates the index (resetting it to the tree of <commit>) and
- the working tree depending on <mode>, which
- must be one of the following:
+ the working tree depending on <mode>. If <mode> is omitted,
+ defaults to "--mixed". The <mode> must be one of the following:
+
--
--soft::
diff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt
index 5d31860eb1..882cb1171b 100644
--- a/Documentation/git-rm.txt
+++ b/Documentation/git-rm.txt
@@ -107,6 +107,21 @@ as well as modifications of existing paths.
Typically you would first remove all tracked files from the working
tree using this command:
+Submodules
+~~~~~~~~~~
+Only submodules using a gitfile (which means they were cloned
+with a git version 1.7.8 or newer) will be removed from the work
+tree, as their repository lives inside the .git directory of the
+superproject. If a submodule (or one of those nested inside it)
+still uses a .git directory, `git rm` will fail - no matter if forced
+or not - to protect the submodule's history.
+
+A submodule is considered up-to-date when the HEAD is the same as
+recorded in the index, no tracked files are modified and no untracked
+files that aren't ignored are present in the submodules work tree.
+Ignored files are deemed expendable and won't stop a submodule's work
+tree from being removed.
+
----------------
git ls-files -z | xargs -0 rm -f
----------------
diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt
index 67e5f53a9e..9f1ef9a463 100644
--- a/Documentation/git-status.txt
+++ b/Documentation/git-status.txt
@@ -38,6 +38,9 @@ OPTIONS
across git versions and regardless of user configuration. See
below for details.
+--long::
+ Give the output in the long-format. This is the default.
+
-u[<mode>]::
--untracked-files[=<mode>]::
Show untracked files.
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index b4683bba1b..1d6527ab9f 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -9,7 +9,7 @@ git-submodule - Initialize, update or inspect submodules
SYNOPSIS
--------
[verse]
-'git submodule' [--quiet] add [-b branch] [-f|--force]
+'git submodule' [--quiet] add [-b branch] [-f|--force] [--name <name>]
[--reference <repository>] [--] <repository> [<path>]
'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]
'git submodule' [--quiet] init [--] [<path>...]
@@ -265,6 +265,11 @@ OPTIONS
Initialize all submodules for which "git submodule init" has not been
called so far before updating.
+--name::
+ This option is only valid for the add command. It sets the submodule's
+ name to the given string instead of defaulting to its path. The name
+ must be valid as a directory name and may not end with a '/'.
+
--reference <repository>::
This option is only valid for add and update commands. These
commands sometimes need to clone a remote repository. In this case,
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index cfe8d2b5df..8b0d3adfed 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -146,6 +146,13 @@ Skip "branches" and "tags" of first level directories;;
------------------------------------------------------------------------
--
+--log-window-size=<n>;;
+ Fetch <n> log entries per request when scanning Subversion history.
+ The default is 100. For very large Subversion repositories, larger
+ values may be needed for 'clone'/'fetch' to complete in reasonable
+ time. But overly large values may lead to higher memory usage and
+ request timeouts.
+
'clone'::
Runs 'init' and 'fetch'. It will automatically create a
directory based on the basename of the URL passed to it;
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 48bd04e22d..4a89a12513 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -43,9 +43,16 @@ unreleased) version of git, that is available from 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:
-* link:v1.7.12.2/git.html[documentation for release 1.7.12.2]
+* link:v1.8.0/git.html[documentation for release 1.8.0]
* release notes for
+ link:RelNotes/1.8.0.txt[1.8.0],
+
+* link:v1.7.12.4/git.html[documentation for release 1.7.12.4]
+
+* release notes for
+ link:RelNotes/1.7.12.4.txt[1.7.12.4],
+ link:RelNotes/1.7.12.3.txt[1.7.12.3],
link:RelNotes/1.7.12.2.txt[1.7.12.2],
link:RelNotes/1.7.12.1.txt[1.7.12.1],
link:RelNotes/1.7.12.txt[1.7.12].
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index 99ed04d7ab..2698f63cf9 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -56,6 +56,7 @@ When more than one pattern matches the path, a later line
overrides an earlier line. This overriding is done per
attribute. The rules how the pattern matches paths are the
same as in `.gitignore` files; see linkgit:gitignore[5].
+Unlike `.gitignore`, negative patterns are forbidden.
When deciding what attributes are assigned to a path, git
consults `$GIT_DIR/info/attributes` file (which has the highest
@@ -66,6 +67,11 @@ is from the path in question, the lower its precedence). Finally
global and system-wide files are considered (they have the lowest
precedence).
+When the `.gitattributes` file is missing from the work tree, the
+path in the index is used as a fall-back. During checkout process,
+`.gitattributes` in the index is used and then the file in the
+working tree is used as a fall-back.
+
If you wish to affect only a single repository (i.e., to assign
attributes to files that are particular to
one user's workflow for that repository), then
diff --git a/Documentation/gitcli.txt b/Documentation/gitcli.txt
index f6ba90c2da..3bc1500eda 100644
--- a/Documentation/gitcli.txt
+++ b/Documentation/gitcli.txt
@@ -93,7 +93,7 @@ ENHANCED OPTION PARSER
From the git 1.5.4 series and further, many git commands (not all of them at the
time of the writing though) come with an enhanced option parser.
-Here is an exhaustive list of the facilities provided by this option parser.
+Here is a list of the facilities provided by this option parser.
Magic Options
@@ -137,6 +137,16 @@ options. This means that you can for example use `git rm -rf` or
`git clean -fdx`.
+Abbreviating long options
+~~~~~~~~~~~~~~~~~~~~~~~~~
+Commands that support the enhanced option parser accepts unique
+prefix of a long option as if it is fully spelled out, but use this
+with a caution. For example, `git commit --amen` behaves as if you
+typed `git commit --amend`, but that is true only until a later version
+of Git introduces another option that shares the same prefix,
+e.g `git commit --amenity" option.
+
+
Separating argument from the option
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can write the mandatory option parameter to an option as a separate
diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt
index 96639e02bd..1b82fe1969 100644
--- a/Documentation/gitignore.txt
+++ b/Documentation/gitignore.txt
@@ -74,11 +74,15 @@ PATTERN FORMAT
for readability.
- A line starting with # serves as a comment.
+ Put a backslash ("`\`") in front of the first hash for patterns
+ that begin with a hash.
- - An optional prefix '!' which negates the pattern; any
+ - An optional prefix "`!`" which negates the pattern; any
matching file excluded by a previous pattern will become
included again. If a negated pattern matches, this will
override lower precedence patterns sources.
+ Put a backslash ("`\`") in front of the first "`!`" for patterns
+ that begin with a literal "`!`", for example, "`\!important!.txt`".
- If the pattern ends with a slash, it is removed for the
purpose of the following description, but it would only find
diff --git a/Documentation/gitmodules.txt b/Documentation/gitmodules.txt
index 4effd78902..ab3e91c054 100644
--- a/Documentation/gitmodules.txt
+++ b/Documentation/gitmodules.txt
@@ -18,7 +18,9 @@ working tree, is a text file with a syntax matching the requirements
of linkgit:git-config[1].
The file contains one subsection per submodule, and the subsection value
-is the name of the submodule. Each submodule section also contains the
+is the name of the submodule. The name is set to the path where the
+submodule has been added unless it was customized with the '--name'
+option of 'git submodule add'. Each submodule section also contains the
following required keys:
submodule.<name>.path::
diff --git a/Documentation/gitrepository-layout.txt b/Documentation/gitrepository-layout.txt
index 5c891f1169..9f628862b4 100644
--- a/Documentation/gitrepository-layout.txt
+++ b/Documentation/gitrepository-layout.txt
@@ -93,6 +93,12 @@ refs/remotes/`name`::
records tip-of-the-tree commit objects of branches copied
from a remote repository.
+refs/replace/`<obj-sha1>`::
+ records the SHA1 of the object that replaces `<obj-sha1>`.
+ This is similar to info/grafts and is internally used and
+ maintained by linkgit:git-replace[1]. Such refs can be exchanged
+ between repositories while grafts are not.
+
packed-refs::
records the same information as refs/heads/, refs/tags/,
and friends record in a more efficient way. See
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 861bd6f553..9bb4956ccd 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -9,11 +9,11 @@ merge.conflictstyle::
merge.defaultToUpstream::
If merge is called without any commit argument, merge the upstream
branches configured for the current branch by using their last
- observed values stored in their remote tracking branches.
+ observed values stored in their remote-tracking branches.
The values of the `branch.<current branch>.merge` that name the
branches at the remote named by `branch.<current branch>.remote`
are consulted, and then they are mapped via `remote.<remote>.fetch`
- to their corresponding remote tracking branches, and the tips of
+ to their corresponding remote-tracking branches, and the tips of
these tracking branches are merged.
merge.ff::
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index ee497430cb..1ec14a068e 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -79,6 +79,11 @@ if it is part of the log message.
Match the regexp limiting patterns without regard to letters case.
+--basic-regexp::
+
+ Consider the limiting patterns to be basic regular expressions;
+ this is the default.
+
-E::
--extended-regexp::
@@ -91,6 +96,11 @@ if it is part of the log message.
Consider the limiting patterns to be fixed strings (don't interpret
pattern as a regular expression).
+--perl-regexp::
+
+ Consider the limiting patterns to be Perl-compatible regexp.
+ Requires libpcre to be compiled in.
+
--remove-empty::
Stop when a given path disappears from the tree.
diff --git a/Documentation/technical/api-argv-array.txt b/Documentation/technical/api-argv-array.txt
index 1a797812fb..a959517b23 100644
--- a/Documentation/technical/api-argv-array.txt
+++ b/Documentation/technical/api-argv-array.txt
@@ -53,3 +53,11 @@ Functions
`argv_array_clear`::
Free all memory associated with the array and return it to the
initial, empty state.
+
+`argv_array_detach`::
+ Detach the argv array from the `struct argv_array`, transfering
+ ownership of the allocated array and strings.
+
+`argv_array_free_detached`::
+ Free the memory allocated by a `struct argv_array` that was later
+ detached and is now no longer needed.
diff --git a/Documentation/urls.txt b/Documentation/urls.txt
index 289019478d..1d15ee7e52 100644
--- a/Documentation/urls.txt
+++ b/Documentation/urls.txt
@@ -6,8 +6,12 @@ address of the remote server, and the path to the repository.
Depending on the transport protocol, some of this information may be
absent.
-Git natively supports ssh, git, http, https, ftp, ftps, and rsync
-protocols. The following syntaxes may be used with them:
+Git supports ssh, git, http, and https protocols (in addition, ftp,
+and ftps can be used for fetching and rsync can be used for fetching
+and pushing, but these are inefficient and deprecated; do not use
+them).
+
+The following syntaxes may be used with them:
- ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/path/to/repo.git/
- git://host.xz{startsb}:port{endsb}/path/to/repo.git/