summaryrefslogtreecommitdiff
path: root/Documentation/RelNotes/1.7.6.txt
blob: 3d5ff4d9b2fc775b1d9bc3c52fe97a9cf9fd08cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
Git v1.7.6 Release Notes (draft)
========================

Updates since v1.7.5
--------------------

 * Various git-svn updates.

 * 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 "--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.

 * "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" 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 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 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
------------------

Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
included in this release.

 * 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)

 * 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)

 * "git cherry-pick -s resolve" failed to cherry-pick a root commit.
   (merge jk/cherry-pick-root-with-resolve later)

 * "git config" used to choke with an insanely long line.
   (merge ef/maint-strbuf-init later)

 * "git diff --word-diff" misbehaved when diff.suppress-blank-empty was
   in effect.
   (merge jm/maint-diff-words-with-sbe 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 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)
O=v1.7.5.2-352-g4961210
git shortlog --no-merges ^maint ^$O master