configured that variable.
* "git status" is not "git commit --dry-run" anymore. This change does
- not affect you if you run the command without pathspec.
+ not affect you if you run the command without argument.
* "git diff" traditionally treated various "ignore whitespace" options
only as a way to filter the patch output. "git diff --exit-code -b"
whitespaces is reported with zero exit status when run with
--exit-code, and there is no "diff --git" header for such a change.
+ * External diff and textconv helpers are now executed using the shell.
+ This makes them consistent with other programs executed by git, and
+ allows you to pass command-line parameters to the helpers. Any helper
+ paths containing spaces or other metacharacters now need to be
+ shell-quoted. The affected helpers are GIT_EXTERNAL_DIFF in the
+ environment, and diff.*.command and diff.*.textconv in the config
+ file.
+
+ * The --max-pack-size argument to 'git repack', 'git pack-objects', and
+ 'git fast-import' was assuming the provided size to be expressed in MiB,
+ unlike the corresponding config variable and other similar options accepting
+ a size value. It is now expecting a size expressed in bytes, with a possible
+ unit suffix of 'k', 'm', or 'g'.
Updates since v1.6.6
--------------------
mismatch between fast-import and the frontends that produce the input
stream.
+ * "git svn" support of subversion "merge tickets" and miscellaneous fixes.
+
+ * "gitk" updates.
+
+ * "gitweb" updates (code clean-up, load checking etc.)
+
(portability)
* Some more MSVC portability patches for msysgit port.
the submodule directory when it should (namely, when you are not
interested in the submodule at all and didn't clone/checkout).
+ * A new attribute conflict-marker-size can be used to change the size of
+ the conflict markers from the default 7; this is useful when tracked
+ contents (e.g. git-merge documentation) have strings that resemble the
+ conflict markers.
+
+ * A new syntax "<branch>@{upstream}" can be used on the command line to
+ substitute the name of the "upstream" of the branch. Missing branch
+ defaults to the current branch, so "git fetch && git merge @{upstream}"
+ will be equivalent to "git pull".
+
+ * "git branch --set-upstream" can be used to update the (surprise!) upstream
+ i.e. where the branch is supposed to pull and merge from (or rebase onto).
+
* "git checkout A...B" is a way to detach HEAD at the merge base between
A and B.
+ * "git checkout -m path" to reset the work tree file back into the
+ conflicted state works even when you already ran "git add path" and
+ resolved the conflicts.
+
* "git commit --date='<date>'" can be used to override the author date
just like "git commit --author='<name> <email>'" can be used to
override the author identity.
* "git commit --no-status" can be used to omit the listing of the index
and the work tree status in the editor used to prepare the log message.
+ * "git commit" warns a bit more aggressively until you configure user.email,
+ whose default value almost always is not (and fundamentally cannot be)
+ what you want.
+
+ * "git difftool" has been extended to make it easier to integrate it
+ with gitk.
+
* "git fetch --all" can now be used in place of "git remote update".
+ * "git grep" does not rely on external grep anymore. It can use more than
+ one threads to accelerate the operation.
+
+ * "git grep" learned "--quiet" option.
+
+ * "git log" and friends learned "--glob=heads/*" syntax that is a more
+ flexible way to complement "--branches/--tags/--remotes".
+
+ * "git merge" learned to pass options specific to strategy-backends. E.g.
+
+ - "git merge -Xsubtree=path/to/directory" can be used to tell the subtree
+ strategy how much to shift the trees explicitly.
+
+ - "git merge -Xtheirs" can be used to auto-merge as much as possible,
+ while discarding your own changes and taking merged version in
+ conflicted regions.
+
* "git push" learned "git push origin --delete branch", a syntactic sugar
for "git push origin :branch".
+ * "git push" learned "git push --set-upstream origin forker:forkee" that
+ lets you configure your "forker" branch to later pull from "forkee"
+ branch at "origin".
+
* "git rebase --onto A...B" means the history is replayed on top of the
merge base between A and B.
+ * "git rebase -i" learned new action "fixup", that squashes the change
+ but does not affect existing log message.
+
+ * "git rebase -i" also learned --autosquash option, that is useful
+ together with the new "fixup" action.
+
+ * "git remote" learned set-url subcommand, to update (surprise!) url
+ for an existing remote nickname.
+
+ * "git rerere" learned "forget path" subcommand. Together with "git
+ checkout -m path" it will be useful when you recorded a wrong
+ resolution.
+
* Use of "git reset --merge" has become easier when resetting away a
conflicted mess left in the work tree.
* The infrastructure to build foreign SCM interface has been updated.
+ * Many more commands are now built-in.
+
+ * THREADED_DELTA_SEARCH is no more. If you build with threads, delta
+ compression will always take advantage of it.
Fixes since v1.6.6
------------------
All of the fixes in v1.6.6.X maintenance series are included in this
release, unless otherwise noted.
+ * "git branch -d branch" used to refuse deleting the branch even when
+ the branch is fully merged to its upstream branch if it is not merged
+ to the current branch. It now deletes it in such a case.
+
+ * "git config -f <relative path>" run from a subdirectory misbehaved.
+ 65807ee (builtin-config: Fix crash when using "-f <relative path>"
+ from non-root dir, 2010-01-26) may be merged to older maintenance
+ branches.
+
+ * "git fast-import" did not correctly handle large blobs that may
+ bust the pack size limit.
+
+ * When using "git status" or asking "git diff" to compare the work tree
+ with something, they used to consider that a checked-out submodule with
+ uncommitted changes is not modified; this could cause people to forget
+ committing these changes in the submodule before committing in the
+ superproject. They now consider such a change as a modification and
+ "git diff" will append a "-dirty" to the work tree side when generating
+ patch output or when used with the --submodule option.
+
--
exec >/var/tmp/1
-O=v1.6.6-263-ge33fd3c
+O=v1.7.0-rc1-42-g3bd8de5
echo O=$(git describe master)
git shortlog --no-merges $O..master ^maint