4 The latest copy of this document is found at
6 http://kernel.org/git/?p=git/git.git;a=blob;hb=todo;f=TODO
9 What to expect from now on
10 ==========================
12 This is written in a form of to-do list for me, so if I say
13 "accept patch", it means I do not currently plan to do that
14 myself. People interested in seeing it materialize please take
15 a hint. Also whatever I marked "Perhaps" do not have to happen
16 if ever -- only if somebody cares enough and submits a clean
23 * Talk about using rsync just once at the beginning when
24 initializing a remote repository so that local packs do not
25 need to be expanded. I personally do not think we need tool
26 support for this (but see below about optimized cloning).
28 * Maybe update tutorial with a toy project that involves two or
35 * Plug-in file-level merges. On the other hand, we may not even
36 need this; just tell people to run "xxdiff -U" on the working
39 * Ref namespace management. Perhaps use refs/local/ suggestion
40 by Linus. [Does not seem to be high on people's priority list,
41 and not interested myself. People can resurrect this
42 discussion if they want.]
44 * Perhaps "everything in config file"? Especially remotes/
45 shortcuts. I am modestly negative about this.
47 * Perhaps "setting umask from git_config()"? I am modestly
54 * Libification. There are many places "run once" mentality is
55 ingrained in the management of basic data structures, which
56 need to be fixed. [Matthias Urlichs is already working on
57 this: <pan.2005.10.03.20.48.52.132570@smurf.noris.de>]
59 * Maybe a pack optimizer.
61 Given a set of objects and a set of refs (probably a handful
62 branch heads and point release tags), find a set of packs to
63 allow reasonably minimum download for all of these classes of
64 people: (1) somebody cloning the repository from scratch, (2)
65 somebody who tends to follow the master branch head reasonably
66 closely, (3) somebody who tends to follow only the point
69 This needs a matching smart on the dumb protocol downloader.
71 * Maybe an Emacs VC backend.
73 * Look at libified GNU diff CVS seems to use, or libxdiff.
74 [Daniel has his own diff tool almost ready to start
75 integrating and testing]
81 * send-pack/receive-pack protocol updates, to allow the receiver
82 to report what it did to the ref update requests.
84 * Perhaps a smarter HTTP anonymous download via CGI.
86 * Prepare to enable "always use symbolic refs for HEAD" patch.
87 We need a timeline to force Porcelains to get ready.
89 * Forbid/ignore pack names that do not conform to the convention
90 sha1_pack_name() assumes and reject in check_packed_git_idx().
92 * strip leading directory from ls-tree output, to match ls-files
95 I am of two minds about this one. diff output must always be
96 -p1 format no matter where the command was started, and
97 ls-tree might be easier to use if it matched diff, not
100 * diff stopping at the first output; qgit wants to know if this
101 tree has any A or D from the other tree and nothing else.
102 Would help internal tree-diff in rev-list as well.
104 * daemon --strict-symlink.
106 * Perhaps detect cloning request in upload-pack and cache the
107 result for next cloning request until any of our refs change.
109 * Perhaps accept patch to optionally allow '--fuzz' in
112 * Allow 'git apply' to accept GNU diff 2.7 output that forgets
113 to say '\No newline' if both input ends with incomplete
116 * Perhaps deal with "Files differ" (binary diff) in non C
119 * Maybe grok PGP signed text/plain in applymbox as well.
121 * Output full path in the "git-rev-list --objects" output, not
122 just the basename, and see the improved clustering results in
123 better packing [Tried, but did not work out well].
129 * Versioning scheme. The next maintenance installment will be
130 1.0.3 not 1.0.0c. The next feature release would be 1.1.0.
132 * Either drop supporting Debian myself or coerce patches out of
133 the official maintainer.
135 * We would want test scripts for the relative directory path
136 stuff Linus has been working on. Most of the C-level
137 commands should be usable with relative directory paths.
139 * In a freashly created empty repository, `git fetch foo:bar`
140 works OK, but `git checkout bar` afterwards does not (missing