Code

Merge branch 'jc/require-work-tree-exists'
[git.git] / Documentation / RelNotes / 1.7.6.txt
index a092f0899add815cd6e46deae5f59ce311ea2317..3d5ff4d9b2fc775b1d9bc3c52fe97a9cf9fd08cc 100644 (file)
@@ -6,41 +6,99 @@ Updates since v1.7.5
 
  * Various git-svn updates.
 
 
  * Various git-svn updates.
 
- * When an object "$tree:$path" does not exist, if $path does exist in the
-   subtree of $tree that corresponds to the subdirectory the user is in,
-   git now suggests using "$tree:./$path" in addition to the advice to use
-   the full path from the root of the working tree.
+ * Updates the way content tags are handled in gitweb.
+
+ * Similar to branch names, tagnames that begin with "-" are now
+   disallowed.
+
+ * Clean-up of the C part of i18n (but not l10n---please wait)
+   continues.
+
+ * The scripting part of the codebase is getting prepared for i18n/l10n.
+
+ * Processes spawned by "[alias] <name> = !process" in the configuration
+   can inspect GIT_PREFIX environment variable to learn where in the
+   working tree the original command was invoked.
+
+ * A magic pathspec ":/" tells a command that limits its operation to
+   the current directory when ran from a subdirectory to work on the
+   entire working tree. In general, ":/path/to/file" would be relative
+   to the root of the working tree hierarchy.
+
+   After "git reset --hard; edit Makefile; cd t/", "git add -u" would
+   be a no-op, but "git add -u :/" would add the updated contents of
+   the Makefile at the top level. If you want to name a path in the
+   current subdirectory whose unusual name begins with ":/", you can
+   name it by "./:/that/path" or by "\:/that/path".
 
  * "git blame" learned "--abbrev[=<n>]" option to control the minimum
    number of hexdigits shown for commit object names.
 
 
  * "git blame" learned "--abbrev[=<n>]" option to control the minimum
    number of hexdigits shown for commit object names.
 
- * "git clean" used to fail on an empty directory that is not readable,
-   even though rmdir(2) could remove such a directory.  Now we attempt it
-   as the last resort.
+ * "git blame" learned "--line-porcelain" that is less efficient but is
+   easier to parse.
+
+ * Aborting "git commit --interactive" discards updates to the index
+   made during the interctive session.
+
+ * "git commit" learned a "--patch" option to directly jump to the
+   per-hunk selection UI of the interactive mode.
 
  * "git diff -C -C" used to disable the rename detection entirely when
    there are too many copy candidate paths in the tree; now it falls
    back to "-C" when doing so would keep the copy candidate paths
    under the rename detection limit.
 
 
  * "git diff -C -C" used to disable the rename detection entirely when
    there are too many copy candidate paths in the tree; now it falls
    back to "-C" when doing so would keep the copy candidate paths
    under the rename detection limit.
 
+ * "git diff" and its family of commands learned --dirstat=0 to show
+   directories that contribute less than 0.1% of changes.
+
+ * "git diff" and its family of commands learned --dirstat=lines mode to
+   assess damage to the directory based on number of lines in the patch
+   output, not based on the similarity numbers.
+
  * "git format-patch" learned "--quiet" option to suppress the output of
    the names of generated files.
 
  * "git format-patch" learned "--quiet" option to suppress the output of
    the names of generated files.
 
+ * "git format-patch" quotes people's names when it has RFC822 special
+   characters in it, e.g. "Junio C. Hamano" <jch@example.com>.  Earlier
+   it was up to the user to do this when using its output.
+
+ * "git log" and friends learned a new "--notes" option to replace the
+   "--show-notes" option.  Unlike "--show-notes", "--notes=<ref>" does
+   not imply showing the default notes.
+
+ * "git ls-remote" learned "--exit-code" option to consider it a
+   different kind of error when no remote ref to be shown.
+
  * "git merge" learned "-" as a short-hand for "the previous branch", just
    like the way "git checkout -" works.
 
  * "git merge" learned "-" as a short-hand for "the previous branch", just
    like the way "git checkout -" works.
 
