summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/CodingGuidelines2
-rw-r--r--Documentation/RelNotes/2.3.2.txt2
-rw-r--r--Documentation/RelNotes/2.3.5.txt44
-rw-r--r--Documentation/RelNotes/2.3.6.txt13
-rw-r--r--Documentation/RelNotes/2.3.7.txt21
-rw-r--r--Documentation/RelNotes/2.3.8.txt22
-rw-r--r--Documentation/RelNotes/2.4.0.txt362
-rw-r--r--Documentation/RelNotes/2.4.1.txt40
-rw-r--r--Documentation/RelNotes/2.4.2.txt45
-rw-r--r--Documentation/RelNotes/2.4.3.txt76
-rw-r--r--Documentation/RelNotes/2.4.4.txt35
-rw-r--r--Documentation/RelNotes/2.5.0.txt508
-rw-r--r--Documentation/SubmittingPatches5
-rw-r--r--Documentation/blame-options.txt2
-rwxr-xr-xDocumentation/cmd-list.perl4
-rw-r--r--Documentation/config.txt61
-rw-r--r--Documentation/diff-generate-patch.txt2
-rw-r--r--Documentation/diff-options.txt29
-rw-r--r--Documentation/fmt-merge-msg-config.txt10
-rw-r--r--Documentation/git-add.txt3
-rw-r--r--Documentation/git-am.txt7
-rw-r--r--Documentation/git-blame.txt2
-rw-r--r--Documentation/git-cat-file.txt104
-rw-r--r--Documentation/git-checkout.txt78
-rw-r--r--Documentation/git-cherry-pick.txt3
-rw-r--r--Documentation/git-commit.txt13
-rw-r--r--Documentation/git-credential-store.txt35
-rw-r--r--Documentation/git-fast-export.txt6
-rw-r--r--Documentation/git-fast-import.txt34
-rw-r--r--Documentation/git-fetch-pack.txt2
-rw-r--r--Documentation/git-fmt-merge-msg.txt12
-rw-r--r--Documentation/git-for-each-ref.txt6
-rw-r--r--Documentation/git-format-patch.txt2
-rw-r--r--Documentation/git-hash-object.txt10
-rw-r--r--Documentation/git-http-backend.txt13
-rw-r--r--Documentation/git-log.txt4
-rw-r--r--Documentation/git-merge.txt4
-rw-r--r--Documentation/git-p4.txt17
-rw-r--r--Documentation/git-pack-objects.txt2
-rw-r--r--Documentation/git-prune.txt3
-rw-r--r--Documentation/git-pull.txt8
-rw-r--r--Documentation/git-push.txt18
-rw-r--r--Documentation/git-rebase.txt6
-rw-r--r--Documentation/git-rev-list.txt96
-rw-r--r--Documentation/git-rev-parse.txt14
-rw-r--r--Documentation/git-send-email.txt19
-rw-r--r--Documentation/git-send-pack.txt2
-rw-r--r--Documentation/git-show.txt2
-rw-r--r--Documentation/git-status.txt13
-rw-r--r--Documentation/git-stripspace.txt6
-rw-r--r--Documentation/git-submodule.txt50
-rw-r--r--Documentation/git-svn.txt10
-rw-r--r--Documentation/git-tag.txt13
-rw-r--r--Documentation/git-unpack-objects.txt6
-rw-r--r--Documentation/git-update-index.txt14
-rw-r--r--Documentation/git-verify-pack.txt2
-rw-r--r--Documentation/git.txt38
-rw-r--r--Documentation/gitattributes.txt5
-rw-r--r--Documentation/gitcore-tutorial.txt2
-rw-r--r--Documentation/gitdiffcore.txt6
-rw-r--r--Documentation/gitk.txt4
-rw-r--r--Documentation/gitremote-helpers.txt14
-rw-r--r--Documentation/gitrepository-layout.txt74
-rw-r--r--Documentation/gitweb.conf.txt2
-rw-r--r--Documentation/glossary-content.txt16
-rw-r--r--Documentation/howto/new-command.txt4
-rw-r--r--Documentation/howto/recover-corrupted-object-harder.txt237
-rw-r--r--Documentation/line-range-format.txt11
-rw-r--r--Documentation/merge-config.txt6
-rw-r--r--Documentation/pretty-formats.txt5
-rw-r--r--Documentation/rev-list-options.txt13
-rw-r--r--Documentation/revisions.txt25
-rw-r--r--Documentation/technical/api-error-handling.txt2
-rw-r--r--Documentation/technical/api-ref-iteration.txt2
-rw-r--r--Documentation/technical/api-remote.txt4
-rw-r--r--Documentation/technical/http-protocol.txt3
-rw-r--r--Documentation/technical/index-format.txt62
-rw-r--r--Documentation/technical/pack-protocol.txt16
-rw-r--r--Documentation/technical/protocol-capabilities.txt7
79 files changed, 2099 insertions, 381 deletions
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index 376d5ec4f8..c6e536f180 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -1,5 +1,5 @@
Like other projects, we also have some guidelines to keep to the
-code. For Git in general, three rough rules are:
+code. For Git in general, a few rough rules are:
- Most importantly, we never say "It's in POSIX; we'll happily
ignore your needs should your system not conform to it."
diff --git a/Documentation/RelNotes/2.3.2.txt b/Documentation/RelNotes/2.3.2.txt
index f4caf54927..93462e45c2 100644
--- a/Documentation/RelNotes/2.3.2.txt
+++ b/Documentation/RelNotes/2.3.2.txt
@@ -24,7 +24,7 @@ Fixes since v2.3.1
"curl-config --vernum", which confused our build system.
* An earlier workaround to squelch unhelpful deprecation warnings
- from the complier on Mac OSX unnecessarily set minimum required
+ from the compiler on Mac OSX unnecessarily set minimum required
version of the OS, which the user might want to raise (or lower)
for other reasons.
diff --git a/Documentation/RelNotes/2.3.5.txt b/Documentation/RelNotes/2.3.5.txt
new file mode 100644
index 0000000000..5b309db689
--- /dev/null
+++ b/Documentation/RelNotes/2.3.5.txt
@@ -0,0 +1,44 @@
+Git v2.3.5 Release Notes
+========================
+
+Fixes since v2.3.4
+------------------
+
+ * The prompt script (in contrib/) did not show the untracked sign
+ when working in a subdirectory without any untracked files.
+
+ * Even though "git grep --quiet" is run merely to ask for the exit
+ status, we spawned the pager regardless. Stop doing that.
+
+ * Recommend format-patch and send-email for those who want to submit
+ patches to this project.
+
+ * An failure early in the "git clone" that started creating the
+ working tree and repository could have resulted in some directories
+ and files left without getting cleaned up.
+
+ * "git fetch" that fetches a commit using the allow-tip-sha1-in-want
+ extension could have failed to fetch all the requested refs.
+
+ * The split-index mode introduced at v2.3.0-rc0~41 was broken in the
+ codepath to protect us against a broken reimplementation of Git
+ that writes an invalid index with duplicated index entries, etc.
+
+ * "git prune" used to largely ignore broken refs when deciding which
+ objects are still being used, which could spread an existing small
+ damage and make it a larger one.
+
+ * "git tag -h" used to show the "--column" and "--sort" options
+ that are about listing in a wrong section.
+
+ * The transfer.hiderefs support did not quite work for smart-http
+ transport.
+
+ * The code that reads from the ctags file in the completion script
+ (in contrib/) did not spell ${param/pattern/string} substitution
+ correctly, which happened to work with bash but not with zsh.
+
+ * The explanation on "rebase --preserve-merges", "pull --rebase=preserve",
+ and "push --force-with-lease" in the documentation was unclear.
+
+Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/Documentation/RelNotes/2.3.6.txt b/Documentation/RelNotes/2.3.6.txt
new file mode 100644
index 0000000000..432f770ef3
--- /dev/null
+++ b/Documentation/RelNotes/2.3.6.txt
@@ -0,0 +1,13 @@
+Git v2.3.6 Release Notes
+========================
+
+Fixes since v2.3.5
+------------------
+
+ * "diff-highlight" (in contrib/) used to show byte-by-byte
+ differences, which meant that multi-byte characters can be chopped
+ in the middle. It learned to pay attention to character boundaries
+ (assuming the UTF-8 payload).
+
+Also contains typofixes, documentation updates and trivial code
+clean-ups.
diff --git a/Documentation/RelNotes/2.3.7.txt b/Documentation/RelNotes/2.3.7.txt
new file mode 100644
index 0000000000..fc95812cb3
--- /dev/null
+++ b/Documentation/RelNotes/2.3.7.txt
@@ -0,0 +1,21 @@
+Git v2.3.7 Release Notes
+========================
+
+Fixes since v2.3.6
+------------------
+
+ * An earlier update to the parser that disects a URL broke an
+ address, followed by a colon, followed by an empty string (instead
+ of the port number), e.g. ssh://example.com:/path/to/repo.
+
+ * The completion script (in contrib/) contaminated global namespace
+ and clobbered on a shell variable $x.
+
+ * The "git push --signed" protocol extension did not limit what the
+ "nonce" that is a server-chosen string can contain or how long it
+ can be, which was unnecessarily lax. Limit both the length and the
+ alphabet to a reasonably small space that can still have enough
+ entropy.
+
+Also contains typofixes, documentation updates and trivial code
+clean-ups.
diff --git a/Documentation/RelNotes/2.3.8.txt b/Documentation/RelNotes/2.3.8.txt
new file mode 100644
index 0000000000..0b67268a96
--- /dev/null
+++ b/Documentation/RelNotes/2.3.8.txt
@@ -0,0 +1,22 @@
+Git v2.3.8 Release Notes
+========================
+
+Fixes since v2.3.7
+------------------
+
+ * The usual "git diff" when seeing a file turning into a directory
+ showed a patchset to remove the file and create all files in the
+ directory, but "git diff --no-index" simply refused to work. Also,
+ when asked to compare a file and a directory, imitate POSIX "diff"
+ and compare the file with the file with the same name in the
+ directory, instead of refusing to run.
+
+ * The default $HOME/.gitconfig file created upon "git config --global"
+ that edits it had incorrectly spelled user.name and user.email
+ entries in it.
+
+ * "git commit --date=now" or anything that relies on approxidate lost
+ the daylight-saving-time offset.
+
+Also contains typofixes, documentation updates and trivial code
+clean-ups.
diff --git a/Documentation/RelNotes/2.4.0.txt b/Documentation/RelNotes/2.4.0.txt
index f052162eff..cde64be535 100644
--- a/Documentation/RelNotes/2.4.0.txt
+++ b/Documentation/RelNotes/2.4.0.txt
@@ -5,19 +5,20 @@ Backward compatibility warning(s)
---------------------------------
This release has a few changes in the user-visible output from
-Porcelain commands, which the users may want to be aware of.
+Porcelain commands. These are not meant to be parsed by scripts, but
+users still may want to be aware of the changes:
- * Output from "git log --decorate" (and "%d" format specifier used in
- the userformat "--format=<string>" parameter "git log" family of
- command takes) used to list "HEAD" just like other tips of branch
- names, separated with a comma in between. E.g.
+ * The output from "git log --decorate" (and, more generally, the "%d"
+ format specifier used in the "--format=<string>" parameter to the
+ "git log" family of commands) has changed. It used to list "HEAD"
+ just like other branches; e.g.,
$ git log --decorate -1 master
commit bdb0f6788fa5e3cacc4315e9ff318a27b2676ff4 (HEAD, master)
...
- This release updates the output slightly when HEAD refers to the tip
- of a branch whose name is also shown in the output. The above is
+ This release changes the output slightly when HEAD refers to a
+ branch whose name is also shown in the output. The above is now
shown as:
$ git log --decorate -1 master
@@ -25,15 +26,15 @@ Porcelain commands, which the users may want to be aware of.
...
* The phrasing "git branch" uses to describe a detached HEAD has been
- updated to match that of "git status":
+ updated to agree with the phrasing used by "git status":
- - When the HEAD is at the same commit as it was originally
+ - When HEAD is at the same commit as when it was originally
detached, they now both show "detached at <commit object name>".
- - When the HEAD has moved since it was originally detached,
- they now both show "detached from <commit object name>".
+ - When HEAD has moved since it was originally detached, they now
+ both show "detached from <commit object name>".
- Earlier "git branch" always used "from"
+ Previously, "git branch" always used "from".
Updates since v2.3
@@ -45,8 +46,9 @@ Ports
platforms with smaller SSIZE_MAX, leading to read(2)/write(2)
failures.
- * We did not check the curl library version before using
- CURLOPT_PROXYAUTH feature that may not exist.
+ * We did not check the curl library version before using the
+ CURLOPT_PROXYAUTH feature, which did not exist in older versions of
+ the library.
* We now detect number of CPUs on older BSD-derived systems.
@@ -65,89 +67,105 @@ UI, Workflows & Features
* "git log --invert-grep --grep=WIP" will show only commits that do
not have the string "WIP" in their messages.
- * "git push" has been taught a "--atomic" option that makes push to
- update more than one ref an "all-or-none" affair.
+ * "git push" has been taught an "--atomic" option that makes a push
+ that updates more than one ref an "all-or-none" affair.
- * Extending the "push to deploy" added in 2.3, the behaviour of "git
- push" when updating the branch that is checked out can now be
- tweaked by push-to-checkout hook.
+ * Extending the "push to deploy" feature that was added in 2.3, the
+ behaviour of "git push" when updating the branch that is checked
+ out can now be tweaked by a "push-to-checkout" hook.
- * Using environment variable LANGUAGE and friends on the client side,
- HTTP-based transports now send Accept-Language when making requests.
+ * HTTP-based transports now send Accept-Language when making
+ requests. The languages to accept are inferred from environment
+ variables on the client side (LANGUAGE, etc).
* "git send-email" used to accept a mistaken "y" (or "yes") as an
- answer to "What encoding do you want to use [UTF-8]? " without
- questioning. Now it asks for confirmation when the answer looks
- too short to be a valid encoding name.
+ answer to "What encoding do you want to use [UTF-8]?" without
+ questioning. Now it asks for confirmation when the answer looks too
+ short to be a valid encoding name.
* When "git apply --whitespace=fix" fixed whitespace errors in the
common context lines, the command reports that it did so.
- * "git status" now allows the "-v" to be given twice to show the
- differences that are left in the working tree not to be committed.
+ * "git status" now allows the "-v" option to be given twice, in which
+ case it also shows the differences in the working tree that are not
+ staged to be committed.
- * "git cherry-pick" used to clean-up the log message even when it is
- merely replaying an existing commit. It now replays the message
- verbatim unless you are editing the message of resulting commits.
+ * "git cherry-pick" used to clean up the log message even when it is
+ merely replaying an existing commit. It now replays the message
+ verbatim unless you are editing the message of the resulting
+ commit.
* "git archive" can now be told to set the 'text' attribute in the
resulting zip archive.
- * Output from "git log --decorate" mentions HEAD when it points at a
- tip of an branch differently from a detached HEAD.
+ * Output from "git log --decorate" now distinguishes between a
+ detached HEAD vs. a HEAD that points at a branch.
- This is a potentially backward-incompatible change.
+ This is a potentially backward-incompatible change; see above for
+ more information.
- * "git branch" on a detached HEAD always said "(detached from xyz)",
- even when "git status" would report "detached at xyz". The HEAD is
- actually at xyz and haven't been moved since it was detached in
- such a case, but the user cannot read what the current value of
- HEAD is when "detached from" is used.
+ * When HEAD was detached when at commit xyz and hasn't been moved
+ since it was detached, "git status" would report "detached at xyz"
+ whereas "git branch" would report "detached from xyz". Now the
+ output of "git branch" agrees with that of "git status".
- * "git -C '' subcmd" refused to work in the current directory, unlike
- "cd ''" which silently behaves as a no-op.
+ This is a potentially backward-incompatible change; see above for
+ more information.
+
+ * "git -C '' subcmd" now works in the current directory (analogously
+ to "cd ''") rather than dying with an error message.
(merge 6a536e2 kn/git-cd-to-empty later to maint).
- * The versionsort.prerelease configuration variable can be used to
- specify that v1.0-pre1 comes before v1.0.
+ * The versionsort.prereleaseSuffix configuration variable can be used
+ to specify that, for example, v1.0-pre1 comes before v1.0.
* A new "push.followTags" configuration turns the "--follow-tags"
option on by default for the "git push" command.
+ * "git log --graph --no-walk A B..." is a nonsensical combination of
+ options: "--no-walk" requests discrete points in the history, while
+ "--graph" asks to draw connections between these discrete points.
+ Forbid the use of these options together.
+
+ * "git rev-list --bisect --first-parent" does not work (yet) and can
+ even cause SEGV; forbid it. "git log --bisect --first-parent" would
+ not be useful until "git bisect --first-parent" materializes, so
+ also forbid it for now.
+
Performance, Internal Implementation, Development Support etc.
- * Implementation of N_() macro has been updated slightly to help us
+ * Slightly change the implementation of the N_() macro to help us
detect mistakes.
- * Implementation of "reflog expire" has been restructured to fit the
- reflogs better with the recently updated ref API.
+ * Restructure the implementation of "reflog expire" to fit better
+ with the recently updated reference API.
- * The transport-helper did not give transport options such as
+ * The transport-helper did not pass transport options such as
verbosity, progress, cloning, etc. to import and export based
helpers, like it did for fetch and push based helpers, robbing them
- the chance to honor the wish of the end-users better.
-
- * The tests that wanted to see that file becomes unreadable after