Really prepare for 0.99.7 Signed-off-by: Junio C Hamano <junkio@cox.net>
Really prepare for 0.99.7 Signed-off-by: Junio C Hamano <junkio@cox.net>
Junio C Hamano committed
Sep 18, 2005 at 10:46 UTC
11d56b155cc478fa4708d457d9c8e50bb0f39fe9
2 files changed
+154
-87
HAVEDONE
+104
new file mode 100644
index 0000000000..aeccb12811
--- /dev/null
+++ b/HAVEDONE
@@ -0,0 +1,104 @@
+Done in 0.99.7
+==============
+
+Organization
+~~~~~~~~~~~~
+
+Some commands and most scripts are renamed for consistency.
+
+ - We have an official standard terminology list [*1*]. To
+ match this, commands that operate on index files now have
+ 'index' instead of 'cache' in their names, and ones that
+ download are called 'fetch' instead of 'pull'.
+
+ - We used to install most of the commands that happen to be
+ implemented as scripts as 'git-*-script', which was
+ cumbersome to remember and type unless you always used 'git'
+ wrapper. They lost '-script' suffix from their names.
+
+For now, we install synonyms as symbolic links so that old
+names continue to work, but they are planned to be removed in
+0.99.8 (or later if there are enough objections on the list --
+so far I have heard none).
+
+Also ancient environment variables [*2*] are not supported
+anymore.
+
+
+New Features and Commands
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Downloaders that are not fully git aware have been taught about
+the mechanism to borrow objects from other repositories via
+objects/info/alternates the server side may be using. 'git
+fetch' and 'git pull' commands over rsync and http transport
+should be able to handle such repositories [*3*].
+
+People found interesting cases where the 'stupid' three-way
+merge mechanism does the wrong thing without noticing. We have
+two new merge algorithms by Daniel and Fredrik that attempt to
+do better in such cases. A new 'git merge' command has been
+introduced to make it easier to experiment with and choose among
+different merge strategies. Note that 'git pull' still uses the
+traditional three-way merge after downloading, but it is
+expected to be switched to use 'git merge' sometime in the
+future.
+
+Importing from tla archives has been improved and documentated.
+
+'git branch' command acquired '-d' flag to delete a branch that
+has already been merged into the current branch.
+
+'git bisect' command is easier to use by logging the earlier
+good/bad choices and make it replayable.
+
+'git repack' has -a' flag to pack the whole repository into a
+single pack.
+
+'git grep' is a new command to run grep on files 'git' knows
+about.
+
+
+Fixes
+~~~~~
+
+* 'git-diff-*' commands used to mark copy/rename incorrectly
+ when an (A,B) => (B,C) rename was made. We said the new B is
+ a copy of old A, not a rename of old A.
+
+* When the user exported CDPATH into environment, 'cd' took
+ scripts to unexpected places. Unset it upfront to guard us.
+
+* 'git format-patch' knows about 'git cherry' and skips patches
+ already merged upstream.
+
+* hopefully plugged memory leak in diffcore-rename properly.
+
+* commit walkers incorrectly assumed having a commit means we
+ have the whole history leading up to it -- which is not true
+ if the previous download was interrupted. As a safety
+ measure, we now only trust the commits that are pointed by the
+ existing refs.
+
+* 'git rev-list' uses a lot less memory.
+
+* The build should be a bit friendlier to Solaris and Darwin now.
+
+* 'git ssh-{push,pull}' are friendlier to tcsh.
+
+* http transport is nicer to caching proxies.
+
+* 'git daemon' port is registered with IANA.
+
+* Many documentation updates.
+
+
+[Footnotes]
+*1* http://www.kernel.org/pub/software/scm/git/docs/glossary.html
+
+*2* Ancient environment variable names: SHA1_FILE_DIRECTORIES
+AUTHOR_DATE AUTHOR_EMAIL AUTHOR_NAME COMMIT_AUTHOR_EMAIL
+COMMIT_AUTHOR_NAME SHA1_FILE_DIRECTORY
+
+*3* But not grafts.
+
TODO
+50
-87
index fe18dd31ab..6e5409c179 100644
--- a/TODO
+++ b/TODO
@@ -1,15 +1,13 @@
-What to expect after 0.99.6
-===========================
+The GIT To-Do File
+==================
-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
+ 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
@@ -37,12 +35,10 @@ Tool Renames Plan
- 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.
+ 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 do not install these backward compatible
symbolic links in $(bindir) anymore. The Makefile will have
@@ -54,6 +50,15 @@ Tool Renames Plan
find this schedule too tight.
+What to expect after 0.99.7
+===========================
+
+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.
+
+
Documentation
-------------
@@ -95,16 +100,6 @@ Technical (heavier)
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 [DONE].
-
-* Sort out the mess objects/info/alternates introduces on the
- client end. Both rsync and commit walkers are broken.
- * describe current situation [DONE]
- * http [Daniel started]
- * rsync
-
* 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
@@ -112,6 +107,10 @@ Technical (heavier)
idea, making the set of packs in repositories everybody has
different from each other.
+* Libification. There are many places "run once" mentality is
+ ingrained in the management of basic data structures, which
+ need to be fixed.
+
* Maybe a pack optimizer.
* Maybe an Emacs VC backend.
@@ -120,41 +119,18 @@ Technical (heavier)
Technical (milder)
------------------
-* Define semantics for relative pathnames in objects/info/alternates.
- Either relative to 'objects', or relative to the top of project tree
- ;the latter is consistent with GIT_ALTERNATE_OBJECT_DIRECTORIES.
- Perhaps would end up doing the former because we would want to be
- consistent between a naked repository and a repository with working
- tree [DONE].
-
-* Tool renames. Give fixup patch for at least Cogito and StGIT
- [DONE].
-
-* Massage ssh-fetch and ssh-upload to be more backward
- compatible.
-
-* Have Daniel's read-tree graduate from "pu" after plugging
- leaks [DONE].
-
-* 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 [DONE].
+* 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 INITIAL CUT].
* Encourage concrete proposals to commit log message templates
we discussed some time ago.
-* Bug Martin for archimport script documentation [DONE].
+* Accept patches for more portability.
-* More portability [IN PROGRESS].
+ * strcasestr() in mailinfo. We may need compat/strcasestr.c;
+ this is bugging OpenBSD folks.
* Accept patches to cause "read-tree -u" delete a directory when
it makes it empty.
@@ -167,6 +143,10 @@ Technical (milder)
* Perhaps accept patch to optionally allow '--fuzz' in
'git-apply'.
+* Allow 'git apply' to accept GNU diff 2.7 output that forgets
+ to say '\No newline' if both input ends with incomplete
+ lines.
+
* Maybe grok PGP signed text/plain in applymbox as well.
* Perhaps a tool to revert a single file to pre-modification
@@ -175,18 +155,6 @@ Technical (milder)
the command be called? git-revert is taken so is
git-checkout.
-* A tool to detect, show and prune already merged topic
- branches [DONE; 'branch -d' to prune; users can do gitk for
- deciding].
-
-* "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.
@@ -197,15 +165,6 @@ Technical (milder)
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.
-
-* diffcore-rename leak reintroduced because the 'fix' was
- broken [DONE].
-
-* 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
@@ -215,29 +174,32 @@ Technical (milder)
just the basename, and see the improved clustering results in
better packing [Tried, but did not work out well].
-* Allow 'git apply' to accept GNU diff 2.7 output that forgets
- to say '\No newline' if both input ends with incomplete
- lines.
+* Remove obsolete commands [READY].
+
+* Option to limit rename detection for more than N paths [READY].
+
+* Option to show only status and name from diff [READY].
Technical (trivial)
-------------------
-* Add simple globbing rules for git-show-branch so that I can
- say 'git show-branch --heads "ko-*"' (ko-master, ko-pu, and
- ko-rc are in refs/tags/).
+* 'git add --recursive'?
-* Deal with CDPATH [DONE].
+* 'git merge-projects'?
-* Teach 'git format-patch' about 'git cherry' [DONE].
+* '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
+ feeler patch sent out. Very underwhelming response X-<.]
-* Make 'git bisect' easier to use by logging the earlier
- good/bad choices and make it replayable [DONE].
+ Do not name it /lost+found/; that would probably confuse
+ things that mistake it a mount point (not our code but
+ somebody else's).
-* 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 [DONE].
+* Add simple globbing rules to git-show-branch so that I can
+ say 'git show-branch --heads "ko-*"' (ko-master, ko-pu, and
+ ko-rc are in refs/tags/).
* We would want test scripts for the relative directory path
stuff Linus has been working on. So far, the following