Upcoming 1.5.2 will have three large-ish new features that the
user community wished to have for quite some time. I usually do
not CC the kernel list for -rc releases, but this one will
hopefully be pretty much the same as what the final one would
look like, so here it is.
We may get around fixing the long standing git-apply corner case
HPA's rebase problem unveiled before v1.5.2, but we might defer
it post 1.5.2 (it is not a regression). We'll see.
----------------------------------------------------------------
GIT v1.5.2 Release Notes (draft)
========================
Updates since v1.5.1
--------------------
* Plumbing level subproject 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.
The "subproject" entries in the index and trees 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 '$ident$' 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).
* The packfile format now optionally suports 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.0
* Updated gitweb:
- can show combined diff for merges;
- uses font size of user's preference, not hardcoded in pixels;
* 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 unnecessary.
- "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.
* 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.
- 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.
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.
* Documentation updates
* Performance Tweaks
----------------------------------------------------------------
Changes since v1.5.2-rc2 are as follows:
Alex Riesen (1):
Use GIT_OBJECT_DIR for temporary files of pack-objects
Amos Waterland (1):
wcwidth redeclaration
Frank Lichtenheld (1):
cvsserver: Add test cases for git-cvsserver
Gerrit Pape (1):
gitweb: choose appropriate view for file type if a= parameter missing
J. Bruce Fields (7):
user-manual: more discussion of detached heads, fix typos
user-manual: add section ID's
user-manual: clean up fast-forward and dangling-objects sections
user-manual: fix .gitconfig editing examples
user-manual: miscellaneous editing
user-manual: stop deprecating the manual
user-manual: fix clone and fetch typos
Jakub Narebski (6):
gitweb: Add parsing of raw combined diff format to parse_difftree_raw_line
gitweb: Add combined diff support to git_difftree_body
gitweb: Add combined diff support to git_patchset_body
gitweb: Make it possible to use pre-parsed info in git_difftree_body
gitweb: Show combined diff for merge commits in 'commitdiff' view
gitweb: Show combined diff for merge commits in 'commit' view
Jari Aalto (1):
SPECIFYING RANGES typo fix: it it => it is
Jeff King (1):
Documentation: don't reference non-existent 'git-cvsapplycommit'
Johannes Sixt (1):
git-gui: Call changes "Staged" and "Unstaged" in file list titles.
Junio C Hamano (10):
diff: release blobs after generating textual diff.
diff.c: do not use a separate "size cache".
diff -M: release the preimage candidate blobs after rename detection.
diff -S: release the image after looking for needle in it
GIT v1.5.1.4
Update documentation links to point at 1.5.1.4
t9400: skip cvsserver test if Perl SQLite interface is unavailable
git-clone: don't get fooled by $PWD
.mailmap: add some aliases
GIT v1.5.2-rc3
Matthieu Moy (2):
Document git add -u introduced earlier.
Added a reference to git-add in the documentation for git-update-index
Michael Hendricks (1):
Document 'git-log --decorate'
Michael Spang (3):
dir.c: Omit non-excluded directories with dir->show_ignored
t7300: Basic tests for git-clean
Fix minor documentation errors
Paul Mackerras (1):
gitk: Allow user to choose whether to see the diff, old file, or new file
Petr Baudis (2):
Git.pm: config_boolean() -> config_bool()
gitweb: Do not use absolute font sizes
Quy Tonthat (2):
Add howto files to rpm packages.
Added new git-gui library files to rpm spec
Richard P. Curnow (2):
Fix documentation of tag in git-fast-import.txt
Fix documentation of tag in git-fast-import.txt
Shawn O. Pearce (32):
git-gui: Correctly handle UTF-8 encoded commit messages
git-gui: Allow spaces in path to 'wish'
git-gui: Include the subject in the status bar after commit
git-gui: Warn users before making an octopus merge
git-gui: Correct line wrapping for too many branch message
git-gui: Cleanup common font handling for font_ui
git-gui: Use option database defaults to set the font
git-gui: Refactor to use our git proc more often
git-gui: Track our own embedded values and rebuild when they change
Properly handle '0' filenames in import-tars
git-gui: Refactor into multiple files to save my sanity
git-gui: Move console procs into their own namespace
git-gui: Allow vi keys to scroll the diff/blame regions
git-gui: Move merge support into a namespace
git-gui: Show all possible branches for merge
git-gui: Include commit id/subject in merge choices
git-gui: Use vi-like keys in merge dialog
Remove duplicate exports from Makefile
git-gui: Allow shift-{k,j} to select a range of branches to merge
git-gui: Define a simple class/method system
git-gui: Convert browser, console to "class" format
git-gui: Don't attempt to inline array reads in methods
git-gui: Convert blame to the "class" way of doing things
git-gui: Use prefix if blame is run in a subdirectory
git-gui: Smarter command line parsing for browser, blame
git-gui: Generate blame on uncommitted working tree file
git-gui: Cleanup minor nits in blame code
git-gui: Format author/committer times in ISO format
Use .git/MERGE_MSG in cherry-pick/revert
git-gui: Paperbag fix blame in subdirectory
git gui 0.7.0
Correct error message in revert/cherry-pick
Theodore Ts'o (2):
Add pack.depth option to git-pack-objects.
Increase pack.depth default to 50
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]