You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

139 lines
4.6 KiB

The GIT To-Do File
==================
The latest copy of this document is found at
http://kernel.org/git/?p=git/git.git;a=blob;hb=todo;f=TODO
What to expect from now on
==========================
This is written in a form of to-do list for me, so if I say
"accept patch", it means I do not currently plan to do that
myself. People interested in seeing it materialize please take
a hint. Also whatever I marked "Perhaps" do not have to happen
if ever -- only if somebody cares enough and submits a clean
patch, perhaps ;-).
Design issues
-------------
* tree entries in index? -- sorry, stalled
* "intent to add" index entries? -- together with the above
needs rethinking.
* Plug-in file-level merges. On the other hand, we may not even
need this; just tell people to run "xxdiff -U" on the working
tree files (or kompare).
Technical (heavier)
-------------------
* Libification. There are many places "run once" mentality is
ingrained in the management of basic data structures, which
need to be fixed. [Matthias Urlichs was already working on
this: <pan.2005.10.03.20.48.52.132570@smurf.noris.de>, but I
do not know what happened to his efforts]
* Lazy clones that can be controlled by the user, ranging from
totally on-demand a la CVS/SVN to "cache down to this old
commit so that I can make full use of git on at least recent
history". This need a lot of work in making tools to exit
gracefully when they hit unavailable objects while offline.
Technical (milder)
------------------
* git grep should be able to omit prefix when invoked from a
subdirectory. Either make it an option or default with
--full-name like ls-files does.
* duplicated refspec given to "fetch-pack a a a" makes it emit
strange error message because it triggers the "match only
once" logic. Maybe strip the dups on the input side
(Uwe Zeisberger
<20060608073857.GA5072@informatik.uni-freiburg.de>).
* map only parts of huge packfiles and LRU fragments of them.
People are starting to try git on projects with deep history
and/or many objects, e.g. Mozilla.
* upload-pack support for start fetching from any valid point on
the history, not just published refs. (Erik W. Biederman
<m164jc9ekx.fsf@ebiederm.dsl.xmission.com>)
* git-daemon side support for virtual hosting. Client side
is ready in 1.4.0 (Jon Loeliger <1149610100.23938.75.camel@cashmere.sps.mot.com>).
* teach git-upload-pack not to ack-continue early when the
client has roots it does not know about but it already has
learned the fork points for all the requested heads
(Ralf Baechle <20060524131022.GA11449@linux-mips.org>).
* Per user .gitconfig across repositories -- ongoing.
* Encourage competition between annotate vs blame. Maybe come
up with some nontrivial test cases.
* Subprojects. Try "gitlink" -- sorry, stalled.
* Rebase and checkout -m should be able to use recursive
strategy as well. These commands currently do not work across
renames.
* Decide what to do about rebase applied to merged head. One
extreme is to allow rebase if "rev-list ours..theirs" gives
anything. This loosens the current merge-base based approach.
The other extreme is to refuse rebase if "rev-list
theirs..ours" contains any merge commit, which was discussed
on the list.
<43CC695E.2020506@codeweavers.com>
* Decide what the right thing to do upon an empty merge commit,
when both branches happen to have obtained the same set of
changes through different history. Not recording such keeps
the history simpler, and the next merge would soon create a
true merge commit anyway, but this does not feel quite right.
<20060114021800.4688.qmail@web31803.mail.mud.yahoo.com>
* diff stopping at the first output; qgit wants to know if this
tree has any A or D from the other tree and nothing else.
Would help internal tree-diff in rev-list as well.
* daemon --strict-symlink.
* daemon --base-path does not apply automatically to whitelist
somehow feels wrong. If somebody cares enough, accept
patches.
* Perhaps detect cloning request in upload-pack and cache the
result for next cloning request until any of our refs change.
* Maybe grok PGP signed text/plain in applymbox as well.
Technical (trivial)
-------------------
* git-proxy should be spawned with sh -c 'command' $1 $2.
* Maybe a true git-proxy command that reads the first request
pkt-line, and redirects the request to its real destination.
* test scripts for the relative directory path stuff.
* In a freshly created empty repository, `git fetch foo:bar`
works OK, but `git checkout bar` afterwards does not (missing
`.git/HEAD`).
Local Variables:
mode: text
End: