diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/RelNotes/2.25.2.txt | 60 | ||||
-rw-r--r-- | Documentation/RelNotes/2.26.0.txt | 40 | ||||
-rw-r--r-- | Documentation/config/http.txt | 21 | ||||
-rw-r--r-- | Documentation/fetch-options.txt | 10 | ||||
-rw-r--r-- | Documentation/howto/maintain-git.txt | 52 |
5 files changed, 135 insertions, 48 deletions
diff --git a/Documentation/RelNotes/2.25.2.txt b/Documentation/RelNotes/2.25.2.txt new file mode 100644 index 0000000000..303c53a17f --- /dev/null +++ b/Documentation/RelNotes/2.25.2.txt @@ -0,0 +1,60 @@ +Git 2.25.2 Release Notes +======================== + +Fixes since v2.25.1 +------------------- + + * Minor bugfixes to "git add -i" that has recently been rewritten in C. + + * An earlier update to show the location of working tree in the error + message did not consider the possibility that a git command may be + run in a bare repository, which has been corrected. + + * The "--recurse-submodules" option of various subcommands did not + work well when run in an alternate worktree, which has been + corrected. + + * Running "git rm" on a submodule failed unnecessarily when + .gitmodules is only cache-dirty, which has been corrected. + + * "git rebase -i" identifies existing commits in its todo file with + their abbreviated object name, which could become ambigous as it + goes to create new commits, and has a mechanism to avoid ambiguity + in the main part of its execution. A few other cases however were + not covered by the protection against ambiguity, which has been + corrected. + + * The index-pack code now diagnoses a bad input packstream that + records the same object twice when it is used as delta base; the + code used to declare a software bug when encountering such an + input, but it is an input error. + + * The code to automatically shrink the fan-out in the notes tree had + an off-by-one bug, which has been killed. + + * "git check-ignore" did not work when the given path is explicitly + marked as not ignored with a negative entry in the .gitignore file. + + * The merge-recursive machinery failed to refresh the cache entry for + a merge result in a couple of places, resulting in an unnecessary + merge failure, which has been fixed. + + * Fix for a bug revealed by a recent change to make the protocol v2 + the default. + + * "git merge signed-tag" while lacking the public key started to say + "No signature", which was utterly wrong. This regression has been + reverted. + + * MinGW's poll() emulation has been improved. + + * "git show" and others gave an object name in raw format in its + error output, which has been corrected to give it in hex. + + * Both "git ls-remote -h" and "git grep -h" give short usage help, + like any other Git subcommand, but it is not unreasonable to expect + that the former would behave the same as "git ls-remote --head" + (there is no other sensible behaviour for the latter). The + documentation has been updated in an attempt to clarify this. + +Also contains various documentation updates, code clean-ups and minor fixups. diff --git a/Documentation/RelNotes/2.26.0.txt b/Documentation/RelNotes/2.26.0.txt index 80d5e15aa0..3a7a734c26 100644 --- a/Documentation/RelNotes/2.26.0.txt +++ b/Documentation/RelNotes/2.26.0.txt @@ -8,14 +8,13 @@ Backward compatibility notes * "git rebase" uses a different backend that is based on the 'merge' machinery by default. There are a few known differences in the - behaviour from the traditional machniery based on patch+apply. + behaviour from the traditional machinery based on patch+apply. If your workflow is negatively affected by this change, please report it to git@vger.kernel.org so that we can take a look into - it. In the meantime, the 'rebase.backend' configuration variable - can be set in order to use the old default behaviour (the value to - do so is not described here---it is given to those who report their - issues to the list ;-). + it. After doing so, you can set the 'rebase.backend' configuration + variable to 'apply', in order to use the old default behaviour in + the meantime. UI, Workflows & Features @@ -64,7 +63,7 @@ UI, Workflows & Features * "git rm" and "git stash" learns the new "--pathspec-from-file" option. - * "git am --short-current-patch" is a way to show the piece of e-mail + * "git am --show-current-patch" is a way to show the piece of e-mail for the stopped step, which is not suitable to directly feed "git apply" (it is designed to be a good "git am" input). It learned a new option to show only the patch part. @@ -80,7 +79,7 @@ Performance, Internal Implementation, Development Support etc. with tabs. * The test-lint machinery knew to check "VAR=VAL shell_function" - construct, but did not check "VAR= shell_funciton", which has been + construct, but did not check "VAR= shell_function", which has been corrected. * Replace "git config --bool" calls with "git config --type=bool" in @@ -189,7 +188,6 @@ Fixes since v2.25 of gcc and clang. * Minor bugfixes to "git add -i" that has recently been rewritten in C. - (merge 849e43cc18 js/builtin-add-i-cmds later to maint). * "git fetch --refmap=" option has got a better documentation. @@ -212,17 +210,14 @@ Fixes since v2.25 * The "--recurse-submodules" option of various subcommands did not work well when run in an alternate worktree, which has been corrected. - (merge a9472afb63 pb/recurse-submodule-in-worktree-fix later to maint). * Futureproofing a test not to depend on the current implementation detail. * Running "git rm" on a submodule failed unnecessarily when .gitmodules is only cache-dirty, which has been corrected. - (merge 7edee32985 dt/submodule-rm-with-stale-cache later to maint). * C pedantry ;-) fix. - (merge cf82bff73f jk/clang-sanitizer-fixes later to maint). * "git grep --no-index" should not get affected by the contents of the .gitmodules file but when "--recurse-submodules" is given or @@ -234,12 +229,11 @@ Fixes since v2.25 * Unhelpful warning messages during documentation build have been squelched. * "git rebase -i" identifies existing commits in its todo file with - their abbreviated object name, which could become ambigous as it + their abbreviated object name, which could become ambiguous as it goes to create new commits, and has a mechanism to avoid ambiguity in the main part of its execution. A few other cases however were not covered by the protection against ambiguity, which has been corrected. - (merge 26027625dd js/rebase-i-with-colliding-hash later to maint). * Allow the rebase.missingCommitsCheck configuration to kick in when "rebase --edit-todo" and "rebase --continue" restarts the procedure. @@ -253,13 +247,12 @@ Fixes since v2.25 * The code to automatically shrink the fan-out in the notes tree had an off-by-one bug, which has been killed. - (merge dbc27477ff jh/notes-fanout-fix later to maint). * The index-pack code now diagnoses a bad input packstream that records the same object twice when it is used as delta base; the code used to declare a software bug when encountering such an input, but it is an input error. - (merge a21781011f jk/index-pack-dupfix later to maint). + * The code to compute the commit-graph has been taught to use a more robust way to tell if two object directories refer to the same @@ -271,23 +264,18 @@ Fixes since v2.25 branch.<name>.pushRemote is now also updated. * Update to doc-diff. - (merge 2607d39da3 jk/doc-diff-parallel later to maint). * Doc markup fix. - (merge 0aa6ce3094 jk/push-option-doc-markup-fix later to maint). * "git check-ignore" did not work when the given path is explicitly marked as not ignored with a negative entry in the .gitignore file. - (merge 7ec8125fba en/check-ignore later to maint). * The merge-recursive machinery failed to refresh the cache entry for a merge result in a couple of places, resulting in an unnecessary merge failure, which has been fixed. - (merge fb1c18fc46 en/t3433-rebase-stat-dirty-failure later to maint). * Fix for a bug revealed by a recent change to make the protocol v2 the default. - (merge 3e96c66805 ds/partial-clone-fixes later to maint). * In rare cases "git worktree add <path>" could think that <path> was already a registered worktree even when it wasn't and refuse @@ -312,14 +300,11 @@ Fixes since v2.25 * "git merge signed-tag" while lacking the public key started to say "No signature", which was utterly wrong. This regression has been reverted. - (merge 0106b1d4be hi/gpg-use-check-signature later to maint). * MinGW's poll() emulation has been improved. - (merge 94f4d01932 am/mingw-poll-fix later to maint). * "git show" and others gave an object name in raw format in its error output, which has been corrected to give it in hex. - (merge 237a28173f hd/show-one-mergetag-fix later to maint). * "git fetch" over HTTP walker protocol did not show any progress output. We inherently do not know how much work remains, but still @@ -331,10 +316,8 @@ Fixes since v2.25 that the former would behave the same as "git ls-remote --head" (there is no other sensible behaviour for the latter). The documentation has been updated in an attempt to clarify this. - (merge 1ff466c018 jc/doc-single-h-is-for-help later to maint). * Other code cleanup, docfix, build fix, etc. - (merge 26f924d50e en/simplify-check-updates-in-unpack-trees later to maint). (merge d0d0a357a1 am/update-pathspec-f-f-tests later to maint). (merge f94f7bd00d am/test-pathspec-f-f-error-cases later to maint). (merge c513a958b6 ss/t6025-modernize later to maint). @@ -345,20 +328,13 @@ Fixes since v2.25 (merge 7a9f8ca805 rs/parse-options-concat-dup later to maint). (merge 517b60564e rs/strbuf-insertstr later to maint). (merge f696a2b1c8 jk/mailinfo-cleanup later to maint). - (merge 076ee3e8a2 js/test-write-junit-xml-fix later to maint). (merge de26f02db1 js/test-avoid-pipe later to maint). - (merge bfe2bbb47f js/test-unc-fetch later to maint). - (merge 08809c09aa js/mingw-open-in-gdb later to maint). - (merge cc4f2eb828 jk/doc-credential-helper later to maint). - (merge e0020b2f82 es/outside-repo-errmsg-hints later to maint). (merge a2dc43414c es/doc-mentoring later to maint). - (merge 539052f42f jk/run-command-formatfix later to maint). (merge 02bbbe9df9 es/worktree-cleanup later to maint). (merge 2ce6d075fa rs/micro-cleanups later to maint). (merge 27f182b3fc rs/blame-typefix-for-fingerprint later to maint). (merge 3c29e21eb0 ma/test-cleanup later to maint). (merge 240fc04f81 ag/rebase-remove-redundant-code later to maint). - (merge 7f487ce062 js/ci-windows-update later to maint). (merge d68ce906c7 rs/commit-graph-code-simplification later to maint). (merge a51d9e8f07 rj/t1050-use-test-path-is-file later to maint). (merge fd0bc17557 kk/complete-diff-color-moved later to maint). diff --git a/Documentation/config/http.txt b/Documentation/config/http.txt index e806033aab..3968fbb697 100644 --- a/Documentation/config/http.txt +++ b/Documentation/config/http.txt @@ -29,6 +29,27 @@ http.proxyAuthMethod:: * `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`) -- +http.proxySSLCert:: + The pathname of a file that stores a client certificate to use to authenticate + with an HTTPS proxy. Can be overridden by the `GIT_PROXY_SSL_CERT` environment + variable. + +http.proxySSLKey:: + The pathname of a file that stores a private key to use to authenticate with + an HTTPS proxy. Can be overridden by the `GIT_PROXY_SSL_KEY` environment + variable. + +http.proxySSLCertPasswordProtected:: + Enable Git's password prompt for the proxy SSL certificate. Otherwise OpenSSL + will prompt the user, possibly many times, if the certificate or private key + is encrypted. Can be overriden by the `GIT_PROXY_SSL_CERT_PASSWORD_PROTECTED` + environment variable. + +http.proxySSLCAInfo:: + Pathname to the file containing the certificate bundle that should be used to + verify the proxy with when using an HTTPS proxy. Can be overriden by the + `GIT_PROXY_SSL_CAINFO` environment variable. + http.emptyAuth:: Attempt authentication without seeking a username or password. This can be used to attempt GSS-Negotiate authentication without specifying diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt index a115a1ae0e..00d03ec8c3 100644 --- a/Documentation/fetch-options.txt +++ b/Documentation/fetch-options.txt @@ -61,10 +61,8 @@ this option multiple times, one for each matching ref name. See also the `fetch.negotiationAlgorithm` configuration variable documented in linkgit:git-config[1]. -ifndef::git-pull[] --dry-run:: Show what would be done, without making any changes. -endif::git-pull[] -f:: --force:: @@ -95,6 +93,7 @@ ifndef::git-pull[] --[no-]write-commit-graph:: Write a commit-graph after fetching. This overrides the config setting `fetch.writeCommitGraph`. +endif::git-pull[] -p:: --prune:: @@ -107,6 +106,7 @@ ifndef::git-pull[] was cloned with the --mirror option), then they are also subject to pruning. Supplying `--prune-tags` is a shorthand for providing the tag refspec. +ifndef::git-pull[] + See the PRUNING section below for more details. @@ -133,7 +133,6 @@ endif::git-pull[] behavior for a remote may be specified with the remote.<name>.tagOpt setting. See linkgit:git-config[1]. -ifndef::git-pull[] --refmap=<refspec>:: When fetching refs listed on the command line, use the specified refspec (can be given more than once) to map the @@ -154,6 +153,7 @@ ifndef::git-pull[] is used (though tags may be pruned anyway if they are also the destination of an explicit refspec; see `--prune`). +ifndef::git-pull[] --recurse-submodules[=yes|on-demand|no]:: This option controls if and under what conditions new commits of populated submodules should be fetched too. It can be used as a @@ -164,6 +164,7 @@ ifndef::git-pull[] when the superproject retrieves a commit that updates the submodule's reference to a commit that isn't already in the local submodule clone. +endif::git-pull[] -j:: --jobs=<n>:: @@ -177,9 +178,11 @@ parallel. To control them independently, use the config settings Typically, parallel recursive and multi-remote fetches will be faster. By default fetches are performed sequentially, not in parallel. +ifndef::git-pull[] --no-recurse-submodules:: Disable recursive fetching of submodules (this has the same effect as using the `--recurse-submodules=no` option). +endif::git-pull[] --set-upstream:: If the remote is fetched successfully, pull and add upstream @@ -188,6 +191,7 @@ default fetches are performed sequentially, not in parallel. see `branch.<name>.merge` and `branch.<name>.remote` in linkgit:git-config[1]. +ifndef::git-pull[] --submodule-prefix=<path>:: Prepend <path> to paths printed in informative messages such as "Fetching submodule foo". This option is used diff --git a/Documentation/howto/maintain-git.txt b/Documentation/howto/maintain-git.txt index ca4378740c..73be8b49f8 100644 --- a/Documentation/howto/maintain-git.txt +++ b/Documentation/howto/maintain-git.txt @@ -154,15 +154,17 @@ by doing the following: - Anything unobvious that is applicable to 'master' (in other words, does not depend on anything that is still in 'next' and not in 'master') is applied to a new topic branch that - is forked from the tip of 'master'. This includes both + is forked from the tip of 'master' (or the last feature release, + which is a bit older than 'master'). This includes both enhancements and unobvious fixes to 'master'. A topic branch is named as ai/topic where "ai" is two-letter string named after author's initial and "topic" is a descriptive name of the topic (in other words, "what's the series is about"). - An unobvious fix meant for 'maint' is applied to a new - topic branch that is forked from the tip of 'maint'. The - topic is named as ai/maint-topic. + topic branch that is forked from the tip of 'maint' (or the + oldest and still relevant maintenance branch). The + topic may be named as ai/maint-topic. - Changes that pertain to an existing topic are applied to the branch, but: @@ -174,24 +176,40 @@ by doing the following: - Replacement patches to an existing topic are accepted only for commits not in 'next'. - The above except the "replacement" are all done with: + The initial round is done with: $ git checkout ai/topic ;# or "git checkout -b ai/topic master" $ git am -sc3 mailbox - while patch replacement is often done by: + and replacing an existing topic with subsequent round is done with: - $ git format-patch ai/topic~$n..ai/topic ;# export existing + $ git checkout master...ai/topic ;# try to reapply to the same base + $ git am -sc3 mailbox + + to prepare the new round on a detached HEAD, and then + + $ git range-diff @{-1}... + $ git diff @{-1} - then replace some parts with the new patch, and reapplying: + to double check what changed since the last round, and finally - $ git checkout ai/topic - $ git reset --hard ai/topic~$n - $ git am -sc3 -s 000*.txt + $ git checkout -B @{-1} + + to conclude (the last step is why a topic already in 'next' is + not replaced but updated incrementally). + + Whether it is the initial round or a subsequent round, the topic + may not build even in isolation, or may break the build when + merged to integration branches due to bugs. There may already + be obvious and trivial improvements suggested on the list. The + maintainer often adds an extra commit, with "SQUASH???" in its + title, to fix things up, before publishing the integration + branches to make it usable by other developers for testing. + These changes are what the maintainer is not 100% committed to + (trivial typofixes etc. are often squashed directly into the + patches that need fixing, without being applied as a separate + "SQUASH???" commit), so that they can be removed easily as needed. - The full test suite is always run for 'maint' and 'master' - after patch application; for topic branches the tests are run - as time permits. - Merge maint to master as needed: @@ -371,6 +389,14 @@ Some observations to be made. be included in the next feature release. Being in the 'master' branch typically is. + * Due to the nature of "SQUASH???" fix-ups, if the original author + agrees with the suggested changes, it is OK to squash them to + appropriate patches in the next round (when the suggested change + is small enough, the author should not even bother with + "Helped-by"). It is also OK to drop them from the next round + when the original author does not agree with the suggestion, but + the author is expected to say why somewhere in the discussion. + Appendix -------- |