- * "git pack-object" now takes core.bigfilethreashold into account, just
-   like fast-imoprt does.
+ * "git merge" uses "merge.ff" configuration variable to decide to always
+   create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create
+   a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes
+   (or not setting it at all) restores the default behaviour of allowing
+   fast-forward to happen when possible.
+
+ * p4-import (from contrib) learned a new option --preserve-user.
 
 
- * "git reflog" allows options like "--format=.." to be given.
+ * "git rebase" that does not specify on top of which branch to rebase
+   the current branch now uses @{upstream} of the current branch.
 
 
- * "git stash apply" can now apply to a working tree with changes as long
-   as there is no overlapping change as the stash being applied.
+ * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked
+   commits separately, producing more a useful output.
 
 
- * "git stash apply @{99999}" now is diagnosed as an error, unless you
-   really have that many stash entries.
+ * "git submodule update" learned "--force" option to get rid of local
+   changes in submodules and replace them with the up-to-date version.
 
 
-Also contains various documentation updates.
+ * "git status" and friends ignore .gitmodules file while the file is
+   still in a conflicted state during a merge, to avoid using information
+   that is not final and possibly corrupt with conflict markers.
+
+ * Compressed tarball gitweb generates is made without the timestamp of
+   the tarball generation; snapshot from the same tree should result in
+   a same tarball.
+
+Also contains various documentation updates and minor miscellaneous
+changes.
 
 
 Fixes since v1.7.5
 
 
 Fixes since v1.7.5
@@ -49,36 +107,45 @@ Fixes since v1.7.5
 Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
 included in this release.
 
 Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
 included in this release.
 
- * The "--date=relative" output format used to say "X years, 12 months"
-   when it should have said "X+1 years".
-   (merge mg/x-years-12-months later)
+ * Setting $(prefix) in config.mak did not affect where etc/gitconfig
+   file is read from, even though passing it from the command line of
+   $(MAKE) did.
+   (merge kk/maint-prefix-in-config-mak later)
 
 
- * "git config" used to choke with an insanely long line.
-   (merge ef/maint-strbuf-init later)
+ * The bash completion scripts should correctly work using zsh's bash
+   completion emulation layer now.
+   (merge fc/completion-zsh later)
+
+ * The logic to handle "&" (expand to UNIX username) in GECOS field
+   miscounted the length of the name it formatted.
+   (merge rg/copy-gecos-username later)
+
+ * The single-key mode of "git add -p" was easily fooled into thinking
+   that it was told to add everthing ('a') when up-arrow was pressed by
+   mistake.
+   (merge tr/add-i-no-escape later)
 
 
- * The "--dirstat" option of "diff" family of commands used to totally
-   ignore a change that only rearranged lines within a file.  Such a
-   change now counts as at least a minimum but non zero change.
+ * "git cherry-pick -s resolve" failed to cherry-pick a root commit.
+   (merge jk/cherry-pick-root-with-resolve later)
 
 
- * The "--dirstat" option of "diff" family of commands used to use the
-   pathname in the original, instead of the pathname in the result,
-   when renames are involved.
-   (merge jh/dirstat for the above two later)
+ * "git config" used to choke with an insanely long line.
+   (merge ef/maint-strbuf-init later)
 
 
- * "git format-patch" when run with "--quiet" option used to produce a
-   nonsense result that consists of alternating empty output.
-   (merge early part of cn/format-patch-quiet later)
+ * "git diff --word-diff" misbehaved when diff.suppress-blank-empty was
+   in effect.
+   (merge jm/maint-diff-words-with-sbe later)
 
 
- * "git stash -p --no-keep-index" and "git stash --no-keep-index -p" now
-   mean the same thing.
-   (merge dm/stash-k-i-p later)
+ * "git log --stdin path" with an input that has additional pathspec
+   used to corrupt memory.
+   (merge jc/maint-pathspec-stdin-and-cmdline later)
 
 
- * "git upload-pack" (hence "git push" over git native protocol) had a
-   subtle race condition that could lead to a deadlock.
-   (merge jk/maint-upload-pack-shallow later)
+ * "git send-pack" (hence "git push") over smalt-HTTP protocol could
+   deadlock when the client side pack-object died early.
+   (merge js/maint-send-pack-stateless-rpc-deadlock-fix later)
+   (merge jk/git-connection-deadlock-fix later)
 
 ---
 exec >/var/tmp/1
 echo O=$(git describe master)
 
 ---
 exec >/var/tmp/1
 echo O=$(git describe master)
-O=v1.7.5-140-g5ae6f5c
+O=v1.7.5.2-352-g4961210
 git shortlog --no-merges ^maint ^$O master
 git shortlog --no-merges ^maint ^$O master