diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/RelNotes/2.2.2.txt | 30 | ||||
-rw-r--r-- | Documentation/RelNotes/2.3.0.txt | 99 | ||||
-rw-r--r-- | Documentation/SubmittingPatches | 19 | ||||
-rw-r--r-- | Documentation/config.txt | 1 | ||||
-rw-r--r-- | Documentation/git-clone.txt | 11 | ||||
-rw-r--r-- | Documentation/git-imap-send.txt | 27 | ||||
-rw-r--r-- | Documentation/git-pack-objects.txt | 7 | ||||
-rw-r--r-- | Documentation/git-rev-list.txt | 3 | ||||
-rw-r--r-- | Documentation/git-send-email.txt | 5 | ||||
-rw-r--r-- | Documentation/git.txt | 3 | ||||
-rw-r--r-- | Documentation/rev-list-options.txt | 7 |
11 files changed, 196 insertions, 16 deletions
diff --git a/Documentation/RelNotes/2.2.2.txt b/Documentation/RelNotes/2.2.2.txt index 29e1a3b324..b19a35d94f 100644 --- a/Documentation/RelNotes/2.2.2.txt +++ b/Documentation/RelNotes/2.2.2.txt @@ -30,4 +30,34 @@ Fixes since v2.2.1 * The build procedure did not bother fixing perl and python scripts when NO_PERL and NO_PYTHON build-time configuration changed. + * The code that reads the reflog from the newer to the older entries + did not handle an entry that crosses a boundary of block it uses to + read them correctly. + + * "git apply" was described in the documentation to take --ignore-date + option, which it does not. + + * Traditionally we tried to avoid interpreting date strings given by + the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when + used early November 2014 was taken as "October 12, 2014" because it + is likely that a date in the future, December 10, is a mistake. + This heuristics has been loosened to allow people to express future + dates (most notably, --until=<date> may want to be far in the + future) and we no longer tiebreak by future-ness of the date when + + (1) ISO-like format is used, and + (2) the string can make sense interpreted as both y-m-d and y-d-m. + + Git may still have to use the heuristics to tiebreak between dd/mm/yy + and mm/dd/yy, though. + + * The code to abbreviate an object name to its short unique prefix + has been optimized when no abbreviation was requested. + + * "git add --ignore-errors ..." did not ignore an error to + give a file that did not exist. + + * Git did not correctly read an overlong refname from a packed refs + file. + Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/Documentation/RelNotes/2.3.0.txt b/Documentation/RelNotes/2.3.0.txt index 1b1dcbb584..72db8d211f 100644 --- a/Documentation/RelNotes/2.3.0.txt +++ b/Documentation/RelNotes/2.3.0.txt @@ -26,9 +26,19 @@ UI, Workflows & Features * "git am" learned "--message-id" option to copy the message ID of the incoming e-mail to the log message of resulting commit. + * "git clone --reference=<over there>" learned the "--dissociate" + option to go with it; it borrows objects from the reference object + store while cloning only to reduce network traffic and then + dissociates the resulting clone from the reference by performing + local copies of borrowed objects. + * "git send-email" learned "--transfer-encoding" option to force a non-fault Content-Transfer-Encoding header (e.g. base64). + * "git send-email" normally identifies itself via X-Mailer: header in + the message it sends out. A new command line flag --no-xmailer + allows the user to squelch the header. + * "git push" into a repository with a working tree normally refuses to modify the branch that is checked out. The command learned to optionally do an equivalent of "git reset --hard" only when there @@ -53,9 +63,31 @@ UI, Workflows & Features * "diff-highlight" filter (in contrib/) allows its color output to be customized via configuration variables. + * "git imap-send" learned to take "-v" (verbose) and "-q" (quiet) + command line options. + + * "git imap-send" now can be built to use cURL library to talk to + IMAP servers (if the library is recent enough, of course). + This allows you to use authenticate method other than CRAM-MD5, + among other things. + Performance, Internal Implementation, Development Support etc. + * Earlier we made "rev-list --object-edge" more aggressively list the + objects at the edge commits, in order to reduce number of objects  + fetched into a shallow repository, but the change affected cases + other than "fetching into a shallow repository" and made it + unusably slow (e.g. fetching into a normal repository should not + have to suffer the overhead from extra processing). Limit it to a + more specific case by introducing --objects-edge-aggressive, a new + option to rev-list. + + * Squelched useless compiler warnings on Mac OS X regarding the + crypto API. + + * The procedure to generate unicode table has been simplified. + * Some filesystems assign filemodes in a strange way, fooling then automatic "filemode trustability" check done during a new repository creation. The initialization codepath has been hardened @@ -64,6 +96,9 @@ Performance, Internal Implementation, Development Support etc. * The codepath in "git remote update --prune" to drop many refs has been optimized. + * The API into get_merge_bases*() family of functions was easy to + misuse, which has been corrected to make it harder to do so. + * Long overdue departure from the assumption that S_IFMT is shared by everybody made in 2005, which was necessary to port to z/OS. @@ -87,10 +122,49 @@ Unless otherwise noted, all the fixes since v2.2 in the maintenance track are contained in this release (see the maintenance releases' notes for details). + * The logic in "git bisect bad HEAD" etc. to avoid forcing the test + of the common ancestor of bad and good commits was broken. + (merge 07913d5 cc/bisect-rev-parsing later to maint). + + * "git checkout-index --temp=$target $path" did not work correctly + for paths outside the current subdirectory in the project. + (merge 74c4de5 es/checkout-index-temp later to maint). + + * The report from "git checkout" on a branch that builds on another + local branch by setting its branch.*.merge to branch name (not a + full refname) incorrectly said that the upstream is gone. + (merge 05e7368 jc/checkout-local-track-report later to maint). + + * With The git-prompt support (in contrib/), using the exit status of + the last command in the prompt, e.g. PS1='$(__git_ps1) $? ', did + not work well, because the helper function stomped on the exit + status. + (merge eb443e3 tf/prompt-preserve-exit-status later to maint). + + * Recent update to "git commit" broke amending an existing commit with bogus author/committer lines without a valid e-mail address. (merge c83a509 jk/commit-date-approxidate later to maint). + * The lockfile API used to get confused which file to clean up when + the process moved the $cwd after creating a lockfile. + (merge fa137f6 nd/lockfile-absolute later to maint). + + * Traditionally we tried to avoid interpreting date strings given by + the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when + used early November 2014 was taken as "October 12, 2014" because it + is likely that a date in the future, December 10, is a mistake. + This heuristics has been loosened to allow people to express future + dates (most notably, --until=<date> may want to be far in the + future) and we no longer tiebreak by future-ness of the date when + + (1) ISO-like format is used, and + (2) the string can make sense interpreted as both y-m-d and y-d-m. + + Git may still have to use the heuristics to tiebreak between dd/mm/yy + and mm/dd/yy, though. + (merge d372395 jk/approxidate-avoid-y-d-m-over-future-dates later to maint). + * Git did not correctly read an overlong refname from a packed refs file. (merge ea41783 jk/read-packed-refs-without-path-max later to maint). @@ -99,6 +173,14 @@ notes for details). option, which it does not. (merge 0cef4e7 rw/apply-does-not-take-ignore-date later to maint). + * "git add -i" did not notice when the interactive command input + stream went away and kept asking the same question. + (merge a8bec7a jk/add-i-read-error later to maint). + + * "git send-email" did not handle RFC 2047 encoded headers quite + right. + (merge ab47e2a rd/send-email-2047-fix later to maint). + * New tag object format validation added in 2.2 showed garbage after a tagname it reported in its error message. (merge a1e920a js/fsck-tag-validation later to maint). @@ -108,6 +190,23 @@ notes for details). read them correctly. (merge 69216bf jk/for-each-reflog-ent-reverse later to maint). + * "git diff -B -M" after making a new copy B out of an existing file + A and then editing A extensively ought to report that B was created + by copying A and A was modified, which is what "git diff -C" + reports, but it instead said A was renamed to B and A was edited + heavily in place. This was not just incoherent but also failed to + apply with "git apply". The report has been corrected to match what + "git diff -C" produces for this case. + (merge 6936b58 jc/diff-b-m later to maint). + + * In files we pre-populate for the user to edit with commented hints, + a line of hint that is indented with a tab used to show as '#' (or + any comment char), ' ' (space), and then the hint text that began + with the tab, which some editors flag as an indentation error (tab + following space). We now omit the space after the comment char in + such a case. + (merge d55aeb7 jc/strbuf-add-lines-avoid-sp-ht-sequence later to maint). + * "git ls-tree" does not support path selection based on negative pathspecs, but did not error out when negative pathspecs are given. (merge f1f6224 nd/ls-tree-pathspec later to maint). diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index e3c942e579..ef0eeb40cd 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches @@ -176,8 +176,11 @@ message starts, you can put a "From: " line to name that person. You often want to add additional explanation about the patch, other than the commit message itself. Place such "cover letter" -material between the three dash lines and the diffstat. Git-notes -can also be inserted using the `--notes` option. +material between the three-dash line and the diffstat. For +patches requiring multiple iterations of review and discussion, +an explanation of changes between each iteration can be kept in +Git-notes and inserted automatically following the three-dash +line via `git format-patch --notes`. Do not attach the patch as a MIME attachment, compressed or not. Do not let your e-mail client send quoted-printable. Do not let @@ -255,15 +258,15 @@ pretty simple: if you can certify the below: person who certified (a), (b) or (c) and I have not modified it. - (d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. + (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. then you just add a line saying - Signed-off-by: Random J Developer <random@developer.example.org> + Signed-off-by: Random J Developer <random@developer.example.org> This line can be automatically added by Git if you run the git-commit command with the -s option. diff --git a/Documentation/config.txt b/Documentation/config.txt index 6862e3e301..cc887b1279 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -2329,6 +2329,7 @@ sendemail.smtpuser:: sendemail.thread:: sendemail.transferencoding:: sendemail.validate:: +sendemail.xmailer:: See linkgit:git-send-email[1] for description. sendemail.signedoffcc:: diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index 0363d0039b..f1f2a3f7ea 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -12,7 +12,7 @@ SYNOPSIS 'git clone' [--template=<template_directory>] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>] - [--separate-git-dir <git dir>] + [--dissociate] [--separate-git-dir <git dir>] [--depth <depth>] [--[no-]single-branch] [--recursive | --recurse-submodules] [--] <repository> [<directory>] @@ -98,7 +98,14 @@ objects from the source repository into a pack in the cloned repository. require fewer objects to be copied from the repository being cloned, reducing network and local storage costs. + -*NOTE*: see the NOTE for the `--shared` option. +*NOTE*: see the NOTE for the `--shared` option, and also the +`--dissociate` option. + +--dissociate:: + Borrow the objects from reference repositories specified + with the `--reference` options only to reduce network + transfer and stop borrowing from them after a clone is made + by making necessary local copies of borrowed objects. --quiet:: -q:: diff --git a/Documentation/git-imap-send.txt b/Documentation/git-imap-send.txt index c7c0d21429..77aacf1309 100644 --- a/Documentation/git-imap-send.txt +++ b/Documentation/git-imap-send.txt @@ -9,7 +9,7 @@ git-imap-send - Send a collection of patches from stdin to an IMAP folder SYNOPSIS -------- [verse] -'git imap-send' +'git imap-send' [-v] [-q] [--[no-]curl] DESCRIPTION @@ -26,6 +26,27 @@ Typical usage is something like: git format-patch --signoff --stdout --attach origin | git imap-send +OPTIONS +------- + +-v:: +--verbose:: + Be verbose. + +-q:: +--quiet:: + Be quiet. + +--curl:: + Use libcurl to communicate with the IMAP server, unless tunneling + into it. Ignored if Git was built without the USE_CURL_FOR_IMAP_SEND + option set. + +--no-curl:: + Talk to the IMAP server using git's own IMAP routines instead of + using libcurl. + + CONFIGURATION ------------- @@ -75,7 +96,9 @@ imap.preformattedHTML:: imap.authMethod:: Specify authenticate method for authentication with IMAP server. - Current supported method is 'CRAM-MD5' only. If this is not set + If Git was built with the NO_CURL option, or if your curl version is older + than 7.34.0, or if you're running git-imap-send with the `--no-curl` + option, the only supported method is 'CRAM-MD5'. If this is not set then 'git imap-send' uses the basic IMAP plaintext LOGIN command. Examples diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt index d2d8f4792a..c2f76fb1ea 100644 --- a/Documentation/git-pack-objects.txt +++ b/Documentation/git-pack-objects.txt @@ -13,7 +13,7 @@ SYNOPSIS [--no-reuse-delta] [--delta-base-offset] [--non-empty] [--local] [--incremental] [--window=<n>] [--depth=<n>] [--revs [--unpacked | --all]] [--stdout | base-name] - [--keep-true-parents] < object-list + [--shallow] [--keep-true-parents] < object-list DESCRIPTION @@ -190,6 +190,11 @@ required objects and is thus unusable by Git without making it self-contained. Use `git index-pack --fix-thin` (see linkgit:git-index-pack[1]) to restore the self-contained property. +--shallow:: + Optimize a pack that will be provided to a client with a shallow + repository. This option, combined with \--thin, can result in a + smaller pack at the cost of speed. + --delta-base-offset:: A packed archive can express the base object of a delta as either a 20-byte object name or as an offset in the diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt index fd7f8b5bc1..5b119220bf 100644 --- a/Documentation/git-rev-list.txt +++ b/Documentation/git-rev-list.txt @@ -46,7 +46,8 @@ SYNOPSIS [ \--extended-regexp | -E ] [ \--fixed-strings | -F ] [ \--date=(local|relative|default|iso|iso-strict|rfc|short) ] - [ [\--objects | \--objects-edge] [ \--unpacked ] ] + [ [ \--objects | \--objects-edge | \--objects-edge-aggressive ] + [ \--unpacked ] ] [ \--pretty | \--header ] [ \--bisect ] [ \--bisect-vars ] diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index a9efa5c2ec..e04849e396 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -141,6 +141,11 @@ Note that no attempts whatsoever are made to validate the encoding. configuration value; if that is unspecified, git will use 8bit and not add a Content-Transfer-Encoding header. +--xmailer:: +--no-xmailer:: + Add (or prevent adding) the "X-Mailer:" header. By default, + the header is added, but it can be turned off by setting the + `sendemail.xmailer` configuration variable to `false`. Sending ~~~~~~~ diff --git a/Documentation/git.txt b/Documentation/git.txt index 179615195f..9d33431427 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,10 @@ 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.2.1/git.html[documentation for release 2.2.1] +* link:v2.2.2/git.html[documentation for release 2.2.2] * release notes for + link:RelNotes/2.2.2.txt[2.2.2], link:RelNotes/2.2.1.txt[2.2.1], link:RelNotes/2.2.0.txt[2.2]. diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index afccfdc23a..2984f407a9 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -653,10 +653,15 @@ These options are mostly targeted for packing of Git repositories. --objects-edge:: Similar to `--objects`, but also print the IDs of excluded commits prefixed with a ``-'' character. This is used by - linkgit:git-pack-objects[1] to build ``thin'' pack, which records + linkgit:git-pack-objects[1] to build a ``thin'' pack, which records objects in deltified form based on objects contained in these excluded commits to reduce network traffic. +--objects-edge-aggressive:: + Similar to `--objects-edge`, but it tries harder to find excluded + commits at the cost of increased time. This is used instead of + `--objects-edge` to build ``thin'' packs for shallow repositories. + --unpacked:: Only useful with `--objects`; print the object IDs that are not in packs. |