6f5191933b44756036ea83d3b13379128ffc9141
[git.git] / TODO
1 The GIT To-Do File
2 ==================
3
4   The latest copy of this document is found at 
5
6     http://kernel.org/git/?p=git/git.git;a=blob;hb=todo;f=TODO
7
8
9 Tool Renames Plan
10 =================
11
12  - Immedately after 0.99.9, the backward compatible symbolic
13    links in $(bindir) will be removed.
14
15    git-ssh-push and git-ssh-pull pair is not going away if ever.
16    Each of these old-name commands continues to invoke its
17    old-name counterpart on the other end.
18
19
20 What to expect after 0.99.9
21 ===========================
22
23 This is written in a form of to-do list for me, so if I say
24 "accept patch", it means I do not currently plan to do that
25 myself.  People interested in seeing it materialize please take
26 a hint.  Also whatever I marked "Perhaps" do not have to happen
27 if ever -- only if somebody cares enough and submits a clean
28 patch, perhaps ;-).
29
30
31 Documentation
32 -------------
33
34 * Help Jon Loeliger to find place in the documentation to place
35   his drawing.
36
37 * Accept patches from people who actually have done CVS
38   migration and update the cvs-migration documentation.
39   Link the documentation from the main git.txt page.
40
41 * Talk about using rsync just once at the beginning when
42   initializing a remote repository so that local packs do not
43   need to be expanded.  I personally do not think we need tool
44   support for this (but see below about optimized cloning).
45
46 * Maybe update tutorial with a toy project that involves two or
47   three developers..
48
49 * Update tutorial to cover setting up repository hooks to do
50   common tasks.
51
52 * Do we still have missing docs?  If so accept patches to finish
53   them.
54
55 * Accept patches to talk about "Whoops, it broke.  What's
56   next?".
57
58 * Accept patches to make formatted tables in asciidoc to work
59   well in both html and man pages (see git-diff(1)).
60
61
62 Technical (heavier)
63 -------------------
64
65 * Git daemon, when deployed at kernel.org, might turn out to be
66   quite a burden, since it needs to generate customized packs
67   every time a new request comes in.  It may be worthwhile to
68   precompute some packs for popular sets of heads downloaders
69   have and serve that, even if that could give more than the
70   client asks for in some cases.  We will know about this soon
71   enough [DONE part to allow using precomputed pack, but not
72   dynamic caching part].
73
74 * Libification.  There are many places "run once" mentality is
75   ingrained in the management of basic data structures, which
76   need to be fixed.  [Matthias Urlichs is already working on
77   this: <pan.2005.10.03.20.48.52.132570@smurf.noris.de>; Post
78   1.0].
79
80 * Maybe a pack optimizer.
81
82   Given a set of objects and a set of refs (probably a handful
83   branch heads and point release tags), find a set of packs to
84   allow reasonably minimum download for all of these classes of
85   people: (1) somebody cloning the repository from scratch, (2)
86   somebody who tends to follow the master branch head reasonably
87   closely, (3) somebody who tends to follow only the point
88   releases.
89
90 * Maybe an Emacs VC backend.
91
92 * 'git split-projects'?  This requires updated 'git-rev-list' to
93   skip irrelevant commits.
94   Message-ID: <Pine.LNX.4.63.0509221617300.23242@iabervon.org>
95
96 * Look at libified GNU diff CVS seems to use, or libxdiff.
97   [Daniel has his own diff tool almost ready to start
98   integrating and testing; Post 1.0]
99
100 * Plug-in file-level merges [Post 1.0].
101
102
103 Technical (milder)
104 ------------------
105
106 * Maybe look at Cogito and see if I can help Pasky to adjust to
107   the later core features?  Zack Brown's "cg-seek leaving empty
108   directories" problem is a good example of this.
109
110 * Perhaps detect cloning request in upload-pack and cache the
111   result for next cloning request until any of our refs change.
112
113 * Encourage concrete proposals to commit log message templates
114   we discussed some time ago.
115
116 * Perhaps accept patches to do undo/redo.
117
118 * Perhaps accept patch to optionally allow '--fuzz' in
119   'git-apply'.
120
121 * Allow 'git apply' to accept GNU diff 2.7 output that forgets
122   to say '\No newline' if both input ends with incomplete
123   lines.
124
125 * Maybe grok PGP signed text/plain in applymbox as well.
126
127 * Enhance "git repack" to not always use --all; this would be
128   handy if the repository contains wagging heads like "pu" in
129   git.git repository.
130
131 * Make rebase restartable; instead of skipping what cannot be
132   automatically forward ported, leave the conflicts in the work
133   tree, have the user resolve it, and then restart from where it
134   left off [mechanism mostly done].
135
136 * Output full path in the "git-rev-list --objects" output, not
137   just the basename, and see the improved clustering results in
138   better packing [Tried, but did not work out well].
139
140 * Updated git-changes-script Jeff Garzik needs [Inquiry for
141   external spec sent out with a quick hack.  Will know if that
142   is what he needs hopefully soon].
143
144
145 Technical (trivial)
146 -------------------
147
148 * Stop installing the old-name symlinks [IN 0.99.9].
149
150 * 'git merge-projects'?
151
152   Subject: Re: Merges without bases
153   References: <1125004228.4110.20.camel@localhost.localdomain>
154   Date: Thu, 25 Aug 2005 15:26:36 -0700
155   Message-ID: <7vvf1tps9v.fsf@assigned-by-dhcp.cox.net>
156
157 * 'git lost-and-found'?  Link dangling commits found by
158   fsck-objects under $GIT_DIR/refs/lost-found/.  Then
159   show-branch or gitk can be used to find any lost commit. [A
160   feeler patch sent out. Very underwhelming response X-<.]
161
162   Do not name it /lost+found/; that would probably confuse
163   things that mistake it a mount point (not our code but
164   somebody else's).
165
166 * Add simple globbing rules to git-show-branch so that I can
167   say 'git show-branch --heads "ko-*"' (ko-master, ko-pu, and
168   ko-rc are in refs/tags/).
169
170 * We would want test scripts for the relative directory path
171   stuff Linus has been working on.  So far, the following
172   commands should be usable with relative directory paths:
173
174     git-update-index
175     git-ls-files
176     git-diff-files
177     git-diff-index
178     git-diff-tree
179     git-rev-list
180     git-rev-parse
181
182 * In a freashly created empty repository, `git fetch foo:bar`
183   works OK, but `git checkout bar` afterwards does not (missing
184   `.git/HEAD`).
185
186 \f
187 Local Variables:
188 mode: text
189 End: