parent
6dc88cc0dc
commit
27442c64ac
106
HAVEDONE
106
HAVEDONE
|
|
@ -1,104 +1,48 @@
|
|||
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.
|
||||
* Removed unused commands (diff-helper, rev-tree, and export).
|
||||
|
||||
* When the user exported CDPATH into environment, 'cd' took
|
||||
scripts to unexpected places. Unset it upfront to guard us.
|
||||
* Platforms with only Python 2.3 installed can use recursive merge
|
||||
strategy.
|
||||
|
||||
* 'git format-patch' knows about 'git cherry' and skips patches
|
||||
already merged upstream.
|
||||
* Octopus documented.
|
||||
|
||||
* hopefully plugged memory leak in diffcore-rename properly.
|
||||
* Merge is more careful noticing potentially ambiguous situation.
|
||||
|
||||
* 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 pull does not blindly do Octopus when Pull: lines in remotes
|
||||
file specifies more than one remote branches.
|
||||
|
||||
* 'git rev-list' uses a lot less memory.
|
||||
* Commit walker got safer to use after interrupted downloads.
|
||||
|
||||
* 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.
|
||||
* Commit walker over http can resume partial downloads.
|
||||
|
||||
* More portability fixes for BSD and Solaris.
|
||||
|
|
|
|||
114
TODO
114
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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue