GIT 0.99.8
authorJunio C Hamano <junkio@cox.net>
Sun, 2 Oct 2005 23:52:26 +0000 (16:52 -0700)
committerJunio C Hamano <junkio@cox.net>
Sun, 2 Oct 2005 23:52:26 +0000 (16:52 -0700)
Signed-off-by: Junio C Hamano <junkio@cox.net>
HAVEDONE
TODO

index aeccb12..5445558 100644 (file)
--- a/HAVEDONE
+++ b/HAVEDONE
-Done in 0.99.7
+Done in 0.99.8
 ==============
 
-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*].
+* 'git pull' now uses 'git-merge' instead of 'git-resolve', so you can
+  specify alternative merge strategy to use on its command line.
 
-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.
+* 'git pull -s recursive' has been taught about renaming merges,
+  which may deal with HPA's klibc vs klibc-kbuild situation better.
 
-Importing from tla archives has been improved and documentated.
+* Symbolic refs -- instead of using symlinks to express .git/HEAD,
+  you can have a regular file that stores a single line
+  'ref: refs/heads/master' in it.
 
-'git branch' command acquired '-d' flag to delete a branch that
-has already been merged into the current branch.
+  git-update-ref is the preferred way to write into .git/HEAD,
+  not "echo >.git/HEAD".  git-symbolic-ref is the preferred way
+  to check which underlying ref a symbolic ref .git/HEAD refers
+  to, not "readlink .git/HEAD".
 
-'git bisect' command is easier to use by logging the earlier
-good/bad choices and make it replayable.
+* A couple of new diff options (-l<num> and --name-status).
 
-'git repack' has -a' flag to pack the whole repository into a
-single pack.
+* Commit walker over http acquired more SSL options.
 
-'git grep' is a new command to run grep on files 'git' knows
-about.
+* 'git clone' checks out the working tree by default.
 
 
 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.
+* Removed unused commands (diff-helper, rev-tree, and export).
 
-* 'git daemon' port is registered with IANA.
+* Platforms with only Python 2.3 installed can use recursive merge
+  strategy.
 
-* Many documentation updates.
+* Octopus documented.
 
+* Merge is more careful noticing potentially ambiguous situation. 
 
-[Footnotes]
-*1* http://www.kernel.org/pub/software/scm/git/docs/glossary.html
+* Git pull does not blindly do Octopus when Pull: lines in remotes
+  file specifies more than one remote branches.
 
-*2* Ancient environment variable names: SHA1_FILE_DIRECTORIES
-AUTHOR_DATE AUTHOR_EMAIL AUTHOR_NAME COMMIT_AUTHOR_EMAIL
-COMMIT_AUTHOR_NAME SHA1_FILE_DIRECTORY
+* Commit walker got safer to use after interrupted downloads.
 
-*3* But not grafts.
+* Commit walker over http can resume partial downloads.
 
+* More portability fixes for BSD and Solaris.
diff --git a/TODO b/TODO
index 8680447..20dfbd0 100644 (file)
--- a/TODO
+++ b/TODO
@@ -9,29 +9,17 @@ The GIT To-Do File
 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
@@ -47,9 +35,6 @@ Documentation
   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
@@ -58,8 +43,6 @@ Documentation
 * 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.
 
@@ -75,20 +58,6 @@ Documentation
 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
@@ -96,6 +65,14 @@ Technical (heavier)
   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.
@@ -114,37 +91,9 @@ Technical (heavier)
 Technical (milder)
 ------------------
 
-* Use 'git-update-ref' in the scripts [DONE].
-
-* Use symbolic refs in .git/HEAD.  Should we do that everywhere
-  while honoring the symlinked HEAD in the existing repositories
-  for backward compatibility, or just only when 'ln -s' fails?
-  [DONE].
-
-* 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 [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 -- and redone very nicely by
-  Sergey].
-
 * Encourage concrete proposals to commit log message templates
   we discussed some time ago.
 
-* Accept patches for more portability.
-
-  * strcasestr() in mailinfo.  We may need compat/strcasestr.c;
-    this is bugging OpenBSD folks [DONE, thanks to Linus and
-    others].
-
-  * Solaris portability [ONGOING, thanks to Patrick Mauritz,
-    Peter Eriksen and Sean from sympatico].
-
 * Accept patches to cause "read-tree -u" delete a directory when
   it makes it empty.
 
@@ -187,41 +136,22 @@ Technical (milder)
   just the basename, and see the improved clustering results in
   better packing [Tried, but did not work out well].
 
-* Remove obsolete commands [DONE].
-
-* Option to limit rename detection for more than N paths [DONE].
-
-* Option to show only status and name from diff [DONE].
-
-* What to name the 'master' version between 0.99.7 and 0.99.8
-  and still not break binary distribution folks?  0.99.7z?
-  Pasky gave me a good one: 0.99.7.GIT [DONE]
-
-* Listing more than one head on the Pull: line of .git/remotes/
-  allows you to make Octopus -- is it useful?  Probabaly not.
-  Either adopt "only the first head is used for the merge by
-  default if taken from .git/remotes/ file", or "list heads to
-  merge on a separate Merge: line" proposal.  I already have the
-  code to do the former, so... [DONE, open for improvement
-  patches but not just suggestions nor complaints.]
+* 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].
 
 
 Technical (trivial)
 -------------------
 
-* Usher SSL enhancements to http-fetch from Nick Hengeveld into
-  a shape acceptable by everybody [DONE].
+* short SHA1 naming is not enforcing uniqueness.  Should fix.
 
-* Require tk 2.4 in the spec file [DONE].
+* 'git repack' can be DOSed.  Should fix.
 
-* show-branch naming heads is buggy [DONE].
-
-* Stop installing the old-name symlinks [DONE].
+* Stop installing the old-name symlinks [POSTPONED].
 
 * 'git merge-projects'?
 
-* 'git clone' does not check things out [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