summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/RelNotes/1.7.12.2.txt8
-rw-r--r--Documentation/RelNotes/1.7.12.3.txt18
-rw-r--r--Documentation/RelNotes/1.8.0.txt157
-rw-r--r--Documentation/git-blame.txt6
-rw-r--r--Documentation/git-clone.txt15
-rw-r--r--Documentation/git-push.txt10
-rw-r--r--Documentation/git-rebase.txt5
-rw-r--r--Documentation/git-submodule.txt1
-rw-r--r--Documentation/git.txt3
9 files changed, 150 insertions, 73 deletions
diff --git a/Documentation/RelNotes/1.7.12.2.txt b/Documentation/RelNotes/1.7.12.2.txt
index 93c7b345e5..69255745e6 100644
--- a/Documentation/RelNotes/1.7.12.2.txt
+++ b/Documentation/RelNotes/1.7.12.2.txt
@@ -4,6 +4,9 @@ Git 1.7.12.2 Release Notes
Fixes since v1.7.12.1
---------------------
+ * When "git am" is fed an input that has multiple "Content-type: ..."
+ header, it did not grok charset= attribute correctly.
+
* Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
@@ -24,6 +27,11 @@ Fixes since v1.7.12.1
is not their language, mildly irritating others. Localization to
the line has been disabled for now.
+ * "git log --all-match --grep=A --grep=B" ought to show commits that
+ mention both A and B, but when these three options are used with
+ --author or --committer, it showed commits that mention either A or
+ B (or both) instead.
+
* The subcommand to remove the definition of a remote in "git remote"
was named "rm" even though all other subcommands were spelled out.
Introduce "git remote remove" to remove confusion, and keep "rm" as
diff --git a/Documentation/RelNotes/1.7.12.3.txt b/Documentation/RelNotes/1.7.12.3.txt
new file mode 100644
index 0000000000..8d4f879458
--- /dev/null
+++ b/Documentation/RelNotes/1.7.12.3.txt
@@ -0,0 +1,18 @@
+Git 1.7.12.3 Release Notes
+==========================
+
+Fixes since v1.7.12.2
+---------------------
+
+ * "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.
+
+ * "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.
+
+ * "git status" honored the ignore=dirty settings in .gitmodules but
+ "git commit" didn't.
+
+Also contains a handful of documentation updates.
diff --git a/Documentation/RelNotes/1.8.0.txt b/Documentation/RelNotes/1.8.0.txt
index a325a98651..a17f893dd4 100644
--- a/Documentation/RelNotes/1.8.0.txt
+++ b/Documentation/RelNotes/1.8.0.txt
@@ -4,11 +4,11 @@ Git v1.8.0 Release Notes
Backward compatibility notes
----------------------------
-In the next major release, we will change the behaviour of the "git
+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 (all your branches were
+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
+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
branch is set to integrate with that remote branch. There is a user
preference configuration variable "push.default" to change this, and
@@ -33,9 +33,9 @@ UI, Workflows & Features
* A credential helper to allow access to the Gnome keyring has been
added.
- * When "git am" sanitizes the Subject: line, we strip the prefix from
+ * When "git am" sanitizes the "Subject:" line, we strip the prefix from
"Re: subject" and also from a less common "re: subject", but left
- even less common "RE: subject" intact.
+ the even less common "RE: subject" intact. We strip that now, too.
* It was tempting to say "git branch --set-upstream origin/master",
but that tells Git to arrange the local branch "origin/master" to
@@ -57,23 +57,30 @@ UI, Workflows & Features
repository path, etc.
* "git difftool --dir-diff" learned to use symbolic links to prepare
- temporary copy of the working tree when available.
+ a temporary copy of the working tree when available.
* "git grep" learned to use a non-standard pattern type by default if
a configuration variable tells it to.
- * "git merge-base" learned "--is-ancestor A B" option to tell if A is
+ * "git merge-base" learned the "--is-ancestor A B" option to tell if A is
an ancestor of B. The result is indicated by its exit status code.
+ * "git mergetool" now allows users to override the actual command used
+ 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.
+
Foreign Interface
* "git svn" has been updated to work with SVN 1.7.
- * "git p4" learned "--conflicts" option to specify what to do when
+ * "git p4" learned the "--conflicts" option to specify what to do when
encountering a conflict during "p4 submit".
@@ -81,12 +88,12 @@ Performance, Internal Implementation, etc. (please report possible regressions)
* Git ships with a fall-back regexp implementation for platforms with
buggy regexp library, but it was easy for people to keep using their
- platform regexp. A new test has been added to check this.
+ platform regexp by mistake. A new test has been added to check this.
* The "check-docs" build target has been updated and greatly
simplified.
- * The test suite is run under MALLOC_CHECK_ when running with glibc
+ * The test suite is run under MALLOC_CHECK_ when running with a glibc
that supports the feature.
* The documentation in the TeXinfo format was using indented output
@@ -94,7 +101,7 @@ Performance, Internal Implementation, etc. (please report possible regressions)
monospace.
* Compatibility wrapper around some mkdir(2) implementations that
- reject parameter with trailing slash has been introduced.
+ reject parameters with trailing slash has been introduced.
* Compatibility wrapper for systems that lack usable setitimer() has
been added.
@@ -106,7 +113,7 @@ Performance, Internal Implementation, etc. (please report possible regressions)
when the user says "git checkout -b -t foo bar" (e.g. "-t" is not a
good name for a branch).
- * Many internal uses of "git merge-base" equivalent were only to see
+ * Many internal uses of a "git merge-base" equivalent were only to see
if one commit fast-forwards to the other, which did not need the
full set of merge bases to be computed. They have been updated to
use less expensive checks.
@@ -129,94 +136,118 @@ Unless otherwise noted, all the fixes since v1.7.12 in the
maintenance track are contained in this release (see release notes
to them for details).
+ * The attribute system may be asked for a path that itself or its
+ leading directories no longer exists in the working tree, and it is
+ fine if we cannot open .gitattribute file in such a case. Failure
+ to open per-directory .gitattributes with error status other than
+ ENOENT and ENOTDIR should be diagnosed, but it wasn't.
+
+ * When looking for $HOME/.gitconfig etc., it is OK if we cannot read
+ them because they do not exist, but we did not diagnose existing
+ files that we cannot read.
+
* When "git am" is fed an input that has multiple "Content-type: ..."
header, it did not grok charset= attribute correctly.
- (merge 176943b jc/maint-mailinfo-mime-attr later to maint).
* "git blame MAKEFILE" run in a history that has "Makefile" but not
"MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
confused on a case insensitive filesystem and failed to do so.
- (merge 9aeaab6 jc/maint-blame-no-such-path later to maint).
* Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.
- (merge 9aeaab6 jc/maint-blame-no-such-path later to maint).
+
+ * 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
+ branches was counting in bytes, not in display columns.
+
+ * "git cherry-pick A C B" used to replay changes in A and then B and
+ then C if these three commits had committer timestamps in that
+ order, which is not what the user who said "A C B" naturally
+ expects.
+
+ * 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".
+ (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
how the title is decided and rewording the casual mention of "first
line" to "title".
- (merge 52ffe99 jw/doc-commit-title later to maint).
- * The attribute system may be asked for a path that itself or its
- leading directories no longer exists in the working tree, and it is
- fine if we cannot open .gitattribute file in such a case. Failure
- to open per-directory .gitattributes with error status other than
- ENOENT and ENOTDIR should be diagnosed, but it wasn't.
-
- * "git log --all-match --grep=A --grep=B" ought to show commits that
- mention both A and B, but when these three options are used with
- --author or --committer, it showed commits that mention either A or
- B (or both) instead.
- (merge 39f2e01 jc/maint-log-grep-all-match later to maint).
+ * "git cvsimport" did not thoroughly cleanse tag names that it
+ inferred from the names of the tags it obtained from CVS, which
+ caused "git tag" to barf and stop the import in the middle.
* Earlier we made the diffstat summary line that shows the number of
lines added/deleted localizable, but it was found irritating having
to see them in various languages on a list whose discussion language
- is English.
- (merge 218adaa nd/maint-diffstat-summary later to maint).
+ is English, and this change has been reverted.
* "git fetch --all", when passed "--no-tags", did not honor the
"--no-tags" option while fetching from individual remotes (the same
- issue existed with "--tags", but combination "--all --tags" makes
+ issue existed with "--tags", but the combination "--all --tags" makes
much less sense than "--all --no-tags").
- (merge 8556646 dj/fetch-all-tags later to maint).
- * The subcommand in "git remote" to remove a defined remote was
- "rm" and the command did not take a fully-spelled "remove".
- (merge e17dba8 nd/maint-remote-remove later to maint).
-
- * After "gitk" showed the contents of a tag, neither "Reread
- references" nor "Reload" did not update what is shown as the
- contents of it, when the user overwrote the tag with "git tag -f".
-
- * "git cvsimport" did not thoroughly cleanse tag names that it
- inferred from the names of the tags it obtained from CVS, which
- caused "git tag" to barf and stop the import in the middle.
+ * "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 show --format='%ci'" did not give timestamp correctly for
- commits created without human readable name on "committer" line.
- (merge e27ddb6 jc/maint-ident-missing-human-name 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 cherry-pick A C B" used to replay changes in A and then B and
- then C if these three commits had committer timestamps in that
- order, which is not what the user who said "A C B" naturally
- expects.
- (merge a73e22e mz/cherry-pick-cmdline-order later to maint).
+ * After "gitk" showed the contents of a tag, neither "Reread
+ references" nor "Reload" updated what is shown as the
+ contents of it when the user overwrote the tag with "git tag -f".
- * "git show --quiet" ought to be a synonym for "git show -s", but
- wasn't.
- (merge f9c75d8 jk/maint-quiet-is-synonym-to-s-in-log later to maint).
+ * "git log --all-match --grep=A --grep=B" ought to show commits that
+ mention both A and B, but when these three options are used with
+ --author or --committer, it showed commits that mention either A or
+ B (or both) instead.
* "git p4", when "--use-client-spec" and "--detect-branches" are used
together, misdetected branches.
- (merge 21ef5df pw/p4-use-client-spec-branch-detection 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
- branches were counting in bytes, not in display columns.
- (merge 1452bd6 nd/branch-v-alignment later to maint).
+ * "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 looking for $HOME/.gitconfig etc., it is OK if we cannot read
- them because they do not exist, but we did not diagnose existing
- files that we cannot read.
+ * 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
+ git subcommand from "git rebase --continue".
- * The interactive prompt "git send-email" gives was error prone. It
+ * The subcommand in "git remote" to remove a defined remote was
+ "rm" and the command did not take a fully-spelled "remove".
+
+ * The interactive prompt that "git send-email" gives was error prone. It
asked "What e-mail address do you want to use?" with the address it
guessed (correctly) the user would want to use in its prompt,
tempting the user to say "y". But the response was taken as "No,
please use 'y' as the e-mail address instead", which is most
certainly not what the user meant.
- (merge 6183749 sb/send-email-reconfirm-fix later to maint).
+
+ * "git show --format='%ci'" did not give the timestamp correctly for
+ commits created without human readable name on the "committer" line.
+
+ * "git show --quiet" ought to be a synonym for "git show -s", but
+ wasn't.
+
+ * "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).
diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
index 7ee923629e..e44173f66a 100644
--- a/Documentation/git-blame.txt
+++ b/Documentation/git-blame.txt
@@ -20,6 +20,12 @@ last modified the line. Optionally, start annotating from the given revision.
The command can also limit the range of lines annotated.
+The origin of lines is automatically followed across whole-file
+renames (currently there is no option to turn the rename-following
+off). To follow lines moved from one file to another, or to follow
+lines that were copied and pasted from another file, etc., see the
+`-C` and `-M` options.
+
The report does not tell you anything about lines which have been deleted or
replaced; you need to use a tool such as 'git diff' or the "pickaxe"
interface briefly mentioned in the following paragraph.
diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index c1ddd4c2cc..6d98ef3d2a 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -29,7 +29,8 @@ currently active branch.
After the clone, a plain `git fetch` without arguments will update
all the remote-tracking branches, and a `git pull` without
arguments will in addition merge the remote master branch into the
-current master branch, if any.
+current master branch, if any (this is untrue when "--single-branch"
+is given; see below).
This default configuration is achieved by creating references to
the remote branch heads under `refs/remotes/origin` and
@@ -152,9 +153,10 @@ objects from the source repository into a pack in the cloned repository.
-b <name>::
Instead of pointing the newly created HEAD to the branch pointed
to by the cloned repository's HEAD, point to `<name>` branch
- instead. `--branch` can also take tags and treat them like
- detached HEAD. In a non-bare repository, this is the branch
- that will be checked out.
+ instead. In a non-bare repository, this is the branch that will
+ be checked out.
+ `--branch` can also take tags and detaches the HEAD at that commit
+ in the resulting repository.
--upload-pack <upload-pack>::
-u <upload-pack>::
@@ -193,6 +195,11 @@ objects from the source repository into a pack in the cloned repository.
clone with the `--depth` option, this is the default, unless
`--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
+ initial cloning. If the HEAD at the remote did not point at any
+ branch when `--single-branch` clone was made, no remote tracking
+ branch is created.
--recursive::
--recurse-submodules::
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index cb97cc1c3b..22d2580129 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -37,7 +37,9 @@ OPTIONS[[OPTIONS]]
`+`, followed by the source ref <src>, followed
by a colon `:`, followed by the destination ref <dst>.
It is used to specify with what <src> object the <dst> ref
- in the remote repository is to be updated.
+ in the remote repository is to be updated. If not specified,
+ the behavior of the command is controlled by the `push.default`
+ configuration variable.
+
The <src> is often the name of the branch you would want to push, but
it can be any arbitrary "SHA-1 expression", such as `master~4` or
@@ -65,7 +67,8 @@ directs git to push "matching" branches: for every branch that exists on
the local side, the remote side is updated if a branch of the same name
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).
+nor in any Push line of the corresponding remotes file---see below) and
+no `push.default` configuration variable is set.
--all::
Instead of naming each ref to push, specifies that all
@@ -357,7 +360,8 @@ Examples
`git push origin :`.
+
The default behavior of this command when no <refspec> is given can be
-configured by setting the `push` option of the remote.
+configured by setting the `push` option of the remote, or the `push.default`
+configuration variable.
+
For example, to default to pushing only the current branch to `origin`
use `git config remote.origin.push HEAD`. Any valid <refspec> (like
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index fd535b06ab..da067ecafa 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -12,7 +12,7 @@ SYNOPSIS
[<upstream>] [<branch>]
'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>]
--root [<branch>]
-'git rebase' --continue | --skip | --abort
+'git rebase' --continue | --skip | --abort | --edit-todo
DESCRIPTION
-----------
@@ -245,6 +245,9 @@ leave out at most one of A and B, in which case it defaults to HEAD.
--skip::
Restart the rebasing process by skipping the current patch.
+--edit-todo::
+ Edit the todo list during an interactive rebase.
+
-m::
--merge::
Use merging strategies to rebase. When the recursive (default) merge
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index 2de7bf0900..b4683bba1b 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -112,7 +112,6 @@ status::
initialized, `+` if the currently checked out submodule commit
does not match the SHA-1 found in the index of the containing
repository and `U` if the submodule has merge conflicts.
- This command is the default command for 'git submodule'.
+
If `--recursive` is specified, this command will recurse into nested
submodules, and show their status as well.
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 6710cb0a41..48bd04e22d 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -43,9 +43,10 @@ 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.1/git.html[documentation for release 1.7.12.1]
+* link:v1.7.12.2/git.html[documentation for release 1.7.12.2]
* release notes for
+ 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].