You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
7.2 KiB
197 lines
7.2 KiB
GIT v1.5.2 Release Notes |
|
======================== |
|
|
|
Updates since v1.5.1 |
|
-------------------- |
|
|
|
* Plumbing level superproject support. |
|
|
|
You can include a subdirectory that has an independent git |
|
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 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 |
|
inaccessible by people with older versions of git. |
|
|
|
* Plumbing level gitattributes support. |
|
|
|
The gitattributes mechanism allows you to add 'attributes' to |
|
paths in your project, and affect the way certain git |
|
operations work. Currently you can influence if a path is |
|
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 '$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 keyword |
|
expansion). These conversions apply when checking files in |
|
or out, and exporting via git-archive. |
|
|
|
* 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. |
|
|
|
* 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. |
|
|
|
- "git bisect start" can optionally take a single bad commit and |
|
zero or more good commits on the command line. |
|
|
|
- "git shortlog" can optionally be told to wrap its output. |
|
|
|
- "subtree" merge strategy allows another project to be merged in as |
|
your subdirectory. |
|
|
|
- "git format-patch" learned a new --subject-prefix=<string> |
|
option, to override the built-in "[PATCH]". |
|
|
|
- "git add -u" is a quick way to do the first stage of "git |
|
commit -a" (i.e. update the index to match the working |
|
tree); it obviously does not make a commit. |
|
|
|
- "git clean" honors a new configuration, "clean.requireforce". When |
|
set to true, this makes "git clean" a no-op, preventing you |
|
from losing files by typing "git clean" when you meant to |
|
say "make clean". You can still say "git clean -f" to |
|
override this. |
|
|
|
- "git log" family of commands learned --date={local,relative,default} |
|
option. --date=relative is synonym to the --relative-date. |
|
--date=local gives the timestamp in local timezone. |
|
|
|
* Updated behavior of existing commands. |
|
|
|
- When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set |
|
but $EMAIL is set, the latter is used as a substitute. |
|
|
|
- "git diff --stat" shows size of preimage and postimage blobs |
|
for binary contents. Earlier it only said "Bin". |
|
|
|
- "git lost-found" shows stuff that are unreachable except |
|
from reflogs. |
|
|
|
- "git checkout branch^0" now detaches HEAD at the tip commit |
|
on the named branch, instead of just switching to the |
|
branch (use "git checkout branch" to switch to the branch, |
|
as before). |
|
|
|
- "git bisect next" can be used after giving only a bad commit |
|
without giving a good one (this starts bisection half-way to |
|
the root commit). We used to refuse to operate without a |
|
good and a bad commit. |
|
|
|
- "git push", when pushing into more than one repository, does |
|
not stop at the first error. |
|
|
|
- "git archive" does not insist you to give --format parameter |
|
anymore; it defaults to "tar". |
|
|
|
- "git cvsserver" can use backends other than sqlite. |
|
|
|
- "gitview" (in contrib/ section) learned to better support |
|
"git-annotate". |
|
|
|
- "git diff $commit1:$path2 $commit2:$path2" can now report |
|
mode changes between the two blobs. |
|
|
|
- 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 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 |
|
installation option to do so. |
|
|
|
- gitk and git-gui can be configured out. |
|
|
|
- Generated documentation pages automatically get version |
|
information from GIT_VERSION. |
|
|
|
- Parallel build with "make -j" descending into subdirectory |
|
was fixed. |
|
|
|
* Performance Tweaks |
|
|
|
- Optimized "git-rev-list --bisect" (hence "git-bisect"). |
|
|
|
- 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. 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 |
|
------------------ |
|
|
|
All of the fixes in v1.5.1 maintenance series are included in |
|
this release, unless otherwise noted. |
|
|
|
* Bugfixes |
|
|
|
- Switching branches with "git checkout" refused to work when |
|
a path changes from a file to a directory between the |
|
current branch and the new branch, in order not to lose |
|
possible local changes in the directory that is being turned |
|
into a file with the switch. We now allow such a branch |
|
switch after making sure that there is no locally modified |
|
file nor un-ignored file in the directory. This has not |
|
been backported to 1.5.1.x series, as it is rather an |
|
intrusive change. |
|
|
|
- Merging branches that have a file in one and a directory in |
|
another at the same path used to get quite confused. We |
|
handle such a case a bit more carefully, even though that is |
|
still left as a conflict for the user to sort out. This |
|
will not be backported to 1.5.1.x series, as it is rather an |
|
intrusive change. |
|
|
|
- git-fetch had trouble with a remote with insanely large number |
|
of refs. |
|
|
|
- "git clean -d -X" now does not remove non-excluded directories. |
|
|
|
- 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.
|
|
|