From: Junio C Hamano
Date: Wed Oct 22 2008 - 01:43:46 EST

The latest maintenance release GIT is available at the
usual places:


git-{gz,bz2} (source tarball)
git-htmldocs-{gz,bz2} (preformatted docs)
git-manpages-{gz,bz2} (preformatted docs)

The RPM binary packages for a few architectures are also provided
as courtesy.

RPMS/$arch/git-*-$arch.rpm (RPM)

This one is larger than usual, as I took two weeks off since


GIT v1.6.0.3 Release Notes

Fixes since v1.6.0.2

* "git archive --format=zip" did not honor core.autocrlf while
--format=tar did.

* Continuing "git rebase -i" was very confused when the user left modified
files in the working tree while resolving conflicts.

* Continuing "git rebase -i" was also very confused when the user left
some staged changes in the index after "edit".

* "git rebase -i" now honors the pre-rebase hook, just like the
other rebase implementations "git rebase" and "git rebase -m".

* "git rebase -i" incorrectly aborted when there is no commit to replay.

* Behaviour of "git diff --quiet" was inconsistent with "diff --exit-code"
with the output redirected to /dev/null.

* "git diff --no-index" on binary files no longer outputs a bogus
"diff --git" header line.

* "git diff" hunk header patterns with multiple elements separated by LF
were not used correctly.

* Hunk headers in "git diff" default to using extended regular
expressions, fixing some of the internal patterns on non-GNU

* New config "diff.*.xfuncname" exposes extended regular expressions
for user specified hunk header patterns.

* "git gc" when ejecting otherwise unreachable objects from packfiles into
loose form leaked memory.

* "git index-pack" was recently broken and mishandled objects added by
thin-pack completion processing under memory pressure.

* "git index-pack" was recently broken and misbehaved when run from inside
.git/objects/pack/ directory.

* "git stash apply sash@{1}" was fixed to error out. Prior versions
would have applied stash@{0} incorrectly.

* "git stash apply" now offers a better suggestion on how to continue
if the working tree is currently dirty.

* "git for-each-ref --format=%(subject)" fixed for commits with no
no newline in the message body.

* "git remote" fixed to protect printf from user input.

* "git remote show -v" now displays all URLs of a remote.

* "git checkout -b branch" was confused when branch already existed.

* "git checkout -q" once again suppresses the locally modified file list.

* "git clone -q", "git fetch -q" asks remote side to not send
progress messages, actually making their output quiet.

* Cross-directory renames are no longer used when creating packs. This
allows more graceful behavior on filesystems like sshfs.

* Stale temporary files under $GIT_DIR/objects/pack are now cleaned up
automatically by "git prune".

* "git merge" once again removes directories after the last file has
been removed from it during the merge.

* "git merge" did not allocate enough memory for the structure itself when
enumerating the parents of the resulting commit.

* "git blame -C -C" no longer segfaults while trying to pass blame if
it encounters a submodule reference.

* "git rm" incorrectly claimed that you have local modifications when a
path was merely stat-dirty.

* "git svn" fixed to display an error message when 'set-tree' failed,
instead of a Perl compile error.

* "git submodule" fixed to handle checking out a different commit
than HEAD after initializing the submodule.

* The "git commit" error message when there are still unmerged
files present was clarified to match "git write-tree".

* "git init" was confused when core.bare or core.sharedRepository are set
in system or user global configuration file by mistake. When --bare or
--shared is given from the command line, these now override such
settings made outside the repositories.

* Some segfaults due to uncaught NULL pointers were fixed in multiple
tools such as apply, reset, update-index.

* Solaris builds now default to OLD_ICONV=1 to avoid compile warnings;
Solaris 8 does not define NEEDS_LIBICONV by default.

* "Git.pm" tests relied on unnecessarily more recent version of Perl.

* "gitweb" triggered undef warning on commits without log messages.

* "gitweb" triggered undef warnings on missing trees.

* "gitweb" now removes PATH_INFO from its URLs so users don't have
to manually set the URL in the gitweb configuration.

* Bash completion removed support for legacy "git-fetch", "git-push"
and "git-pull" as these are no longer installed. Dashless form
("git fetch") is still however supported.

Many other documentation updates.


Changes since v1.6.0.2 are as follows:

Abhijit Bhopatkar (1):
Documentation: Clarify '--signoff' for git-commit

Alec Berryman (2):
git-svn: factor out svnserve test code for later use
git-svn: Always create a new RA when calling do_switch for svn://

Alex Riesen (3):
Remove empty directories in recursive merge
Add remove_path: a function to remove as much as possible of a path
Use remove_path from dir.c instead of own implementation

Alexander Gavrilov (1):
builtin-blame: Fix blame -C -C with submodules.

BjÃrn Steinbrink (1):
force_object_loose: Fix memory leak

Brandon Casey (14):
t9700/test.pl: avoid bareword 'STDERR' in 3-argument open()
t9700/test.pl: remove File::Temp requirement
diff.c: return pattern entry pointer rather than just the hunk header pattern
diff.c: associate a flag with each pattern and use it for compiling regex
diff.*.xfuncname which uses "extended" regex's for hunk header selection
t4018-diff-funcname: test syntax of builtin xfuncname patterns
builtin-prune.c: prune temporary packs in <object_dir>/pack directory
git-stash.sh: don't default to refs/stash if invalid ref supplied
builtin-merge.c: allocate correct amount of memory
git-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)
remote.c: correct the check for a leading '/' in a remote name
t4018-diff-funcname: rework negated last expression test
t4018-diff-funcname: demonstrate end of line funcname matching flaw
xdiff-interface.c: strip newline (and cr) from line before pattern matching

