summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/RelNotes/2.4.4.txt35
-rw-r--r--Documentation/RelNotes/2.4.5.txt28
-rw-r--r--Documentation/RelNotes/2.5.0.txt192
-rw-r--r--Documentation/config.txt8
-rw-r--r--Documentation/fmt-merge-msg-config.txt10
-rw-r--r--Documentation/git-am.txt7
-rw-r--r--Documentation/git-blame.txt2
-rw-r--r--Documentation/git-branch.txt8
-rw-r--r--Documentation/git-checkout.txt6
-rw-r--r--Documentation/git-describe.txt2
-rw-r--r--Documentation/git-fmt-merge-msg.txt12
-rw-r--r--Documentation/git-format-patch.txt2
-rw-r--r--Documentation/git-pull.txt3
-rw-r--r--Documentation/git-rev-list.txt1
-rw-r--r--Documentation/git-send-email.txt19
-rw-r--r--Documentation/git.txt4
-rw-r--r--Documentation/gitattributes.txt5
-rw-r--r--Documentation/merge-config.txt6
-rw-r--r--Documentation/pretty-options.txt5
-rw-r--r--Documentation/technical/pack-protocol.txt6
20 files changed, 276 insertions, 85 deletions
diff --git a/Documentation/RelNotes/2.4.4.txt b/Documentation/RelNotes/2.4.4.txt
new file mode 100644
index 0000000..f1ccd00
--- /dev/null
+++ b/Documentation/RelNotes/2.4.4.txt
@@ -0,0 +1,35 @@
+Git v2.4.4 Release Notes
+========================
+
+Fixes since v2.4.3
+------------------
+
+ * l10n updates for German.
+
+ * An earlier leakfix to bitmap testing code was incomplete.
+
+ * "git clean pathspec..." tried to lstat(2) and complain even for
+ paths outside the given pathspec.
+
+ * Communication between the HTTP server and http_backend process can
+ lead to a dead-lock when relaying a large ref negotiation request.
+ Diagnose the situation better, and mitigate it by reading such a
+ request first into core (to a reasonable limit).
+
+ * The clean/smudge interface did not work well when filtering an
+ empty contents (failed and then passed the empty input through).
+ It can be argued that a filter that produces anything but empty for
+ an empty input is nonsense, but if the user wants to do strange
+ things, then why not?
+
+ * Make "git stash something --help" error out, so that users can
+ safely say "git stash drop --help".
+
+ * Clarify that "log --raw" and "log --format=raw" are unrelated
+ concepts.
+
+ * Catch a programmer mistake to feed a pointer not an array to
+ ARRAY_SIZE() macro, by using a couple of GCC extensions.
+
+Also contains typofixes, documentation updates and trivial code
+clean-ups.
diff --git a/Documentation/RelNotes/2.4.5.txt b/Documentation/RelNotes/2.4.5.txt
new file mode 100644
index 0000000..568297c
--- /dev/null
+++ b/Documentation/RelNotes/2.4.5.txt
@@ -0,0 +1,28 @@
+Git v2.4.5 Release Notes
+========================
+
+Fixes since v2.4.4
+------------------
+
+ * The setup code used to die when core.bare and core.worktree are set
+ inconsistently, even for commands that do not need working tree.
+
+ * There was a dead code that used to handle "git pull --tags" and
+ show special-cased error message, which was made irrelevant when
+ the semantics of the option changed back in Git 1.9 days.
+
+ * "color.diff.plain" was a misnomer; give it 'color.diff.context' as
+ a more logical synonym.
+
+ * The configuration reader/writer uses mmap(2) interface to access
+ the files; when we find a directory, it barfed with "Out of memory?".
+
+ * Recent "git prune" traverses young unreachable objects to safekeep
+ old objects in the reachability chain from them, which sometimes
+ showed unnecessary error messages that are alarming.
+
+ * "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
+ when it was told to stop sequencing with 'exec' insn).
+
+Also contains typofixes, documentation updates and trivial code
+clean-ups.
diff --git a/Documentation/RelNotes/2.5.0.txt b/Documentation/RelNotes/2.5.0.txt
index e33b0ac..3100b26 100644
--- a/Documentation/RelNotes/2.5.0.txt
+++ b/Documentation/RelNotes/2.5.0.txt
@@ -4,9 +4,6 @@ Git 2.5 Release Notes
Updates since v2.4
------------------
-Ports
-
-
UI, Workflows & Features
* The bash completion script (in contrib/) learned a few options that
@@ -28,6 +25,8 @@ UI, Workflows & Features
chunks from Perforce, instead of making one call to "p4 changes"
that may trigger "too many rows scanned" error from Perforce.
+ * More workaround for Perforce's row number limit in "git p4".
+
* Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
did not let the shell interpolate the contents of the environment
@@ -47,11 +46,14 @@ UI, Workflows & Features
rely on symbolic links and make sharing of objects and refs safer
by making the borrowee and borrowers aware of each other.
+ Consider this as still an experimental feature; the UI will likely
+ to change.
+
* Tweak the sample "store" backend of the credential helper to honor
XDG configuration file locations when specified.
- * A heuristic to help the "git <cmd> <revs> <pathspec>" command line
- convention to catch mistyped paths is to make sure all the non-rev
+ * A heuristic we use to catch mistyped paths on the command line
+ "git <cmd> <revs> <pathspec>" is to make sure that all the non-rev
parameters in the later part of the command line are names of the
files in the working tree, but that means "git grep $str -- \*.c"
must always be disambiguated with "--", because nobody sane will
@@ -64,25 +66,18 @@ UI, Workflows & Features
that are not marked as "not-for-merge"; this allows us to lose an
old style invocation "git merge <msg> HEAD $commits..." in the
implementation of "git pull" script; the old style syntax can now
- be deprecated.
-
- * Help us to find broken test script that splits the body part of the
- test by mistaken use of wrong kind of quotes.
- (merge d93d5d5 jc/test-prereq-validate later to maint).
-
- * Developer support to automatically detect broken &&-chain in the
- test scripts is now turned on by default.
- (merge 92b269f jk/test-chain-lint later to maint).
+ be deprecated (but not removed yet).
* Filter scripts were run with SIGPIPE disabled on the Git side,
expecting that they may not read what Git feeds them to filter.
We however treated a filter that does not read its input fully
- before exiting as an error.
+ before exiting as an error. We no longer do and ignore EPIPE
+ when writing to feed the filter scripts.
This changes semantics, but arguably in a good way. If a filter
- can produce its output without consuming its input using whatever
- magic, we now let it do so, instead of diagnosing it as a
- programming error.
+ can produce its output without fully consuming its input using
+ whatever magic, we now let it do so, instead of diagnosing it
+ as a programming error.
* Instead of dying immediately upon failing to obtain a lock, the
locking (of refs etc) retries after a short while with backoff.
@@ -98,8 +93,8 @@ UI, Workflows & Features
when pushing, but the documentation and help text pretended as if
it did.
- * The Git subcommand completion (in contrib/) listed credential
- helpers among candidates, which is not something the end user would
+ * The Git subcommand completion (in contrib/) no longer lists credential
+ helpers among candidates; they are not something the end user would
invoke interactively.
* The index file can be taught with "update-index --untracked-cache"
@@ -120,6 +115,42 @@ UI, Workflows & Features
behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
input instead.
+ Consider this as still an experimental and incomplete feature:
+
+ - We may want to do the same for in-index objects, e.g.
+ asking for :RelNotes with this option should give
+ :Documentation/RelNotes/2.5.0.txt, too
+
+ - "git cat-file --follow-symlinks blob HEAD:RelNotes"
+ may also be something we want to allow in the future.
+
+ * "git send-email" learned the alias file format used by the sendmail
+ program (in a simplified form; we obviously do not feed pipes).
+
+ * "git am" learned am.threeWay configuration variable.
+
+ * Traditionally, external low-level 3-way merge drivers are expected
+ to produce their results based solely on the contents of the three
+ variants given in temporary files named by %O, %A and %B on their
+ command line. Additionally allow them to look at the final path
+ (given by %P).
+
+ * "git blame" learned blame.showEmail configuration variable.
+
+ * "git apply" cannot diagnose a patch corruption when the breakage is
+ to mark the length of the hunk shorter than it really is on the
+ hunk header line "@@ -l,k +m,n @@"; one special case it could is
+ when the hunk becomes no-op (e.g. k == n == 2 for two-line context
+ patch output), and it learned to do so in this special case.
+
+ * Add the "--allow-unknown-type" option to "cat-file" to allow
+ inspecting loose objects of an experimental or a broken type.
+
+ * Many long-running operations show progress eye-candy, even when
+ they are later backgrounded. Hide the eye-candy when the process
+ is sent to the background instead.
+ (merge a4fb76c lm/squelch-bg-progress later to maint).
+
Performance, Internal Implementation, Development Support etc.
@@ -129,9 +160,11 @@ Performance, Internal Implementation, Development Support etc.
but hopefully will give us one extra level of abstraction in the
end, when completed.
+ * for_each_ref() callback functions were taught to name the objects
+ not with "unsigned char sha1[20]" but with "struct object_id".
+
* Catch a programmer mistake to feed a pointer not an array to
ARRAY_SIZE() macro, by using a couple of GCC extensions.
- (merge 89c855e ep/do-not-feed-a-pointer-to-array-size later to maint).
* Some error messages in "git config" were emitted without calling
the usual error() facility.
@@ -149,33 +182,34 @@ Performance, Internal Implementation, Development Support etc.
* An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
to read packed-refs file revealed that the former is unacceptably
- inefficient.
+ inefficient. It has been optimized by using getdelim(3) when
+ available.
* The refs API uses ref_lock struct which had its own "int fd", even
though the same file descriptor was in the lock struct it contains.
Clean-up the code to lose this redundant field.
- * Add the "--allow-unknown-type" option to "cat-file" to allow
- inspecting loose objects of an experimental or a broken type.
-
- * Many long-running operations show progress eye-candy, even when
- they are later backgrounded. Hide the eye-candy when the process
- is sent to the background instead.
- (merge 9a9a41d lm/squelch-bg-progress later to maint).
-
* There was a dead code that used to handle "git pull --tags" and
show special-cased error message, which was made irrelevant when
the semantics of the option changed back in Git 1.9 days.
(merge 19d122b pt/pull-tags-error-diag later to maint).
- * for_each_ref() callback functions were taught to name the objects
- not with "unsigned char sha1[20]" but with "struct object_id".
+ * Help us to find broken test script that splits the body part of the
+ test by mistaken use of wrong kind of quotes.
+ (merge d93d5d5 jc/test-prereq-validate later to maint).
+
+ * Developer support to automatically detect broken &&-chain in the
+ test scripts is now turned on by default.
+ (merge 92b269f jk/test-chain-lint later to maint).
* Error reporting mechanism used in "refs" API has been made more
consistent.
* "git pull" has more test coverage now.
+ * "git pull" has become more aware of the options meant for
+ underlying "git fetch" and then learned to use parse-options
+ parser.
Also contains various documentation updates and code clean-ups.
@@ -197,7 +231,7 @@ notes for details).
* Memory usage of "git index-pack" has been trimmed by tens of
per-cent.
- (merge c6458e6 nd/slim-index-pack-memory-usage later to maint).
+ (merge f0e7f11 nd/slim-index-pack-memory-usage later to maint).
* "git rev-list --objects $old --not --all" to see if everything that
is reachable from $old is already connected to the existing refs
@@ -286,12 +320,6 @@ notes for details).
anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
(merge baaf233 bc/connect-plink later to maint).
- * "git stash pop/apply" forgot to make sure that not just the working
- tree is clean but also the index is clean. The latter is important
- as a stash application can conflict and the index will be used for
- conflict resolution.
- (merge ed178ef jk/stash-require-clean-index later to maint).
-
* We have prepended $GIT_EXEC_PATH and the path "git" is installed in
(typically "/usr/bin") to $PATH when invoking subprograms and hooks
for almost eternity, but the original use case the latter tried to
@@ -311,19 +339,6 @@ notes for details).
the order was swapped from the beginning. This belatedly fixes it.
(merge 099d2d8 jc/gitignore-precedence later to maint).
- * After "git add -N", the path appeared in output of "git diff HEAD"
- and "git diff --cached HEAD", leading "git status" to classify it
- as "Changes to be committed". Such a path, however, is not yet to
- be scheduled to be committed. "git diff" showed the change to the
- path as modification, not as a "new file", in the header of its
- output.
-
- Treat such paths as "yet to be added to the index but Git already
- know about them"; "git diff HEAD" and "git diff --cached HEAD"
- should not talk about them, and "git diff" should show them as new
- files yet to be added to the index.
- (merge d95d728 nd/diff-i-t-a later to maint).
-
* There was a commented-out (instead of being marked to expect
failure) test that documented a breakage that was fixed since the
test was written; turn it into a proper test.
@@ -415,6 +430,63 @@ notes for details).
a more logical synonym.
(merge 8dbf3eb jk/color-diff-plain-is-context later to maint).
+ * The setup code used to die when core.bare and core.worktree are set
+ inconsistently, even for commands that do not need working tree.
+ (merge fada767 jk/die-on-bogus-worktree-late later to maint).
+
+ * Recent Mac OS X updates breaks the logic to detect that the machine
+ is on the AC power in the sample pre-auto-gc script.
+ (merge c54c7b3 pa/auto-gc-mac-osx later to maint).
+
+ * "git commit --cleanup=scissors" was not careful enough to protect
+ against getting fooled by a line that looked like scissors.
+ (merge fbfa097 sg/commit-cleanup-scissors later to maint).
+
+ * "Have we lost a race with competing repack?" check was too
+ expensive, especially while receiving a huge object transfer
+ that runs index-pack (e.g. "clone" or "fetch").
+ (merge 0eeb077 jk/index-pack-reduce-recheck later to maint).
+
+ * The tcsh completion writes a bash scriptlet but that would have
+ failed for users with noclobber set.
+ (merge 0b1f688 af/tcsh-completion-noclobber later to maint).
+
+ * "git for-each-ref" reported "missing object" for 0{40} when it
+ encounters a broken ref. The lack of object whose name is 0{40} is
+ not the problem; the ref being broken is.
+ (merge 501cf47 mh/reporting-broken-refs-from-for-each-ref later to maint).
+
+ * Various fixes around "git am" that applies a patch to a history
+ that is not there yet.
+ (merge 6ea3b67 pt/am-abort-fix later to maint).
+
+ * "git fsck" used to ignore missing or invalid objects recorded in reflog.
+ (merge 19bf6c9 mh/fsck-reflog-entries later to maint).
+
+ * "git format-patch --ignore-if-upstream A..B" did not like to be fed
+ tags as boundary commits.
+ (merge 9b7a61d jc/do-not-feed-tags-to-clear-commit-marks later to maint).
+
+ * "git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
+ a shallow transfer request even to an upload-pack that does not
+ support the capability.
+ (merge eb86a50 me/fetch-into-shallow-safety later to maint).
+
+ * "git rebase" did not exit with failure when format-patch it invoked
+ failed for whatever reason.
+ (merge 60d708b cb/rebase-am-exit-code later to maint).
+
+ * Fix a small bug in our use of umask() return value.
+ (merge 3096b2e jk/fix-refresh-utime later to maint).
+
+ * An ancient test framework enhancement to allow color was not
+ entirely correct; this makes it work even when tput needs to read
+ from the ~/.terminfo under the user's real HOME directory.
+ (merge d5c1b7c rh/test-color-avoid-terminfo-in-original-home later to maint).
+
+ * A minor bugfix when pack bitmap is used with "rev-list --count".
+ (merge c8a70d3 jk/rev-list-no-bitmap-while-pruning later to maint).
+
* Code cleanups and documentation updates.
(merge 0269f96 mm/usage-log-l-can-take-regex later to maint).
(merge 64f2589 nd/t1509-chroot-test later to maint).
@@ -433,3 +505,19 @@ notes for details).
(merge e6a268c sb/glossary-submodule later to maint).
(merge ec48a76 sb/submodule-doc-intro later to maint).
(merge 14f8b9b jk/clone-dissociate later to maint).
+ (merge 055c7e9 sb/pack-protocol-mention-smart-http later to maint).
+ (merge 7c37a5d jk/make-fix-dependencies later to maint).
+ (merge fc0aa39 sg/merge-summary-config later to maint).
+ (merge 329af6c pt/t0302-needs-sanity later to maint).
+ (merge d614f07 fk/doc-format-patch-vn later to maint).
+ (merge 72dbb36 sg/completion-commit-cleanup later to maint).
+ (merge e654eb2 es/utf8-stupid-compiler-workaround later to maint).
+ (merge 34b935c es/osx-header-pollutes-mask-macro later to maint).
+ (merge ab7fade jc/prompt-document-ps1-state-separator later to maint).
+ (merge 25f600e mm/describe-doc later to maint).
+ (merge 83fe167 mm/branch-doc-updates later to maint).
+ (merge 75d2e5a ls/hint-rev-list-count later to maint).
+ (merge edc8f71 cb/subtree-tests-update later to maint).
+ (merge 5330e6e sb/p5310-and-chain later to maint).
+ (merge c4ac525 tb/checkout-doc later to maint).
+ (merge e479c5f jk/pretty-encoding-doc later to maint).
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 43bb53c..3e37b93 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -769,6 +769,14 @@ am.keepcr::
by giving '--no-keep-cr' from the command line.
See linkgit:git-am[1], linkgit:git-mailsplit[1].
+am.threeWay::
+ By default, `git am` will fail if the patch does not apply cleanly. When
+ set to true, this setting tells `git am` to 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 (equivalent to giving the `--3way`
+ option from the command line). Defaults to `false`.
+ See linkgit:git-am[1].
+
apply.ignoreWhitespace::
When set to 'change', tells 'git apply' to ignore changes in
whitespace, in the same way as the '--ignore-space-change'
diff --git a/Documentation/fmt-merge-msg-config.txt b/Documentation/fmt-merge-msg-config.txt
new file mode 100644
index 0000000..c73cfa9
--- /dev/null
+++ b/Documentation/fmt-merge-msg-config.txt
@@ -0,0 +1,10 @@
+merge.branchdesc::
+ In addition to branch names, populate the log message with
+ the branch description text associated with them. Defaults
+ to false.
+
+merge.log::
+ In addition to branch names, populate the log message with at
+ most the specified number of one-line descriptions from the
+ actual commits that are being merged. Defaults to false, and
+ true is a synonym for 20.
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index 0d8ba48..dbea6e7 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git am' [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]
- [--3way] [--interactive] [--committer-date-is-author-date]
+ [--[no-]3way] [--interactive] [--committer-date-is-author-date]
[--ignore-date] [--ignore-space-change | --ignore-whitespace]
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
[--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
@@ -90,10 +90,13 @@ default. You can use `--no-utf8` to override this.
-3::
--3way::
+--no-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.
+ available locally. `--no-3way` can be used to override
+ am.threeWay configuration variable. For more information,
+ see am.threeWay in linkgit:git-config[1].
--ignore-space-change::
--ignore-whitespace::
diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
index 9f23a86..e6e947c 100644
--- a/Documentation/git-blame.txt
+++ b/Documentation/git-blame.txt
@@ -76,6 +76,8 @@ include::blame-options.txt[]
-e::
--show-email::
Show the author email instead of author name (Default: off).
+ This can also be controlled via the `blame.showEmail` config
+ option.
-w::
Ignore whitespace when comparing the parent's version and
diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index 359619b..a67138a 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -81,7 +81,7 @@ OPTIONS
`--track` or `--set-upstream`.
-D::
- Delete a branch irrespective of its merged status.
+ Shortcut for `--delete --force`.
-l::
--create-reflog::
@@ -95,13 +95,17 @@ OPTIONS
--force::
Reset <branchname> to <startpoint> if <branchname> exists
already. Without `-f` 'git branch' refuses to change an existing branch.
+ In combination with `-d` (or `--delete`), allow deleting the
+ branch irrespective of its merged status. In combination with
+ `-m` (or `--move`), allow renaming the branch even if the new
+ branch name already exists.
-m::
--move::
Move/rename a branch and the corresponding reflog.
-M::
- Move/rename a branch even if the new branch name already exists.
+ Shortcut for `--move --force`.
--color[=<when>]::
Color branches to highlight current, local, and
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index d263a56..2df6d0d 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -3,7 +3,7 @@ git-checkout(1)
NAME
----
-git-checkout - Checkout a branch or paths to the working tree
+git-checkout - Switch branches or restore working tree files
SYNOPSIS
--------
@@ -89,6 +89,10 @@ Omitting <branch> detaches HEAD at the tip of the current branch.
(i.e. commit, tag or tree) to update the index for the given
paths before updating the working tree.
+
+'git checkout' with <paths> or `--patch` is used to restore modified or
+deleted paths to their original contents from the index or replace paths
+with the contents from a named <tree-ish> (most often a commit-ish).
++
The index may contain unmerged entries because of a previous failed merge.
By default, if you try to check out such an entry from the index, the
checkout operation will fail and nothing will be checked out.
diff --git a/Documentation/git-describe.txt b/Documentation/git-describe.txt
index d20ca40..e045fc7 100644
--- a/Documentation/git-describe.txt
+++ b/Documentation/git-describe.txt
@@ -3,7 +3,7 @@ git-describe(1)
NAME
----
-git-describe - Show the most recent tag that is reachable from a commit
+git-describe - Describe a commit using the most recent tag reachable from it
SYNOPSIS
diff --git a/Documentation/git-fmt-merge-msg.txt b/Documentation/git-fmt-merge-msg.txt
index bb1232a..55a9a4b 100644
--- a/Documentation/git-fmt-merge-msg.txt
+++ b/Documentation/git-fmt-merge-msg.txt
@@ -51,17 +51,7 @@ OPTIONS
CONFIGURATION
-------------
-
-merge.branchdesc::
- In addition to branch names, populate the log message with
- the branch description text associated with them. Defaults
- to false.
-
-merge.log::
- In addition to branch names, populate the log message with at
- most the specified number of one-line descriptions from the
- actual commits that are being merged. Defaults to false, and
- true is a synonym for 20.
+include::fmt-merge-msg-config.txt[]
merge.summary::
Synonym to `merge.log`; this is deprecated and will be removed in
diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index bb3ea93..0dac4e9 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -170,7 +170,7 @@ will want to ensure that threading is disabled for `git send-email`.
-v <n>::
--reroll-count=<n>::
Mark the series as the <n>-th iteration of the topic. The
- output filenames have `v<n>` pretended to them, and the
+ output filenames have `v<n>` prepended to them, and the
subject prefix ("PATCH" by default, but configurable via the
`--subject-prefix` option) has ` v<n>` appended to it. E.g.
`--reroll-count=4` may produce `v4-0001-add-makefile.patch`
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index 712ab4b..93c72a2 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -74,9 +74,6 @@ pulling or stash them away with linkgit:git-stash[1].
OPTIONS
-------
-Options meant for 'git pull' itself and the underlying 'git merge'
-must be given before the options meant for 'git fetch'.
-
-q::
--quiet::
This is passed to both underlying git-fetch to squelch reporting of
diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt
index b10ea60..7b49c85 100644
--- a/Documentation/git-rev-list.txt
+++ b/Documentation/git-rev-list.txt
@@ -56,6 +56,7 @@ SYNOPSIS
[ --reverse ]
[ --walk-reflogs ]
[ --no-walk ] [ --do-walk ]
+ [ --count ]
[ --use-bitmap-index ]
<commit>... [ \-- <paths>... ]
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 8045546..7ae467b 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -383,7 +383,24 @@ sendemail.aliasesFile::
sendemail.aliasFileType::
Format of the file(s) specified in sendemail.aliasesFile. Must be
- one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'.
+ one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus', or 'sendmail'.
++
+What an alias file in each format looks like can be found in
+the documentation of the email program of the same name. The
+differences and limitations from the standard formats are
+described below:
++
+--
+sendmail;;
+* Quoted aliases and quoted addresses are not supported: lines that
+ contain a `"` symbol are ignored.
+* Redirection to a file (`/path/name`) or pipe (`|command`) is not
+ supported.
+* File inclusion (`:include: /path/name`) is not supported.
+* Warnings are printed on the standard error output for any
+ explicitly unsupported constructs, and any other lines that are not
+ recognized by the parser.
+--
sendemail.multiEdit::
If true (default), a single editor instance will be spawned to edit
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 45b64a7..613ce6b 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -43,9 +43,11 @@ unreleased) version of Git, that is available from the 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:
-* link:v2.4.3/git.html[documentation for release 2.4.3]
+* link:v2.4.5/git.html[documentation for release 2.4.5]
* release notes for
+ link:RelNotes/2.4.5.txt[2.4.5],
+ link:RelNotes/2.4.4.txt[2.4.4],
link:RelNotes/2.4.3.txt[2.4.3],
link:RelNotes/2.4.2.txt[2.4.2],
link:RelNotes/2.4.1.txt[2.4.1],
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index 70899b3..81fe586 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -774,7 +774,7 @@ To define a custom merge driver `filfre`, add a section to your
----------------------------------------------------------------
[merge "filfre"]
name = feel-free merge driver
- driver = filfre %O %A %B
+ driver = filfre %O %A %B %L %P
recursive = binary
----------------------------------------------------------------
@@ -800,6 +800,9 @@ merge between common ancestors, when there are more than one.
When left unspecified, the driver itself is used for both
internal merge and the final merge.
+The merge driver can learn the pathname in which the merged result
+will be stored via placeholder `%P`.
+
`conflict-marker-size`
^^^^^^^^^^^^^^^^^^^^^^
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 8a0e52f..002ca58 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -26,11 +26,7 @@ merge.ff::
allowed (equivalent to giving the `--ff-only` option from the
command line).
-merge.log::
- In addition to branch names, populate the log message with at
- most the specified number of one-line descriptions from the
- actual commits that are being merged. Defaults to false, and
- true is a synonym for 20.
+include::fmt-merge-msg-config.txt[]
merge.renameLimit::
The number of files to consider when performing rename detection
diff --git a/Documentation/pretty-options.txt b/Documentation/pretty-options.txt
index 74aa01a..642af6e 100644
--- a/Documentation/pretty-options.txt
+++ b/Documentation/pretty-options.txt
@@ -37,7 +37,10 @@ people using 80-column terminals.
in their encoding header; this option can be used to tell the
command to re-code the commit log message in the encoding
preferred by the user. For non plumbing commands this
- defaults to UTF-8.
+ defaults to UTF-8. Note that if an object claims to be encoded
+ in `X` and we are outputting in `X`, we will output the object
+ verbatim; this means that invalid sequences in the original
+ commit may be copied to the output.
--notes[=<ref>]::
Show the notes (see linkgit:git-notes[1]) that annotate the
diff --git a/Documentation/technical/pack-protocol.txt b/Documentation/technical/pack-protocol.txt
index fc09c63..4064fc7 100644
--- a/Documentation/technical/pack-protocol.txt
+++ b/Documentation/technical/pack-protocol.txt
@@ -1,11 +1,11 @@
Packfile transfer protocols
===========================
-Git supports transferring data in packfiles over the ssh://, git:// and
+Git supports transferring data in packfiles over the ssh://, git://, http:// and
file:// transports. There exist two sets of protocols, one for pushing
data from a client to a server and another for fetching data from a
-server to a client. All three transports (ssh, git, file) use the same
-protocol to transfer data.
+server to a client. The three transports (ssh, git, file) use the same
+protocol to transfer data. http is documented in http-protocol.txt.
The processes invoked in the canonical Git implementation are 'upload-pack'
on the server side and 'fetch-pack' on the client side for fetching data;