Code

14beed49ba0c773551602af60d7820c74059316d
[git.git] / Documentation / RelNotes-1.5.5.txt
1 GIT v1.5.5 Release Notes
2 ========================
4 Updates since v1.5.4
5 --------------------
7 (subsystems)
9  * Comes with git-gui 0.9.3.
11 (portability)
13  * We shouldn't ask for BSD group ownership semantics by setting g+s bit
14    on directories on older BSD systems that refuses chmod() by non root
15    users.  BSD semantics is the default there anyway.
17  * Bunch of portability improvement patches coming from an effort to port
18    to Solaris has been applied.
20 (performance)
22  * On platforms with suboptimal qsort(3) implementation, there
23    is an option to use more reasonable substitute we ship with
24    our software.
26  * New configuration variable "pack.packsizelimit" can be used
27    in place of command line option --max-pack-size.
29  * "git fetch" over the native git protocol used to make a
30    connection to find out the set of current remote refs and
31    another to actually download the pack data.  We now use only
32    one connection for these tasks.
34  * "git commit" does not run lstat(2) more than necessary
35    anymore.
37 (usability, bells and whistles)
39  * Bash completion script (in contrib) are aware of more commands and
40    options.
42  * You can be warned when core.autocrlf conversion is applied in
43    such a way that results in an irreversible conversion.
45  * A catch-all "color.ui" configuration variable can be used to
46    enable coloring of all color-capable commands, instead of
47    individual ones such as "color.status" and "color.branch".
49  * The commands refused to take absolute pathnames where they
50    require pathnames relative to the work tree or the current
51    subdirectory.  They now can take absolute pathnames in such a
52    case as long as the pathnames do not refer outside of the
53    work tree.  E.g. "git add $(pwd)/foo" now works.
55  * Error messages used to be sent to stderr, only to get hidden,
56    when $PAGER was in use.  They now are sent to stdout along
57    with the command output to be shown in the $PAGER.
59  * A pattern "foo/" in .gitignore file now matches a directory
60    "foo".  Pattern "foo" also matches as before.
62  * bash completion's prompt helper function can talk about
63    operation in-progress (e.g. merge, rebase, etc.).
65  * Configuration variables "url.<usethis>.insteadof = <otherurl>" can be
66    used to tell "git-fetch" and "git-push" to use different URL than what
67    is given from the command line.
69  * "git add -i" behaves better even before you make an initial commit.
71  * "git am" refused to run from a subdirectory without a good reason.
73  * After "git apply --whitespace=fix" fixes whitespace errors in a patch,
74    a line before the fix can appear as a context or preimage line in a
75    later patch, causing the patch not to apply.  The command now knows to
76    see through whitespace fixes done to context lines to successfully
77    apply such a patch series.
79  * "git branch" (and "git checkout -b") to branch from a local branch can
80    optionally set "branch.<name>.merge" to mark the new branch to build on
81    the other local branch, when "branch.autosetupmerge" is set to
82    "always".  By default, this does not happen when branching from a local
83    branch.
85  * "git checkout" to switch to a branch that has "branch.<name>.merge" set
86    (i.e. marked to build on another branch) reports how much the branch
87    and the other branch diverged.
89  * When "git checkout" has to update a lot of paths, it used to be silent
90    for 4 seconds before it showed any progress report.  It is now a bit
91    more impatient and starts showing progress report early.
93  * "git commit" learned a new hook "prepare-commit-msg" that can
94    inspect what is going to be committed and prepare the commit
95    log message template to be edited.
97  * "git cvsimport" can now take more than one -M options.
99  * "git describe" learned to limit the tags to be used for
100    naming with --match option.
102  * "git describe --contains" now barfs when the named commit
103    cannot be described.
105  * "git describe --exact-match" describes only commits that are tagged.
107  * "git describe --long" describes a tagged commit as $tag-0-$sha1,
108    instead of just showing the exact tagname.
110  * "git describe" warns when using a tag whose name and path contradict
111    with each other.
113  * "git diff" learned "--relative" option to limit and output paths
114    relative to the current directory when working in a subdirectory.
116  * "git diff" learned "--dirstat" option to show birds-eye-summary of
117    changes more concisely than "--diffstat".
119  * "git format-patch" learned --cover-letter option to generate a cover
120    letter template.
122  * "git gc" learned --quiet option.
124  * "git gc" now automatically prunes unreachable objects that are two
125    weeks old or older.
127  * "git gc --auto" can be disabled more easily by just setting gc.auto
128    to zero.  It also tolerates more packfiles by default.
130  * "git grep" now knows "--name-only" is a synonym for the "-l" option.
132  * "git help <alias>" now reports "'git <alias>' is alias to <what>",
133    instead of saying "No manual entry for git-<alias>".
135  * "git help" can use different backends to show manual pages and this can
136    be configured using "man.viewer" configuration.
138  * "gitk" does not restore window position from $HOME/.gitk anymore (it
139    still restores the size).
141  * "git log --grep=<what>" learned "--fixed-strings" option to look for
142    <what> without treating it as a regular expression.
144  * "git gui" learned an auto-spell checking.
146  * "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as
147    expected; they push the current branch (and only the current branch).
148    In addition, HEAD can be written as the value of "remote.<there>.push"
149    configuration variable.
151  * When the configuration variable "pack.threads" is set to 0, "git
152    repack" auto detects the number of CPUs and uses that many threads.
154  * "git send-email" learned to prompt for passwords
155    interactively.
157  * "git send-email" learned an easier way to suppress CC
158    recipients.
160  * "git stash" learned "pop" command, that applies the latest stash and
161    removes it from the stash, and "drop" command to discard the named
162    stash entry.
164  * "git submodule" learned a new subcommand "summary" to show the
165    symmetric difference between the HEAD version and the work tree version
166    of the submodule commits.
168  * Various "git cvsimport", "git cvsexportcommit", "git svn" and
169    "git p4" improvements.
171 (internal)
173  * Duplicated code between git-help and git-instaweb that
174    launches user's preferred browser has been refactored.
176  * It is now easier to write test scripts that records known
177    breakages.
179  * "git checkout" is rewritten in C.
181  * "git remote" is rewritten in C.
183  * Two conflict hunks that are separated by a very short span of common
184    lines are now coalesced into one larger hunk, to make the result easier
185    to read.
187  * Run-command API's use of file descriptors is documented clearer and
188    is more consistent now.
190  * diff output can be sent to FILE * that is different from stdout.  This
191    will help reimplementing more things in C.
193 Fixes since v1.5.4
194 ------------------
196 All of the fixes in v1.5.4 maintenance series are included in
197 this release, unless otherwise noted.
199  * "git-http-push" did not allow deletion of remote ref with the usual
200    "push <remote> :<branch>" syntax.
202  * "git-rebase --abort" did not go back to the right location if
203    "git-reset" was run during the "git-rebase" session.
205 ---
206 exec >/var/tmp/1
207 O=v1.5.5-rc1
208 echo O=`git describe refs/heads/master`
209 git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint