git-bundle.txt: Cleanup
[gitweb.git] / Documentation / RelNotes-1.7.0.txt
index 7a49b475da70a0daf043eda389848f0057e22e5f..0bb8c0b2a2a771ac95b5e5c1fc9b44eac5f2fe5d 100644 (file)
@@ -4,7 +4,7 @@ Git v1.7.0 Release Notes
 Notes on behaviour change
 -------------------------
 
- * "git push" into a branch that is currently checked out (i.e. pointed by
+ * "git push" into a branch that is currently checked out (i.e. pointed at by
    HEAD in a repository that is not bare) is refused by default.
 
    Similarly, "git push $there :$killed" to delete the branch $killed
@@ -19,18 +19,18 @@ Notes on behaviour change
    patch series with more than two messages.  All messages will be sent
    as a reply to the first message, i.e. cover letter.
 
-   It has been possible to configure send-email to send "shallow thread"
+   It has been possible already to configure send-email to send "shallow thread"
    by setting sendemail.chainreplyto configuration variable to false.  The
    only thing this release does is to change the default when you haven't
    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"
    exited with non-zero status even if all changes were about changing the
-   ammount of whitespace and nothing else.  and "git diff -b" showed the
+   amount of whitespace and nothing else;  and "git diff -b" showed the
    "diff --git" header line for such a change without patch text.
 
    In this release, the "ignore whitespaces" options affect the semantics
@@ -38,6 +38,19 @@ Notes on behaviour change
    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
 --------------------
@@ -48,6 +61,12 @@ 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" and "git gui" translation updates.
+
+ * "gitweb" updates (code clean-up, load checking etc.)
+
 (portability)
 
  * Some more MSVC portability patches for msysgit port.
@@ -77,9 +96,28 @@ Updates since v1.6.6
    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 am --resolved" has a synonym "git am --continue".
+
+ * "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.
@@ -87,14 +125,55 @@ Updates since v1.6.6
  * "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 thread 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 that updates (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.
 
@@ -108,6 +187,10 @@ Updates since v1.6.6
 
  * 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
 ------------------
@@ -115,8 +198,17 @@ Fixes since v1.6.6
 All of the fixes in v1.6.6.X maintenance series are included in this
 release, unless otherwise noted.
 
---
-exec >/var/tmp/1
-O=v1.6.6-263-ge33fd3c
-echo O=$(git describe master)
-git shortlog --no-merges $O..master ^maint
+ * "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.
+
+ * "filter-branch" command incorrectly said --prune-empty and --filter-commit
+   were incompatible; the latter should be read as --commit-filter.
+
+ * 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.