Merge branch 'jk/fetch-mark-complete-optimization' into next
[git/dscho.git] / Documentation / RelNotes / 1.7.6.txt
blob3d5ff4d9b2fc775b1d9bc3c52fe97a9cf9fd08cc
1 Git v1.7.6 Release Notes (draft)
2 ========================
4 Updates since v1.7.5
5 --------------------
7  * Various git-svn updates.
9  * Updates the way content tags are handled in gitweb.
11  * Similar to branch names, tagnames that begin with "-" are now
12    disallowed.
14  * Clean-up of the C part of i18n (but not l10n---please wait)
15    continues.
17  * The scripting part of the codebase is getting prepared for i18n/l10n.
19  * Processes spawned by "[alias] <name> = !process" in the configuration
20    can inspect GIT_PREFIX environment variable to learn where in the
21    working tree the original command was invoked.
23  * A magic pathspec ":/" tells a command that limits its operation to
24    the current directory when ran from a subdirectory to work on the
25    entire working tree. In general, ":/path/to/file" would be relative
26    to the root of the working tree hierarchy.
28    After "git reset --hard; edit Makefile; cd t/", "git add -u" would
29    be a no-op, but "git add -u :/" would add the updated contents of
30    the Makefile at the top level. If you want to name a path in the
31    current subdirectory whose unusual name begins with ":/", you can
32    name it by "./:/that/path" or by "\:/that/path".
34  * "git blame" learned "--abbrev[=<n>]" option to control the minimum
35    number of hexdigits shown for commit object names.
37  * "git blame" learned "--line-porcelain" that is less efficient but is
38    easier to parse.
40  * Aborting "git commit --interactive" discards updates to the index
41    made during the interctive session.
43  * "git commit" learned a "--patch" option to directly jump to the
44    per-hunk selection UI of the interactive mode.
46  * "git diff -C -C" used to disable the rename detection entirely when
47    there are too many copy candidate paths in the tree; now it falls
48    back to "-C" when doing so would keep the copy candidate paths
49    under the rename detection limit.
51  * "git diff" and its family of commands learned --dirstat=0 to show
52    directories that contribute less than 0.1% of changes.
54  * "git diff" and its family of commands learned --dirstat=lines mode to
55    assess damage to the directory based on number of lines in the patch
56    output, not based on the similarity numbers.
58  * "git format-patch" learned "--quiet" option to suppress the output of
59    the names of generated files.
61  * "git format-patch" quotes people's names when it has RFC822 special
62    characters in it, e.g. "Junio C. Hamano" <jch@example.com>.  Earlier
63    it was up to the user to do this when using its output.
65  * "git log" and friends learned a new "--notes" option to replace the
66    "--show-notes" option.  Unlike "--show-notes", "--notes=<ref>" does
67    not imply showing the default notes.
69  * "git ls-remote" learned "--exit-code" option to consider it a
70    different kind of error when no remote ref to be shown.
72  * "git merge" learned "-" as a short-hand for "the previous branch", just
73    like the way "git checkout -" works.
75  * "git merge" uses "merge.ff" configuration variable to decide to always
76    create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create
77    a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes
78    (or not setting it at all) restores the default behaviour of allowing
79    fast-forward to happen when possible.
81  * p4-import (from contrib) learned a new option --preserve-user.
83  * "git rebase" that does not specify on top of which branch to rebase
84    the current branch now uses @{upstream} of the current branch.
86  * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked
87    commits separately, producing more a useful output.
89  * "git submodule update" learned "--force" option to get rid of local
90    changes in submodules and replace them with the up-to-date version.
92  * "git status" and friends ignore .gitmodules file while the file is
93    still in a conflicted state during a merge, to avoid using information
94    that is not final and possibly corrupt with conflict markers.
96  * Compressed tarball gitweb generates is made without the timestamp of
97    the tarball generation; snapshot from the same tree should result in
98    a same tarball.
100 Also contains various documentation updates and minor miscellaneous
101 changes.
104 Fixes since v1.7.5
105 ------------------
107 Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
108 included in this release.
110  * Setting $(prefix) in config.mak did not affect where etc/gitconfig
111    file is read from, even though passing it from the command line of
112    $(MAKE) did.
113    (merge kk/maint-prefix-in-config-mak later)
115  * The bash completion scripts should correctly work using zsh's bash
116    completion emulation layer now.
117    (merge fc/completion-zsh later)
119  * The logic to handle "&" (expand to UNIX username) in GECOS field
120    miscounted the length of the name it formatted.
121    (merge rg/copy-gecos-username later)
123  * The single-key mode of "git add -p" was easily fooled into thinking
124    that it was told to add everthing ('a') when up-arrow was pressed by
125    mistake.
126    (merge tr/add-i-no-escape later)
128  * "git cherry-pick -s resolve" failed to cherry-pick a root commit.
129    (merge jk/cherry-pick-root-with-resolve later)
131  * "git config" used to choke with an insanely long line.
132    (merge ef/maint-strbuf-init later)
134  * "git diff --word-diff" misbehaved when diff.suppress-blank-empty was
135    in effect.
136    (merge jm/maint-diff-words-with-sbe later)
138  * "git log --stdin path" with an input that has additional pathspec
139    used to corrupt memory.
140    (merge jc/maint-pathspec-stdin-and-cmdline later)
142  * "git send-pack" (hence "git push") over smalt-HTTP protocol could
143    deadlock when the client side pack-object died early.
144    (merge js/maint-send-pack-stateless-rpc-deadlock-fix later)
145    (merge jk/git-connection-deadlock-fix later)
148 exec >/var/tmp/1
149 echo O=$(git describe master)
150 O=v1.7.5.2-352-g4961210
151 git shortlog --no-merges ^maint ^$O master