git-svn: fail on rebase if we are unable to find a ref to rebase against
[git] / Documentation / RelNotes-1.5.1.txt
1 GIT v1.5.1 Release Notes
2 ========================
3
4 Updates since v1.5.0
5 --------------------
6
7 * Deprecated commands and options.
8
9   - git-diff-stages and git-resolve have been removed.
10
11 * New commands and options.
12
13   - "git log" and friends take --reverse, which instructs them
14     to give their output in the order opposite from their usual.
15     They typically output from new to old, but with this option
16     their output would read from old to new.  "git shortlog"
17     usually lists older commits first, but with this option,
18     they are shown from new to old.
19
20   - "git log --pretty=format:<string>" to allow more flexible
21     custom log output.
22
23   - "git diff" learned --ignore-space-at-eol.  This is a weaker
24     form of --ignore-space-change.
25
26   - "git diff --no-index pathA pathB" can be used as diff
27     replacement with git specific enhancements.
28
29   - "git diff --no-index" can read from '-' (standard input).
30
31   - "git diff" also learned --exit-code to exit with non-zero
32     status when it found differences.  In the future we might
33     want to make this the default but that would be a rather big
34     backward incompatible change; it will stay as an option for
35     now.
36
37   - "git diff --quiet" is --exit-code with output turned off,
38     meant for scripted use to quickly determine if there is any
39     tree-level difference.
40
41   - Textual patch generation with "git diff" without -w/-b
42     option has been significantly optimized.  "git blame" got
43     faster because of the same change.
44
45   - "git log" and "git rev-list" has been optimized
46     significantly when they are used with pathspecs.
47
48   - "git branch --track" can be used to set up configuration
49     variables to help it easier to base your work on branches
50     you track from a remote site.
51
52   - "git format-patch --attach" now emits attachments.  Use
53     --inline to get an inlined multipart/mixed.
54
55   - "git name-rev" learned --refs=<pattern>, to limit the tags
56     used for naming the given revisions only to the ones
57     matching the given pattern.
58
59   - "git remote update" is to run "git fetch" for defined remotes
60     to update tracking branches.
61
62   - "git cvsimport" can now take '-d' to talk with a CVS
63     repository different from what are recorded in CVS/Root
64     (overriding it with environment CVSROOT does not work).
65
66   - "git bundle" can help sneaker-netting your changes between
67     repositories.
68
69   - "git mergetool" can help 3-way file-level conflict
70     resolution with your favorite graphical merge tools.
71
72   - A new configuration "core.symlinks" can be used to disable
73     symlinks on filesystems that do not support them; they are
74     checked out as regular files instead.
75
76   - You can name a commit object with its first line of the
77     message.  The syntax to use is ':/message text'.  E.g.
78
79     $ git show ":/object name: introduce ':/<oneline prefix>' notation"
80
81     means the same thing as:
82
83     $ git show 28a4d940443806412effa246ecc7768a21553ec7
84
85   - "git bisect" learned a new command "run" that takes a script
86     to run after each revision is checked out to determine if it
87     is good or bad, to automate the bisection process.
88
89   - "git log" family learned a new traversal option --first-parent,
90     which does what the name suggests.
91
92
93 * Updated behaviour of existing commands.
94
95   - "git fsck" does not barf on corrupt loose objects.
96
97   - "git rm" does not remove newly added files without -f.
98
99   - "git archimport" allows remapping when coming up with git
100     branch names from arch names.
101
102   - git-svn got almost a rewrite.
103
104   - core.autocrlf configuration, when set to 'true', makes git
105     to convert CRLF at the end of lines in text files to LF when
106     reading from the filesystem, and convert in reverse when
107     writing to the filesystem.  The variable can be set to
108     'input', in which case the conversion happens only while
109     reading from the filesystem but files are written out with
110     LF at the end of lines.  Currently, which paths to consider
111     'text' (i.e. be subjected to the autocrlf mechanism) is
112     decided purely based on the contents, but the plan is to
113     allow users to explicitly override this heuristic based on
114     paths.
115
116   - The behaviour of 'git-apply', when run in a subdirectory,
117     without --index nor --cached were inconsistent with that of
118     the command with these options.  This was fixed to match the
119     behaviour with --index.  A patch that is meant to be applied
120     with -p1 from the toplevel of the project tree can be
121     applied with any custom -p<n> option.  A patch that is not
122     relative to the toplevel needs to be applied with -p<n>
123     option with or without --index (or --cached).
124
125   - "git diff" outputs a trailing HT when pathnames have embedded
126     SP on +++/--- header lines, in order to help "GNU patch" to
127     parse its output.  "git apply" was already updated to accept
128     this modified output format since ce74618d (Sep 22, 2006).
129
130   - "git cvsserver" runs hooks/update and honors its exit status.
131
132   - "git cvsserver" can be told to send everything with -kb.
133
134   - "git diff --check" also honors the --color output option.
135
136   - "git name-rev" used to stress the fact that a ref is a tag too
137     much, by saying something like "v1.2.3^0~22".  It now says
138     "v1.2.3~22" in such a case (it still says "v1.2.3^0" if it does
139     not talk about an ancestor of the commit that is tagged, which
140     makes sense).
141
142   - "git rev-list --boundary" now shows boundary markers for the
143     commits omitted by --max-age and --max-count condition.
144
145   - The configuration mechanism now reads $(prefix)/etc/gitconfig.
146
147   - "git apply --verbose" shows what preimage lines were wanted
148     when it couldn't find them.
149
150   - "git status" in a read-only repository got a bit saner.
151
152   - "git fetch" (hence "git clone" and "git pull") are less
153     noisy when the output does not go to tty.
154
155   - "git fetch" between repositories with many refs were slow
156     even when there are not many changes that needed
157     transferring.  This has been sped up by partially rewriting
158     the heaviest parts in C.
159
160   - "git mailinfo" which splits an e-mail into a patch and the
161     metainformation was rewritten, thanks to Don Zickus.  It
162     handles nested multipart better.
163
164   - send-email learned configurable bcc and chain-reply-to.
165
166   - "git remote show $remote" also talks about branches that
167     would be pushed if you run "git push remote".
168
169   - Using objects from packs is now seriouly optimized by clever
170     use of a cache.  This should be most noticeable in git-log
171     family of commands that involve reading many tree objects.
172     In addition, traversing revisions while filtering changes
173     with pathspecs is made faster by terminating the comparison
174     between the trees as early as possible.
175
176
177 * Hooks
178
179   - The part to send out notification e-mails was removed from
180     the sample update hook, as it was not an appropriate place
181     to do so.
182
183
184 * Others
185
186   - git-revert, git-gc and git-cherry-pick are now built-ins.
187
188
189 --
190 exec >/var/tmp/1
191 O=v1.5.1-rc3-18-ge881192
192 echo O=`git describe master`
193 git shortlog --no-merges $O..master ^maint
194
195 # Local Variables:
196 # mode: text
197 # End: