Code

Merge branch 'jn/doc-remote-helpers'
[git.git] / Documentation / RelNotes / 1.7.6.txt
index fbbc5b447efda99ac8b9def1dbe160d05363cb68..7e1c7f177327a253d5adb1a9aae31da9caf62b20 100644 (file)
@@ -6,51 +6,108 @@ Updates since v1.7.5
 
  * Various git-svn updates.
 
+ * Updates the way content tags are handled in gitweb.  Also adds
+   a UI to choose common timezone for displaying the dates.
+
+ * 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.
 
- * 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.
+ * The scripting part of the codebase is getting prepared for i18n/l10n.
+
+ * Pushing and pulling from a repository with large number of refs that
+   point to identical commits are optimized by not listing the same commit
+   during the common ancestor negotiation exchange with the other side.
+
+ * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig)
+   using "git add" will send the contents straight to a packfile without
+   having to hold it and its compressed representation both at the same
+   time in memory.
+
+ * 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 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" 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" 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.
 
+ * They also learned a log.abbrevCommit configuration variable to augment
+   the --abbrev-commit command line option.
+
+ * "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 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.
 
- * "git reflog" allows options like "--format=.." to be given.
+ * p4-import (from contrib) learned a new option --preserve-user.
 
- * "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 rebase" that does not specify on top of which branch to rebase
+   the current branch now uses @{upstream} of the current branch.
+
+ * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked
+   commits separately, producing more a useful output.
 
  * "git submodule update" learned "--force" option to get rid of local
    changes in submodules and replace them with the up-to-date version.
 
- * "git stash apply @{99999}" now is diagnosed as an error, unless you
-   really have that many stash entries.
+ * "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.
 
-Also contains various documentation updates.
+Also contains various documentation updates and minor miscellaneous
+changes.
 
 
 Fixes since v1.7.5
@@ -59,36 +116,16 @@ Fixes since v1.7.5
 Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
 included in this release.
 
+ * 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)
+
  * "git config" used to choke with an insanely long line.
    (merge ef/maint-strbuf-init 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.
-
- * 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)
-
- * "diff -M --cached" used to use unmerged path as a possible rename
-   source candidate, which made no sense.
-   (merge mz/maint-rename-unmerged 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 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 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)
-
 ---
 exec >/var/tmp/1
 echo O=$(git describe master)
-O=v1.7.5-184-g23f536c
+O=v1.7.5.3-365-g7eacc2b
 git shortlog --no-merges ^maint ^$O master