Tool Renames Plan
=================
- - In 0.99.7, all renamed commands have symbolic links in
- $(bindir) so that old names continue to work. These backward
- compatible names will not appear in documentation. The main
- documentation, git(7) will talk about the new names but would
- mention their old names as historical notes. Old environment
- names defined in gitenv() will also be removed in this release.
+ - In 0.99.8, we will still install the backward compatible
+ symbolic links in $(bindir). These will however be removed
+ before 1.0 happens.
- - In 0.99.8, we will not install these backward compatible
- symbolic links in $(bindir) anymore. The Makefile will have
- a target to remove old symlinks from $(DESTDIR)$(bindir) you
- can run manually to help you clean things up.
+ git-ssh-push and git-ssh-pull pair is not going away within
+ this timeframe, if ever. Each of these old-name commands
+ continues to invoke its old-name counterpart on the other
+ end.
- As a notable exception, git-ssh-push and git-ssh-pull pair is
- not going away within this timeframe, if ever. Each of these
- old-name commands continues to invoke its old-name
- counterpart on the other end. Updating to 0.99.8 on one end
- of the connection does not requier the other end to update at
- the same time.
- The timeframe for this is around Oct 1st.
-
-
-What to expect after 0.99.7
+What to expect after 0.99.8
===========================
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.
+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 ;-).
Documentation
-------------
+* Help Jon Loeliger to find place in the documentation to place
+ his drawing.
+
* Accept patches from people who actually have done CVS
migration and update the cvs-migration documentation.
Link the documentation from the main git.txt page.
-* Accept patches from people who were hit by shiny blue bat to
- update the SubmittingPatches.
-
* Talk about using rsync just once at the beginning when
initializing a remote repository so that local packs do not
need to be expanded. I personally do not think we need tool
* Maybe update tutorial with a toy project that involves two or
three developers..
-* Document octopus [Linus prodded me again; DONE].
-
* Update tutorial to cover setting up repository hooks to do
common tasks.
Technical (heavier)
-------------------
-* Tony Luck reported an unfortunate glitch in the 3-way merge.
- Encourage discussions to come up with a not-so-expensive way
- to catch the kind of ambiguities that led to his misery.
- [Deathmatch between Daniel's and Fredrik's ongoing.]
-
-* HPA has two projects, klibc and klibc-kbuild, that have large
- set of overlapping files in different paths (i.e. one has many
- renames from the other). There currently is no way for git to
- help keep these two trees in sync, merging criss-cross between
- them. The merge logic should be able to take advantage of
- rename/copy detection smarts git-diff-* family has. Linus,
- me, and Daniel outlined a smarter merge strategy for this.
- Try them out.
-
* We might want to optimize cloning with GIT native transport
not to explode the pack, and store it in objects/pack instead.
We would need a tool to generate an idx file out of a pack
idea, making the set of packs in repositories everybody has
different from each other.
+* Git daemon, when deployed at kernel.org, might turn out to be
+ quite a burden, since it needs to generate customized packs
+ every time a new request comes in. It may be worthwhile to
+ precompute some packs for popular sets of heads downloaders
+ have and serve that, even if that could give more than the
+ client asks for in some cases. We will know about this soon
+ enough.
+
* Libification. There are many places "run once" mentality is
ingrained in the management of basic data structures, which
- need to be fixed.
+ need to be fixed. [Matthias Urlichs is already working on
+ this: <pan.2005.10.03.20.48.52.132570@smurf.noris.de>; Post
+ 1.0].
* Maybe a pack optimizer.
+ Given a set of objects and a set of refs (probably a handful
+ branch heads and point release tags), find a set of packs to
+ allow reasonably minimum download for all of these classes of
+ people: (1) somebody cloning the repository from scratch, (2)
+ somebody who tends to follow the master branch head reasonably
+ closely, (3) somebody who tends to follow only the point
+ releases.
+
* Maybe an Emacs VC backend.
* 'git split-projects'? This requires updated 'git-rev-list' to
skip irrelevant commits.
+ Message-ID: <Pine.LNX.4.63.0509221617300.23242@iabervon.org>
+
+* Look at libified GNU diff CVS seems to use, or libxdiff.
+ [Daniel has his own diff tool almost ready to start
+ integrating and testing; Post 1.0]
+
+* Accept patches to fetch multiple objects by HTTP in parallel.
+ [DONE]
+
+* Plug-in file-level merges [Post 1.0].
+
+* Per-repository configuration mechanism.
Technical (milder)
------------------
-* Revisit 'git-merge'. It probably was a mistake to "loop to
- choose the best one", since what is best is not ill defined to
- begin with. This would make it a lot straightforward to
- loosen the tree cleanliness requirements to the acceptable
- level.
+* Funny tag names and curl library.
-* The recent commit walker safety patch may be too cautious and
- appears to take forever when cloning. This may even be
- infinitely looping in the code lifted from the old rev-list --
- needs to be taken a look at [DONE -- and redone very nicely by
- Sergey].
+ curl 'http://locke.catalyst.net.nz/git/moodle.git/refs/tags/MOODLE_15_MERGED **INVALID**'
-* Encourage concrete proposals to commit log message templates
- we discussed some time ago.
+* Review the Makefile variables and exporting rules for them,
+ while looking at prefix passing by Kai Ruemmler [DONE].
-* Accept patches for more portability.
+* Review the 'sparce object database' change by Linus and move
+ the first phase of it to the "master" branch [DONE].
- * strcasestr() in mailinfo. We may need compat/strcasestr.c;
- this is bugging OpenBSD folks [DONE].
+* Decide on mmap(). I am inclined to just stick to mmap
+ replacement by Johannes Schindelin and do nothing else right
+ now, except perhaps drop the writing-back support [DONE].
+
+* Revisit Santi's patch to move commit temorary files out of the
+ working tree toplevel [DONE].
+
+* More generally, review the use of temporary files again.
+ Assuming writable $GIT_DIR is more acceptable, but the
+ working tree toplevel may not be in a rare usage pattern.
+
+* Perhaps accept more "want"s in upload-pack and do something
+ intelligent about it.
+
+* Perhaps detect cloning request in upload-pack and cache the
+ result for next cloning request until any of our refs change.
+
+* Perhaps send less "want"s from fetch-pack.
+
+* Encourage concrete proposals to commit log message templates
+ we discussed some time ago.
* Accept patches to cause "read-tree -u" delete a directory when
it makes it empty.
-* Perhaps accept patches to introduce the concept of "patch flow
- expressed as ref mappings" Josef has been advocating about.
-
* Perhaps accept patches to do undo/redo.
* Perhaps accept patch to optionally allow '--fuzz' in
to say '\No newline' if both input ends with incomplete
lines.
+* What to do with TABs and LFs in pathnames without breaking GNU
+ patch? [Discussion started.]
+
* Maybe grok PGP signed text/plain in applymbox as well.
* Perhaps a tool to revert a single file to pre-modification
repository; experiment if this results in a reasonable
workflow, and document it in howto form if it does.
+ The point is to make it possible to fork that part off to
+ somebody else; then I do not have to maintain Documentation
+ directory myself anymore, just like I simply slurp the latest
+ gitk from Paul and not worry about it ;-).
+
* Make rebase restartable; instead of skipping what cannot be
automatically forward ported, leave the conflicts in the work
tree, have the user resolve it, and then restart from where it
just the basename, and see the improved clustering results in
better packing [Tried, but did not work out well].
-* Remove obsolete commands [DONE].
+* Updated git-changes-script Jeff Garzik needs [Inquiry for
+ external spec sent out with a quick hack. Will know if that
+ is what he needs soon enough].
-* Option to limit rename detection for more than N paths [READY].
-
-* Option to show only status and name from diff [READY].
+* An mechanism to ignore filesystem mode bits altogether.
Technical (trivial)
-------------------
-* Stop installing the old-name symlinks.
+* short SHA1 naming is not enforcing uniqueness. Should fix [DONE].
+
+* 'git repack' can be DOSed. Should fix [DONE].
-* 'git add --recursive' [DONE]
+* Stop installing the old-name symlinks [POSTPONED, but before 1.0].
* 'git merge-projects'?
+ Subject: Re: Merges without bases
+ References: <1125004228.4110.20.camel@localhost.localdomain>
+ Date: Thu, 25 Aug 2005 15:26:36 -0700
+ Message-ID: <7vvf1tps9v.fsf@assigned-by-dhcp.cox.net>
+
* 'git lost-and-found'? Link dangling commits found by
fsck-objects under $GIT_DIR/refs/lost-found/. Then
show-branch or gitk can be used to find any lost commit. [A