|
|
|
@ -23,6 +23,24 @@ UI, Workflows & Features
@@ -23,6 +23,24 @@ UI, Workflows & Features
|
|
|
|
|
the difference between the base commit version and the working tree |
|
|
|
|
version, which is in line with what "git show" gives. |
|
|
|
|
|
|
|
|
|
* Sometimes users want to report a bug they experience on their |
|
|
|
|
repository, but they are not at liberty to share the contents of |
|
|
|
|
the repository. "fast-export" was taught an "--anonymize" option |
|
|
|
|
to replace blob contents, names of people and paths and log |
|
|
|
|
messages with bland and simple strings to help them. |
|
|
|
|
|
|
|
|
|
* "log --date=iso" uses a slight variant of ISO 8601 format that is |
|
|
|
|
made more human readable. A new "--date=iso-strict" option gives |
|
|
|
|
datetime output that is more strictly conformant. |
|
|
|
|
|
|
|
|
|
* A broken reimplementation of Git could write an invalid index that |
|
|
|
|
records both stage #0 and higher stage entries for the same path. |
|
|
|
|
We now notice and reject such an index, as there is no sensible |
|
|
|
|
fallback (we do not know if the broken tool wanted to resolve and |
|
|
|
|
forgot to remove higher stage entries, or if it wanted to unresolve |
|
|
|
|
and forgot to remove the stage#0 entry). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Performance, Internal Implementation, etc. |
|
|
|
|
|
|
|
|
|
* The API to manipulate the "refs" is currently undergoing a revamp |
|
|
|
@ -65,6 +83,10 @@ Performance, Internal Implementation, etc.
@@ -65,6 +83,10 @@ Performance, Internal Implementation, etc.
|
|
|
|
|
"write-tree" (used in "commit") and "diff-index --cached" (used in |
|
|
|
|
"status"). |
|
|
|
|
|
|
|
|
|
* A common programming mistake to assign the same short option name |
|
|
|
|
to two separate options is detected by parse_options() API to help |
|
|
|
|
developers. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also contains various documentation updates and code clean-ups. |
|
|
|
|
|
|
|
|
@ -79,7 +101,6 @@ notes for details).
@@ -79,7 +101,6 @@ notes for details).
|
|
|
|
|
* "git log --pretty/format=" with an empty format string did not |
|
|
|
|
mean the more obvious "No output whatsoever" but "Use default |
|
|
|
|
format", which was counterintuitive. |
|
|
|
|
(merge b9c7d6e jk/pretty-empty-format later to maint). |
|
|
|
|
|
|
|
|
|
* Implementations of "tar" that do not understand an extended pax |
|
|
|
|
header would extract the contents of it in a regular file; make |
|
|
|
@ -89,44 +110,62 @@ notes for details).
@@ -89,44 +110,62 @@ notes for details).
|
|
|
|
|
* "git -c section.var command" and "git -c section.var= command" |
|
|
|
|
should pass the configuration differently (the former should be a |
|
|
|
|
boolean true, the latter should be an empty string). |
|
|
|
|
(merge a789ca7 jk/command-line-config-empty-string later to maint). |
|
|
|
|
|
|
|
|
|
* Applying a patch not generated by Git in a subdirectory used to |
|
|
|
|
check the whitespace breakage using the attributes for incorrect |
|
|
|
|
paths. Also whitespace checks were performed even for paths |
|
|
|
|
excluded via "git apply --exclude=<path>" mechanism. |
|
|
|
|
(merge 477a08a jc/apply-ws-prefix later to maint). |
|
|
|
|
|
|
|
|
|
* "git bundle create" with date-range specification were meant to |
|
|
|
|
exclude tags outside the range, but it didn't. |
|
|
|
|
(merge 2c8544a lf/bundle-exclusion later to maint). |
|
|
|
|
|
|
|
|
|
* "git add x" where x that used to be a directory has become a |
|
|
|
|
symbolic link to a directory misbehaved. |
|
|
|
|
(merge ccad42d rs/refresh-beyond-symlink later to maint). |
|
|
|
|
|
|
|
|
|
* The prompt script checked $GIT_DIR/ref/stash file to see if there |
|
|
|
|
is a stash, which was a no-no. |
|
|
|
|
(merge 0fa7f01 jk/prompt-stash-could-be-packed later to maint). |
|
|
|
|
|
|
|
|
|
* Pack-protocol documentation had a minor typo. |
|
|
|
|
(merge 5d146f7 sp/pack-protocol-doc-on-shallow later to maint). |
|
|
|
|
|
|
|
|
|
* "git checkout -m" did not switch to another branch while carrying |
|
|
|
|
the local changes forward when a path was deleted from the index. |
|
|
|
|
(merge 6a143aa jn/unpack-trees-checkout-m-carry-deletion later to maint). |
|
|
|
|
|
|
|
|
|
* With sufficiently long refnames, "git fast-import" could have |
|
|
|
|
overflown an on-stack buffer. |
|
|
|
|
(merge c252785 jk/fast-import-fixes later to maint). |
|
|
|
|
|
|
|
|
|
* After "pack-refs --prune" packed refs at the top-level, it failed |
|
|
|
|
to prune them. |
|
|
|
|
(merge afd11d3 jk/prune-top-level-refs-after-packing later to maint). |
|
|
|
|
|
|
|
|
|
* Progress output from "git gc --auto" was visible in "git fetch -q". |
|
|
|
|
(merge 6fceed3 nd/fetch-pass-quiet-to-gc-child-process later to maint). |
|
|
|
|
|
|
|
|
|
* We used to pass -1000 to poll(2), expecting it to also mean "no |
|
|
|
|
timeout", which should be spelled as -1. |
|
|
|
|
(merge 6c71f8b et/spell-poll-infinite-with-minus-one-only later to maint). |
|
|
|
|
|
|
|
|
|
* "git rebase" documentation was unclear that it is required to |
|
|
|
|
specify on what <upstream> the rebase is to be done when telling it |
|
|
|
|
to first check out <branch>. |
|
|
|
|
(merge 95c6826 so/rebase-doc later to maint). |
|
|
|
|
|
|
|
|
|
* "git push" over HTTP transport had an artificial limit on number of |
|
|
|
|
refs that can be pushed imposed by the command line length. |
|
|
|
|
(merge 26be19b jk/send-pack-many-refspecs later to maint). |
|
|
|
|
|
|
|
|
|
* When receiving an invalid pack stream that records the same object |
|
|
|
|
twice, multiple threads got confused due to a race. |
|
|
|
|
(merge ab791dd jk/index-pack-threading-races later to maint). |
|
|
|
|
|
|
|
|
|
* An attempt to remove the entire tree in the "git fast-import" input |
|
|
|
|
stream caused it to misbehave. |
|
|
|
|
(merge 2668d69 mb/fast-import-delete-root later to maint). |
|
|
|
|
|
|
|
|
|
* Reachability check (used in "git prune" and friends) did not add a |
|
|
|
|
detached HEAD as a starting point to traverse objects still in use. |
|
|
|
|
(merge c40fdd0 mk/reachable-protect-detached-head later to maint). |
|
|
|
|
|
|
|
|
|
* "git config --add section.var val" used to lose existing |
|
|
|
|
section.var whose value was an empty string. |
|
|
|
|
(merge c1063be ta/config-add-to-empty-or-true-fix later to maint). |
|
|
|
|
|
|
|
|
|
* "git fsck" failed to report that it found corrupt objects via its |
|
|
|
|
exit status in some cases. |
|
|
|
|
(merge 30d1038 jk/fsck-exit-code-fix later to maint). |
|
|
|
|