want to move to z/d by taking the hint that the entire directory
'x' moved to 'z'. A bug causing dirty files involved in a rename
to be overwritten during merge has also been fixed as part of this
- work.
+ work. Incidentally, this also avoids updating a file in the
+ working tree after a (non-trivial) merge whose result matches what
+ our side originally had.
* "git filter-branch" learned to use a different exit code to allow
the callers to tell the case where there was no new commits to
These object names are now sorted according to their types for
easier eyeballing.
+ * "git fetch $there $refspec" that talks over protocol v2 can take
+ advantage of server-side ref filtering; the code has been extended
+ so that this mechanism triggers also when fetching with configured
+ refspec.
+
+ * Our HTTP client code used to advertise that we accept gzip encoding
+ from the other side; instead, just let cURL library to advertise
+ and negotiate the best one.
+
+ * "git p4" learned to "unshelve" shelved commit from P4.
+ (merge 123f631761 ld/p4-unshelve later to maint).
+
Performance, Internal Implementation, Development Support etc.
repository object (which in turn tells the API which object store
the objects are to be located).
- * Rename detection logic in "diff" family that is used in "merge" has
- learned to guess when all of x/a, x/b and x/c have moved to z/a,
- z/b and z/c, it is likely that x/d added in the meantime would also
- want to move to z/d by taking the hint that the entire directory
- 'x' moved to 'z'. A bug causing dirty files involved in a rename
- to be overwritten during merge has also been fixed as part of this
- work. Incidentally, this also avoids updating a file in the
- working tree after a (non-trivial) merge whose result matches what
- our side originally had.
-
* "git pack-objects" needs to allocate tons of "struct object_entry"
while doing its work, and shrinking its size helps the performance
quite a bit.
* Conversion from uchar[20] to struct object_id continues.
+ * By code restructuring of submodule merge in merge-recursive,
+ informational messages from the codepath are now given using the
+ same mechanism as other output, and honor the merge.verbosity
+ configuration. The code also learned to give a few new messages
+ when a submodule three-way merge resolves cleanly when one side
+ records a descendant of the commit chosen by the other side.
+
+ * Avoid unchecked snprintf() to make future code auditing easier.
+ (merge ac4896f007 jk/snprintf-truncation later to maint).
+
+ * Many tests hardcode the raw object names, which would change once
+ we migrate away from SHA-1. While some of them must test against
+ exact object names, most of them do not have to use hardcoded
+ constants in the test. The latter kind of tests have been updated
+ to test the moral equivalent of the original without hardcoding the
+ actual object names.
+
+ * The list of commands with their various attributes were spread
+ across a few places in the build procedure, but it now is getting a
+ bit more consolidated to allow more automation.
+
+ * Quite a many tests assumed that newly created refs are made as
+ loose refs using the files backend, which have been updated to use
+ proper plumbing like rev-parse and update-ref, to avoid breakage
+ once we start using different ref backends.
+
Also contains various documentation updates and code clean-ups.
This has been corrected.
(merge e30d833671 sb/submodule-update-try-harder later to maint).
+ * Error behaviour of "git grep" when it cannot read the index was
+ inconsistent with other commands that uses the index, which has
+ been corrected to error out early.
+ (merge b2aa84c789 sb/grep-die-on-unreadable-index later to maint).
+
+ * We used to call regfree() after regcomp() failed in some codepaths,
+ which have been corrected.
+ (merge 17154b1576 ma/regex-no-regfree-after-comp-fail later to maint).
+
+ * The import-tars script (in contrib/) has been taught to handle
+ tarballs with overly long paths that use PAX extended headers.
+ (merge 12ecea46e3 pa/import-tars-long-names later to maint).
+
+ * "git rev-parse Y..." etc. misbehaved when given endpoints were
+ not committishes.
+ (merge 0ed556d38f en/rev-parse-invalid-range later to maint).
+
* Other minor doc, test and build updates and code cleanups.
(merge 248f66ed8e nd/trace-with-env later to maint).
(merge 14ced5562c ys/bisect-object-id-missing-conversion-fix later to maint).
(merge 92c4a7a129 nd/completion-aliasfiletype-typofix later to maint).
(merge 58bd77b66a nd/pack-unreachable-objects-doc later to maint).
(merge 4ed79d5203 sg/t6500-no-redirect-of-stdin later to maint).
+ (merge 17b8a2d6cd jk/config-blob-sans-repo later to maint).
+ (merge 590551ca2c rd/tag-doc-lightweight later to maint).
+ (merge 44f560fc16 rd/init-typo later to maint).