|
|
|
|
What to expect after 0.99.6
|
|
|
|
|
===========================
|
|
|
|
|
|
|
|
|
|
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. The latest copy of this document is found at
|
|
|
|
|
|
|
|
|
|
http://kernel.org/git/?p=git/git.git;a=blob;hb=todo;f=TODO
|
|
|
|
|
|
|
|
|
|
Tool Renames Plan
|
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
|
|
- All non-binary commands will lose -script suffix in
|
|
|
|
|
$(bindir). The source to git-foo will be either git-foo.sh
|
|
|
|
|
or git-foo.perl in the source tree, and the documentation
|
|
|
|
|
will be in Documentation/git-foo.txt.
|
|
|
|
|
|
|
|
|
|
- The commands whose names have 'cache' to mean 'index file'
|
|
|
|
|
will get 'cache' in their names replaced with 'index'. For
|
|
|
|
|
git-fsck-cache and git-convert-cache, 'cache' will be
|
|
|
|
|
replaced with 'objects'.
|
|
|
|
|
|
|
|
|
|
- The commit walkers will have 'pull' in their names replaced
|
|
|
|
|
with 'fetch'. 'git-ssh-push' will become 'git-ssh-upload'.
|
|
|
|
|
|
|
|
|
|
- We continue to follow the convention to name the C source
|
|
|
|
|
file that contains the main program of 'git-foo' command
|
|
|
|
|
'foo.c'. That means we will have 'fsck-objects.c', for
|
|
|
|
|
example.
|
|
|
|
|
|
|
|
|
|
- At this moment, I am not planning to rename the symbols used
|
|
|
|
|
in programs, nor any library sources. "cache.h" will stay
|
|
|
|
|
"cache.h", so does "read-cache.c". "struct cache_entry" and
|
|
|
|
|
"ce_match_stat()" will keep their names. We _might_ want to
|
|
|
|
|
rename them in later rounds but not right now.
|
|
|
|
|
|
|
|
|
|
- In 0.99.7, all renamed commands will have symbolic links in
|
|
|
|
|
$(bindir) so that old names continue to work. These backward
|
|
|
|
|
compatible symlinks will not be present in documentation,
|
|
|
|
|
though. Especially, the main documentation, git(7) will talk
|
|
|
|
|
about the new names. Old environment names defined in
|
|
|
|
|
gitenv() will also be removed in this release.
|
|
|
|
|
|
|
|
|
|
Tentatively we aim to do this on Sep 17th.
|
|
|
|
|
|
|
|
|
|
- In 0.99.8, we do 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.
|
|
|
|
|
|
|
|
|
|
The timeframe for this is around Oct 1st, but I could be
|
|
|
|
|
talked into delaying the symlink removal if Porcelain people
|
|
|
|
|
find this schedule too tight.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
|
-------------
|
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
support for this (but see below about optimized cloning).
|
|
|
|
|
|
|
|
|
|
* Maybe update tutorial with a toy project that involves two or
|
|
|
|
|
three developers..
|
|
|
|
|
|
|
|
|
|
* Update tutorial to cover setting up repository hooks to do
|
|
|
|
|
common tasks.
|
|
|
|
|
|
|
|
|
|
* Accept patches to finish missing docs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
[Daniel's patch looks quite promising, so is the one from
|
|
|
|
|
Fredrik.]
|
|
|
|
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
|
|
|
|
* To make it easier to experiment with different merge
|
|
|
|
|
strategies, make git-merge driver that will run merge backends
|
|
|
|
|
for the best merge [tested and in proposed updates].
|
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
file for this. Also this itself may turn out to be a bad
|
|
|
|
|
idea, making the set of packs in repositories everybody has
|
|
|
|
|
different from each other.
|
|
|
|
|
|
|
|
|
|
* Maybe a pack optimizer.
|
|
|
|
|
|
|
|
|
|
* Maybe an Emacs VC backend.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Technical (milder)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
* Tool renames. Give fixup patch for at least Cogito and StGIT.
|
|
|
|
|
[As of 2005-09-09 evening US/Pacific, the "master" branch has
|
|
|
|
|
what should go in 0.99.7 including gitenv() removal].
|
|
|
|
|
|
|
|
|
|
* Have Daniel's read-tree graduate from "pu" after plugging leaks.
|
|
|
|
|
|
|
|
|
|
* Implement a merge backend using Daniel's read-tree [DONE].
|
|
|
|
|
|
|
|
|
|
* Rename 'git-merge-resolve' to 'git-merge-stupid' and
|
|
|
|
|
'git-merge-multibase' to 'git-merge-resolve'; the former is
|
|
|
|
|
for historical curiosity and comparison purposes only and not
|
|
|
|
|
to be used in real applications so remove it from the default
|
|
|
|
|
strategies list [DONE].
|
|
|
|
|
|
|
|
|
|
* Accept Fredrik merge after renaming it (I want to name the
|
|
|
|
|
driver 'git merge'). Suggest where to place *.py stuff --
|
|
|
|
|
probably in $(share)/git-core/ and add Makefile entry for
|
|
|
|
|
installation.
|
|
|
|
|
|
|
|
|
|
* Encourage concrete proposals to commit log message templates
|
|
|
|
|
we discussed some time ago.
|
|
|
|
|
|
|
|
|
|
* Bug Martin for archimport script documentation.
|
|
|
|
|
|
|
|
|
|
* More portability.
|
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
'git-apply'.
|
|
|
|
|
|
|
|
|
|
* Maybe grok PGP signed text/plain in applymbox as well.
|
|
|
|
|
|
|
|
|
|
* Perhaps a tool to revert a single file to pre-modification
|
|
|
|
|
state? git-cat-file blob `git-ls-files | grep foo` >foo or
|
|
|
|
|
git-cat-file blob `git-ls-tree HEAD foo` >foo? What should
|
|
|
|
|
the command be called? git-revert is taken so is
|
|
|
|
|
git-checkout.
|
|
|
|
|
|
|
|
|
|
* A tool to detect, show and prune already merged topic
|
|
|
|
|
branches.
|
|
|
|
|
|
|
|
|
|
* "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.
|
|
|
|
|
|
|
|
|
|
Do not name it /lost+found/; that would probably confuse
|
|
|
|
|
things that mistake it a mount point (not our code but
|
|
|
|
|
somebody else's).
|
|
|
|
|
|
|
|
|
|
* Enhance "git repack" to not always use --all; this would be
|
|
|
|
|
handy if the repository contains wagging heads like "pu" in
|
|
|
|
|
git.git repository.
|
|
|
|
|
|
|
|
|
|
* Internally split the project into non-doc and doc parts; add
|
|
|
|
|
an extra root for the doc part and merge from it; move the
|
|
|
|
|
internal doc source to a separate repository, like the +Meta
|
|
|
|
|
repository; experiment if this results in a reasonable
|
|
|
|
|
workflow, and document it in howto form if it does.
|
|
|
|
|
|
|
|
|
|
* Option to limit rename detection for more than N paths.
|
|
|
|
|
|
|
|
|
|
* Marking copy seems to be broken when A,B => B,C rename
|
|
|
|
|
happens; we incorrectly say B stays, which makes the new B
|
|
|
|
|
copy of old A, not rename [DONE].
|
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
left off.
|
|
|
|
|
|
|
|
|
|
* Output full path in the "git-rev-list --objects" output, not
|
|
|
|
|
just the basename, and see the improved clustering results in
|
|
|
|
|
better packing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Technical (trivial)
|
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
|
|
* Teach 'git format-patch' about 'git cherry' [DONE].
|
|
|
|
|
|
|
|
|
|
* Make 'git bisect' easier to use by logging the earlier
|
|
|
|
|
good/bad choices and make it replayable [DONE].
|
|
|
|
|
|
|
|
|
|
* Perhaps "git branch -d" to delete a branch. We probably need
|
|
|
|
|
some way to say "delete this branch because everything in this
|
|
|
|
|
should be merged in the master branch" and refuse the removal
|
|
|
|
|
if it is not true.
|
|
|
|
|
|
|
|
|
|
* We would want test scripts for the relative directory path
|
|
|
|
|
stuff Linus has been working on. So far, the following
|
|
|
|
|
commands should be usable with relative directory paths:
|
|
|
|
|
|
|
|
|
|
git-update-index
|
|
|
|
|
git-ls-files
|
|
|
|
|
git-diff-files
|
|
|
|
|
git-diff-index
|
|
|
|
|
git-diff-tree
|
|
|
|
|
git-rev-list
|
|
|
|
|
git-rev-parse
|
|
|
|
|
|
|
|
|
|
* In a freashly created empty repository, `git fetch foo:bar`
|
|
|
|
|
works OK, but `git checkout bar` afterwards does not (missing
|
|
|
|
|
`.git/HEAD`).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: text
|
|
|
|
|
End:
|