Merge branch 'sb/describe-long'
[git] / Documentation / RelNotes-1.5.5.txt
1 GIT v1.5.5 Release Notes
2 ========================
3
4 Updates since v1.5.4
5 --------------------
6
7 (performance)
8
9  * On platforms with suboptimal qsort(3) implementation, there
10    is an option to use more reasonable substitute we ship with
11    our software.
12
13  * New configuration variable "pack.packsizelimit" can be used
14    in place of command line option --max-pack-size.
15
16  * "git fetch" over the native git protocol used to make a
17    connection to find out the set of current remote refs and
18    another to actually download the pack data.  We now use only
19    one connection for these tasks.
20
21  * "git commit" does not run lstat(2) more than necessary
22    anymore.
23
24 (usability, bells and whistles)
25
26  * You can be warned when core.autocrlf conversion is applied in
27    such a way that results in an irreversible conversion.
28
29  * A catch-all "color.ui" configuration variable can be used to
30    enable coloring of all color-capable commands, instead of
31    individual ones such as "color.status" and "color.branch".
32
33  * The commands refused to take absolute pathnames where they
34    require pathnames relative to the work tree or the current
35    subdirectory.  They now can take absolute pathnames in such a
36    case as long as the pathnames do not refer outside of the
37    work tree.  E.g. "git add $(pwd)/foo" now works.
38
39  * Error messages used to be sent to stderr, only to get hidden,
40    when $PAGER was in use.  They now are sent to stdout along
41    with the command output to be shown in the $PAGER.
42
43  * A pattern "foo/" in .gitignore file now matches a directory
44    "foo".  Pattern "foo" also matches as before.
45
46  * bash completion's prompt helper function can talk about
47    operation in-progress (e.g. merge, rebase, etc.).
48
49  * Configuration variables "url.<usethis>.insteadof = <otherurl>" can be
50    used to tell "git-fetch" and "git-push" to use different URL than what
51    is given from the command line.
52
53  * "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as
54    expected; they push the current branch (and only the current branch).
55    In addition, HEAD can be written as the value of "remote.<there>.push"
56    configuration variable.
57
58  * "git add -i" behaves better even before you make an initial commit.
59
60  * After "git apply --whitespace=fix" fixes whitespace errors in a patch,
61    a line before the fix can appear as a context or preimage line in a
62    later patch, causing the patch not to apply.  The command now knows to
63    see through whitespace fixes done to context lines to successfully
64    apply such a patch series.
65
66  * "git branch" (and "git checkout -b") to branch from a local branch can
67    optionally set "branch.<name>.merge" to mark the new branch to build on
68    the other local branch, when "branch.autosetupmerge" is set to
69    "always".  By default, this does not happen when branching from a local
70    branch.
71
72  * "git checkout" to switch to a branch that has "branch.<name>.merge" set
73    (i.e. marked to build on another branch) reports how much the branch
74    and the other branch diverged.
75
76  * When "git checkout" has to update a lot of paths, it used to be silent
77    for 4 seconds before it showed any progress report.  It is now a bit
78    more impatient and starts showing progress report early.
79
80  * "git commit" learned a new hook "prepare-commit-msg" that can
81    inspect what is going to be committed and prepare the commit
82    log message template to be edited.
83
84  * "git describe" learned to limit the tags to be used for
85    naming with --match option.
86
87  * "git describe --contains" now barfs when the named commit
88    cannot be described.
89
90  * "git describe --exact-match" describes only commits that are tagged.
91
92  * "git diff" learned "--relative" option to limit and output paths
93    relative to the current directory when working in a subdirectory.
94
95  * "git diff" learned "--dirstat" option to show birds-eye-summary of
96    changes more concisely than "--diffstat".
97
98  * "git format-patch" learned --cover-letter option to generate a cover
99    letter template.
100
101  * "git grep" now knows "--name-only" is a synonym for the "-l" option.
102
103  * "git help <alias>" now reports "'git <alias>' is alias to <what>",
104    instead of saying "No manual entry for git-<alias>".
105
106  * "git log --grep=<what>" learned "--fixed-strings" option to look for
107    <what> without treating it as a regular expression.
108
109  * "git gui" learned an auto-spell checking.
110
111  * "git send-email" learned to prompt for passwords
112    interactively.
113
114  * "git send-email" learned an easier way to suppress CC
115    recipients.
116
117  * When the configuration variable "pack.threads" is set to 0, "git
118    repack" auto detects the number of CPUs and uses that many threads.
119
120  * Various "git cvsimport", "git cvsexportcommit", "git svn" and
121    "git p4" improvements.
122
123 (internal)
124
125  * Duplicated code between git-help and git-instaweb that
126    launches user's preferred browser has been refactored.
127
128  * It is now easier to write test scripts that records known
129    breakages.
130
131  * "git checkout" is rewritten in C.
132
133  * Two conflict hunks that are separated by a very short span of common
134    lines are now coalesced into one larger hunk, to make the result easier
135    to read.
136
137  * Run-command API's use of file descriptors is documented clearer and
138    is more consistent now.
139
140
141 Fixes since v1.5.4
142 ------------------
143
144 All of the fixes in v1.5.4 maintenance series are included in
145 this release, unless otherwise noted.
146
147 ---
148 exec >/var/tmp/1
149 O=v1.5.4.3-339-g7cf7f54
150 echo O=`git describe refs/heads/master`
151 git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint