-GIT v1.5.2 Release Notes (draft)
+GIT v1.5.2 Release Notes
========================
Updates since v1.5.1
--------------------
-* Plumbing level subproject support.
+* Plumbing level superproject support.
You can include a subdirectory that has an independent git
- repository in your index and tree objects as a
- "subproject". This plumbing (i.e. "core") level subproject
- support explicitly excludes recursive behaviour.
+ repository in your index and tree objects of your project
+ ("superproject"). This plumbing (i.e. "core") level
+ superproject support explicitly excludes recursive behaviour.
- The "subproject" entries in the index and trees are
- incompatible with older versions of git. Experimenting with
+ The "subproject" entries in the index and trees of a superproject
+ are incompatible with older versions of git. Experimenting with
the plumbing level support is encouraged, but be warned that
unless everybody in your project updates to this release or
later, using this feature would make your project
considered a binary or text (the former would be treated by
'git diff' not to produce textual output; the latter can go
through the line endings conversion process in repositories
- with core.autocrlf set), expand and unexpand '$ident$' keyword
+ with core.autocrlf set), expand and unexpand '$Id$' keyword
with blob object name, specify a custom 3-way merge driver,
and specify a custom diff driver. You can also apply
arbitrary filter to contents on check-in/check-out codepath
but this feature is an extremely sharp-edged razor and needs
to be handled with caution (do not use it unless you
- understand the earlier mailing list discussion on keyward
- expansion).
+ understand the earlier mailing list discussion on keyword
+ expansion). These conversions apply when checking files in
+ or out, and exporting via git-archive.
-* The packfile format now optionally suports 64-bit index.
+* The packfile format now optionally supports 64-bit index.
This release supports the "version 2" format of the .idx
file. This is automatically enabled when a huge packfile
needs more than 32-bit to express offsets of objects in the
- pack
+ pack.
+
+* Comes with an updated git-gui 0.7.1
+
+* Updated gitweb:
+
+ - can show combined diff for merges;
+ - uses font size of user's preference, not hardcoded in pixels;
+ - can now 'grep';
* New commands and options.
- Local "git fetch" from a repository whose object store is
one of the alternates (e.g. fetching from the origin in a
repository created with "git clone -l -s") avoids
- downloading objects unnecessary.
+ downloading objects unnecessarily.
- "git blame" uses .mailmap to canonicalize the author name
just like "git shortlog" does.
+ - "git pack-objects" pays attention to pack.depth
+ configuration variable.
+
+ - "git cherry-pick" and "git revert" does not use .msg file in
+ the working tree to prepare commit message; instead it uses
+ $GIT_DIR/MERGE_MSG as other commands do.
+
* Builds
- git-p4import has never been installed; now there is an
- gitk and git-gui can be configured out.
- Generated documentation pages automatically get version
- information from GIT_VERSION
+ information from GIT_VERSION.
- Parallel build with "make -j" descending into subdirectory
was fixed.
- Optimized "git-add $path" in a large directory, most of
whose contents are ignored.
+ - Optimized "git-diff-tree" for reduced memory footprint.
+
- The recursive merge strategy updated a worktree file that
was changed identically in two branches, when one of them
renamed it. We do not do that when there is no rename, so
- match that behaviour.
+ match that behaviour. This avoids excessive rebuilds.
+
+ - The default pack depth has been increased to 50, as the
+ recent addition of delta_base_cache makes deeper delta chains
+ much less expensive to access. Depending on the project, it was
+ reported that this reduces the resulting pack file by 10%
+ or so.
+
Fixes since v1.5.1
------------------
- git-fetch had trouble with a remote with insanely large number
of refs.
-* Documentation updates
-
-* Performance Tweaks
+ - "git clean -d -X" now does not remove non-excluded directories.
---
-exec >/var/tmp/1
-O=v1.5.2-rc0-106-g07c785d
-echo O=`git describe refs/heads/master`
-git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
+ - rebasing (without -m) a series that changes a symlink to a directory
+ in the middle of a path confused git-apply greatly and refused to
+ operate.