Charles Bailey (2):
Add new test to demonstrate git archive core.autocrlf inconsistency
Make git archive respect core.autocrlf when creating zip format archives

Chris Frey (1):
Documentation: clarify the details of overriding LESS via core.pager

Dan McGee (1):
contrib: update packinfo.pl to not use dashed commands

Daniel Barkalow (1):
Check early that a new branch is new and valid

David Soria Parra (1):
Solaris: Use OLD_ICONV to avoid compile warnings

Deskin Miller (2):
maint: check return of split_cmdline to avoid bad config strings
git init: --bare/--shared overrides system/global config

Dmitry Potapov (4):
git-rebase-interactive: do not squash commits on abort
git-rebase--interactive: auto amend only edited commit
make prefix_path() never return NULL
do not segfault if make_cache_entry failed

Eric Raible (1):
completion: git commit should list --interactive

Eric Wong (1):
git-svn: fix handling of even funkier branch names

Fabrizio Chiarello (1):
builtin-clone: fix typo

Garry Dolley (1):
Clarified gitattributes documentation regarding custom hunk header.

Giuseppe Bilotta (1):
gitweb: remove PATH_INFO from $my_url and $my_uri

Heikki Orsila (2):
Start conforming code to "git subcmd" style part 3
Cosmetical command name fix

Imre Deak (1):
builtin-apply: fix typo leading to stack corruption

Jakub Narebski (2):
gitweb: Fix two 'uninitialized value' warnings in git_tree()
gitweb: Add path_info tests to t/t9500-gitweb-standalone-no-errors.sh

Jeff King (3):
Makefile: do not set NEEDS_LIBICONV for Solaris 8
git apply --directory broken for new files
tests: shell negation portability fix

Joey Hess (1):
gitweb: avoid warnings for commits without body

Johan Herland (2):
for-each-ref: Fix --format=%(subject) for log message without newlines
Use strchrnul() instead of strchr() plus manual workaround

Johannes Schindelin (2):
git rm: refresh index before up-to-date check
rebase -i: do not fail when there is no commit to cherry-pick

Johannes Sixt (2):
git-remote: do not use user input in a printf format string
git-push.txt: Describe --repo option in more detail

Jonas Fonseca (2):
checkout: Do not show local changes when in quiet mode
git-check-attr(1): add output and example sections

Junio C Hamano (15):
discard_cache: reset lazy name_hash bit
diff Porcelain: do not disable auto index refreshing on -C -C
diff --quiet: make it synonym to --exit-code >/dev/null
Don't verify host name in SSL certs when GIT_SSL_NO_VERIFY is set
Fix permission bits on sources checked out with an overtight umask
checkout: do not lose staged removal
diff/diff-files: do not use --cc too aggressively
Start draft release notes for
diff: use extended regexp to find hunk headers
diff hunk pattern: fix misconverted "\{" tex macro introducers
Update draft release notes to
diff(1): clarify what "T"ypechange status means
Hopefully the final draft release notes update before
Fix testcase failure when extended attributes are in use

Linus Torvalds (1):
fix bogus "diff --git" header from "diff --no-index"

Luc Heinrich (1):
git-svn: call 'fatal' correctly in set-tree

Matt McCutchen (1):
t1301-shared-repo.sh: don't let a default ACL interfere with the test

Michael J Gruber (1):
make "git remote" report multiple URLs

Michael Prokop (1):
Replace svn.foo.org with svn.example.com in git-svn docs (RFC 2606)

Mikael Magnusson (4):
Typo "bogos" in format-patch error message.
git-repack uses --no-repack-object, not --no-repack-delta.
Fix a few typos in relnotes
Typo "does not exists" when git remote update remote.

Miklos Vajna (2):
test-lib: fix color reset in say_color()
Add testcase to ensure merging an early part of a branch is done properly

Nanako Shiraishi (2):
docs: describe pre-rebase hook
Teach rebase -i to honor pre-rebase hook

Nicolas Pitre (2):
fix pread()'s short read in index-pack
rehabilitate 'git index-pack' inside the object store

Petr Baudis (1):
Do not perform cross-directory renames when creating packs

Ping Yin (1):
git-submodule: Fix "Unable to checkout" for the initial 'update'

Rafael Garcia-Suarez (1):
Clarify commit error message for unmerged files

SZEDER GÃbor (5):
t0024: add executable permission
Documentation: remove '\' in front of short options
rebase -i: proper prepare-commit-msg hook argument when squashing
rebase -i: remove leftover debugging
bash: remove fetch, push, pull dashed form leftovers

Samuel Tardieu (1):
Do not use errno when pread() returns 0

Shawn O. Pearce (3):
Update release notes for
Update release notes for
test-lib: fix broken printf

Stephen Haberman (1):
Clarify how the user can satisfy stash's 'dirty state' check.

Thomas Rast (1):
sha1_file: link() returns -1 on failure, not errno

Todd Zullinger (1):
Use dashless git commands in setgitperms.perl

Tuncer Ayaz (1):
Fix fetch/clone --quiet when stdout is connected

Yann Dirson (1):
Bust the ghost of long-defunct diffcore-pathspec.

martin f. krafft (1):
Improve git-log documentation wrt file filters

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/