diff --git a/.gitignore b/.gitignore index e8f91ce8cd..13311f1d5e 100644 --- a/.gitignore +++ b/.gitignore @@ -82,6 +82,7 @@ git-mktag git-mktree git-name-rev git-mv +git-notes git-pack-redundant git-pack-objects git-pack-refs @@ -153,6 +154,7 @@ test-match-trees test-parse-options test-path-utils test-sha1 +test-sigchain common-cmds.h *.tar.gz *.dsc diff --git a/Documentation/RelNotes-1.6.1.2.txt b/Documentation/RelNotes-1.6.1.2.txt new file mode 100644 index 0000000000..230aa3d8e8 --- /dev/null +++ b/Documentation/RelNotes-1.6.1.2.txt @@ -0,0 +1,39 @@ +GIT v1.6.1.2 Release Notes +========================== + +Fixes since v1.6.1.1 +-------------------- + +* The logic for rename detectin in internal diff used by commands like + "git diff" and "git blame" have been optimized to avoid loading the same + blob repeatedly. + +* We did not allow writing out a blob that is larger than 2GB for no good + reason. + +* "git format-patch -o $dir", when $dir is a relative directory, used it + as relative to the root of the work tree, not relative to the current + directory. + +* v1.6.1 introduced an optimization for "git push" into a repository (A) + that borrows its objects from another repository (B) to avoid sending + objects that are available in repository B, when they are not yet used + by repository A. However the code on the "git push" sender side was + buggy and did not work when repository B had new objects that are not + known by the sender. This caused pushing into a "forked" repository + served by v1.6.1 software using "git push" from v1.6.1 sometimes did not + work. The bug was purely on the "git push" sender side, and has been + corrected. + +* "git status -v" did not paint its diff output in colour even when + color.ui configuration was set. + +* "git ls-tree" learned --full-tree option to help Porcelain scripts that + want to always see the full path regardless of the current working + directory. + +* "git grep" incorrectly searched in work tree paths even when they are + marked as assume-unchanged. It now searches in the index entries. + +* "git gc" with no grace period needlessly ejected packed but unreachable + objects in their loose form, only to delete them right away. diff --git a/Documentation/RelNotes-1.6.2.txt b/Documentation/RelNotes-1.6.2.txt index 296804301f..3151c85d88 100644 --- a/Documentation/RelNotes-1.6.2.txt +++ b/Documentation/RelNotes-1.6.2.txt @@ -6,6 +6,11 @@ Updates since v1.6.1 (subsystems) +* git-svn updates. + +* gitweb updates, including a new patch view and RSS/Atom feed + improvements. + (portability) (performance) @@ -15,25 +20,63 @@ Updates since v1.6.1 (usability, bells and whistles) -* "git-add -p" learned 'g'oto action to jump directly to a hunk. +* automatic typo correction works on aliases as well -* git-cherry defaults to HEAD when the argument is not given. +* @{-1} is a way to refer to the last branch you were on. This is + accepted not only where an object name is expected, but anywhere + a branch name is expected. E.g. "git branch --track mybranch @{-1}" + "git rev-parse --symbolic-full-name @{-1}". -* git-cvsserver can be told not to add extra "via git-CVS emulator" to the - commit log message it serves via gitcvs.commitmsgannotation configuration. +* "git add -p" learned 'g'oto action to jump directly to a hunk. -* git-diff learned a new option --inter-hunk-context to coalesce close +* when "git am" stops upon a patch that does not apply, it shows the + title of the offending patch. + +* "git am --directory=" and "git am --reject" passes these options + to underlying "git apply". + +* "git clone" now makes its best effort when cloning from an empty + repository to set up configuration variables to refer to the remote + repository. + +* "git checkout -" is a shorthand for "git checkout @{-1}". + +* "git cherry" defaults to whatever the current branch is tracking (if + exists) when the argument is not given. + +* "git cvsserver" can be told not to add extra "via git-CVS emulator" to + the commit log message it serves via gitcvs.commitmsgannotation + configuration. + +* "git diff" learned a new option --inter-hunk-context to coalesce close hunks together and show context between them. -* git-filter-branch learned --prune-empty option that discards commits +* The definition of what constitutes a word for "git diff --color-words" + can be customized via gitattributes, command line or a configuration. + +* "git diff" learned --patience to run "patience diff" algorithm. + +* Some combinations of -b/-w/--ignore-space-at-eol to "git diff" did + not work as expected. + +* "git filter-branch" learned --prune-empty option that discards commits that do not change the contents. -* git-ls-tree learned --full-tree option that shows the path in full +* "git grep -w" and "git grep" for fixed strings have been optimized. + +* "git log" and friends include HEAD to the set of starting points + when --all is given. This makes a difference when you are not on + any branch. + +* "git ls-tree" learned --full-tree option that shows the path in full regardless of where in the work tree hierarchy the command was started. -* git-mergetool learned -y(--no-prompt) option to disable prompting. +* "git mergetool" learned -y(--no-prompt) option to disable prompting. -* "git-reset --merge" is a new mode that works similar to the way +* "git rebase -i" can transplant a history down to root to elsewhere + with --root option. + +* "git reset --merge" is a new mode that works similar to the way "git checkout" switches branches, taking the local changes while switching to another commit. @@ -52,14 +95,12 @@ release, unless otherwise noted. * git-bundle did not exclude annotated tags even when a range given from the command line wanted to. -* git-grep did not work correctly for index entries with assume-unchanged bit. - * branch switching and merges had a silly bug that did not validate the correct directory when making sure an existing subdirectory is clean. -- exec >/var/tmp/1 -O=v1.6.1-134-ge98c6a1 +O=v1.6.1.2-252-g8c95d3c echo O=$(git describe master) git shortlog --no-merges $O..master ^maint diff --git a/Documentation/config.txt b/Documentation/config.txt index e2b8775dd3..7fbf64d24c 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -422,6 +422,19 @@ relatively high IO latencies. With this set to 'true', git will do the index comparison to the filesystem data in parallel, allowing overlapping IO's. +core.notesRef:: + When showing commit messages, also show notes which are stored in + the given ref. This ref is expected to contain files named + after the full SHA-1 of the commit they annotate. ++ +If such a file exists in the given ref, the referenced blob is read, and +appended to the commit message, separated by a "Notes:" line. If the +given ref itself does not exist, it is not an error, but means that no +notes should be printed. ++ +This setting defaults to "refs/notes/commits", and can be overridden by +the `GIT_NOTES_REF` environment variable. + alias.*:: Command aliases for the linkgit:git[1] command wrapper - e.g. after defining "alias.last = cat-file commit HEAD", the invocation diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt index efd311b1ce..ff307eb270 100644 --- a/Documentation/git-am.txt +++ b/Documentation/git-am.txt @@ -10,7 +10,8 @@ SYNOPSIS -------- [verse] 'git am' [--signoff] [--keep] [--utf8 | --no-utf8] - [--3way] [--interactive] + [--3way] [--interactive] [--committer-date-is-author-date] + [--ignore-date] [--whitespace=