Update 2005-09-29 night.
[git.git] / HAVEDONE
1 Done in 0.99.7
2 ==============
3
4 Organization
5 ~~~~~~~~~~~~
6
7 Some commands and most scripts are renamed for consistency.
8
9   - We have an official standard terminology list [*1*].  To
10     match this, commands that operate on index files now have
11     'index' instead of 'cache' in their names, and ones that
12     download are called 'fetch' instead of 'pull'.
13
14   - We used to install most of the commands that happen to be
15     implemented as scripts as 'git-*-script', which was
16     cumbersome to remember and type unless you always used 'git'
17     wrapper.  They lost '-script' suffix from their names.
18
19 For now, we install synonyms as symbolic links so that old
20 names continue to work, but they are planned to be removed in
21 0.99.8 (or later if there are enough objections on the list --
22 so far I have heard none).
23
24 Also ancient environment variables [*2*] are not supported
25 anymore.
26
27
28 New Features and Commands
29 ~~~~~~~~~~~~~~~~~~~~~~~~~
30
31 Downloaders that are not fully git aware have been taught about
32 the mechanism to borrow objects from other repositories via
33 objects/info/alternates the server side may be using.  'git
34 fetch' and 'git pull' commands over rsync and http transport
35 should be able to handle such repositories [*3*].
36
37 People found interesting cases where the 'stupid' three-way
38 merge mechanism does the wrong thing without noticing.  We have
39 two new merge algorithms by Daniel and Fredrik that attempt to
40 do better in such cases.  A new 'git merge' command has been
41 introduced to make it easier to experiment with and choose among
42 different merge strategies.  Note that 'git pull' still uses the
43 traditional three-way merge after downloading, but it is
44 expected to be switched to use 'git merge' sometime in the
45 future.
46
47 Importing from tla archives has been improved and documentated.
48
49 'git branch' command acquired '-d' flag to delete a branch that
50 has already been merged into the current branch.
51
52 'git bisect' command is easier to use by logging the earlier
53 good/bad choices and make it replayable.
54
55 'git repack' has -a' flag to pack the whole repository into a
56 single pack.
57
58 'git grep' is a new command to run grep on files 'git' knows
59 about.
60
61
62 Fixes
63 ~~~~~
64
65 * 'git-diff-*' commands used to mark copy/rename incorrectly
66   when an (A,B) => (B,C) rename was made.  We said the new B is
67   a copy of old A, not a rename of old A.
68
69 * When the user exported CDPATH into environment, 'cd' took
70   scripts to unexpected places.  Unset it upfront to guard us.
71
72 * 'git format-patch' knows about 'git cherry' and skips patches
73   already merged upstream.
74
75 * hopefully plugged memory leak in diffcore-rename properly.
76
77 * commit walkers incorrectly assumed having a commit means we
78   have the whole history leading up to it -- which is not true
79   if the previous download was interrupted.  As a safety
80   measure, we now only trust the commits that are pointed by the
81   existing refs.
82
83 * 'git rev-list' uses a lot less memory.
84
85 * The build should be a bit friendlier to Solaris and Darwin now.
86
87 * 'git ssh-{push,pull}' are friendlier to tcsh.
88
89 * http transport is nicer to caching proxies.
90
91 * 'git daemon' port is registered with IANA.
92
93 * Many documentation updates.
94
95
96 [Footnotes]
97 *1* http://www.kernel.org/pub/software/scm/git/docs/glossary.html
98
99 *2* Ancient environment variable names: SHA1_FILE_DIRECTORIES
100 AUTHOR_DATE AUTHOR_EMAIL AUTHOR_NAME COMMIT_AUTHOR_EMAIL
101 COMMIT_AUTHOR_NAME SHA1_FILE_DIRECTORY
102
103 *3* But not grafts.
104