GIT 0.99.9

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano
2005-10-29 17:51:10 -07:00
parent c3b9ed08ca
commit 7b5f821775
2 changed files with 83 additions and 140 deletions

112
HAVEDONE
View File

@@ -1,48 +1,96 @@
Done in 0.99.8
Done in 0.99.9
==============
New Features and Commands
~~~~~~~~~~~~~~~~~~~~~~~~~
Ports
~~~~~
* 'git pull' now uses 'git-merge' instead of 'git-resolve', so you can
specify alternative merge strategy to use on its command line.
* Cygwin port [HPA].
* 'git pull -s recursive' has been taught about renaming merges,
which may deal with HPA's klibc vs klibc-kbuild situation better.
* 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-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".
* A couple of new diff options (-l<num> and --name-status).
* Commit walker over http acquired more SSL options.
* 'git clone' checks out the working tree by default.
* OpenBSD build [Merlyn and others].
Fixes
~~~~~
* Removed unused commands (diff-helper, rev-tree, and export).
* clone request over git native protocol from a repository with
too many refs did not work; this has been fixed.
* Platforms with only Python 2.3 installed can use recursive merge
strategy.
* git-daemon got safer for kernel.org use [HPA].
* Octopus documented.
* Extended SHA1 parser was not enforcing uniqueness for
abbreviated SHA1; this has been fixed.
* Merge is more careful noticing potentially ambiguous situation.
* http transport does not barf on funny characters in URL.
* Git pull does not blindly do Octopus when Pull: lines in remotes
file specifies more than one remote branches.
* The ref naming restrictions have been formalized and the
coreish refuses to create funny refs; we still need to audit
importers. See git-check-ref-format(1).
* Commit walker got safer to use after interrupted downloads.
* Commit walker over http can resume partial downloads.
New Features and Commands
~~~~~~~~~~~~~~~~~~~~~~~~~
* .git/config file as a per-repository configuration mechanism,
and some commands understand it [Linus]. See
git(7).
* The core.filemode configuration item can be used to make us a
bit more FAT friendly. See git(7).
* The extended SHA1 notation acquired Peel-the-onion operator
^{type} and ^{}. See git-rev-parse(1).
* SVN importer [Matthias]. See git-svnimport(1).
* .git/objects/[0-9a-f]{2} directories are created on demand,
and removed when becomes empty after prune-packed [Linus].
* Filenames output from various commands without -z option are
quoted when they embed funny characters (TAB and LF) using
C-style quoting within double-quotes, to match the proposed
GNU diff/patch notation [me, but many people contributed in
the discussion].
* git-mv is expected to be a better replacement for git-rename.
While the latter has two parameter restriction, it acts more
like the regular 'mv' that can move multiple things to one
destinatino directory [Josef Weidendorfer].
* git-checkout can take filenames to revert the changes to
them. See git-checkout(1)
* The new program git-am is a replacement for git-applymbox that
has saner command line options and a bit easier to use when a
patch does not apply cleanly.
* git-ls-remote can show unwrapped onions using ^{} notation, to
help Cogito to track tags.
* git-merge-recursive backend can merge unrelated projects.
* git-clone over native transport leaves the result packed.
* git-http-fetch issues multiple requests in parallel when
underlying cURL library supports it [Nick and Daniel].
* git-fetch-pack and git-upload-pack try harder to figure out
better common commits [Johannes].
* git-read-tree -u removes a directory when it makes it empty.
* git-diff-* records abbreviated SHA1 names of original and
resulting blob; this sometimes helps to apply otherwise an
unapplicable patch by falling back to 3-way merge.
* git-format-patch now takes series of from..to rev ranges and
with '-m --stdout', writes them out to the standard output.
This can be piped to 'git-am' to implement cheaper
cherry-picking.
* git-tag takes '-u' to specify the tag signer identity [Linus].
* git-rev-list can take optional pathspecs to skip commits that
do not touch them (--dense) [Linus].
* Comes with new and improved gitk [Paulus and Linus].
* More portability fixes for BSD and Solaris.

111
TODO
View File

@@ -9,15 +9,15 @@ The GIT To-Do File
Tool Renames Plan
=================
- In 0.99.9, the backward compatible symbolic links in
$(bindir) will be removed.
- Immedately after 0.99.9, the backward compatible symbolic
links in $(bindir) will be removed.
git-ssh-push and git-ssh-pull pair is not going away 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.8
What to expect after 0.99.9
===========================
This is written in a form of to-do list for me, so if I say
@@ -31,12 +31,6 @@ patch, perhaps ;-).
Documentation
-------------
* Document the ref naming restrictions [DONE].
* David Ho's report suggests whatchanged documentation should
mention -m as "commonly used options". Steal Linus'
response [DONE].
* Help Jon Loeliger to find place in the documentation to place
his drawing.
@@ -68,14 +62,6 @@ Documentation
Technical (heavier)
-------------------
* 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. [DONE; git-index-pack by Sergey,
tweaking clone by me]
* 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
@@ -111,20 +97,12 @@ Technical (heavier)
[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 [DONE by Linus].
Technical (milder)
------------------
* Merlyn reports trouble with http fetch [Hopefully solved by
Nick's updates].
* Maybe look at Cogito and see if I can help Pasky to adjust to
the later core features? Zack Brown's "cg-seek leaving empty
directories" problem is a good example of this.
@@ -132,46 +110,9 @@ Technical (milder)
* Perhaps detect cloning request in upload-pack and cache the
result for next cloning request until any of our refs change.
* Perhaps accept more "want"s in upload-pack and do something
intelligent about it [Ongoing, by Johannes].
* Perhaps send less "want"s from fetch-pack [DONE by JS].
* Look at svn importer Smurf has. There is a small cvsimport
update in his tree as well [DONE].
* Decide the notation of "peeling the onion" operator, and
implement it in sha1_name.c. Perhaps postfix "^{}" to mean
"peel and expect anything", "^{blob}" to mean "peel and barf
unless blob". The current "^0" becomes shorthand for
"^{commit}". [DONE]
* Quote the URL so that libcurl's metecharacter mechanism would
not kick in [DONE].
* Review the Makefile variables and exporting rules for them,
while looking at prefix passing by Kai Ruemmler [DONE].
* Review the 'sparse object database' change by Linus and move
the first phase of it to the "master" branch [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.
* 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 [DONE].
* Perhaps accept patches to do undo/redo.
* Perhaps accept patch to optionally allow '--fuzz' in
@@ -181,22 +122,8 @@ Technical (milder)
to say '\No newline' if both input ends with incomplete
lines.
* What to do with TABs and LFs in pathnames without breaking GNU
patch? [DONE -- go with GNU patch extension proposed by Paul].
* Adjust apply.c to proposed GNU patch extension that quotes \n
and \t in C style, inside "". [DONE]
* Adjust diff.c to the same. [DONE]
* Maybe grok PGP signed text/plain in applymbox as well.
* Perhaps a tool to revert a single file to pre-modification
state? People with BK background know this operation as
'clean'. 'git checkout [-f] ent [path...]' was suggested by
Matthias Urlichs which sounds a natural extention to what the
command currently does [DONE with a prodding by Linus].
* Enhance "git repack" to not always use --all; this would be
handy if the repository contains wagging heads like "pu" in
git.git repository.
@@ -214,42 +141,10 @@ Technical (milder)
external spec sent out with a quick hack. Will know if that
is what he needs hopefully soon].
* An mechanism to ignore filesystem mode bits altogether [DONE].
Technical (trivial)
-------------------
* Peter Hagervall's sparse fix [DONE].
* Alex Riesen reported that hooks are in effect in tests.
Should fix [DONE].
* Disallow [\001-\040\177] byte values from ref names. Also we
need to disallow ':' (used in refspec), '^' and '~' (postfix
"peel the onion" operators), and '..' ("ref1..ref2" notation
becomes ambiguous otherwise) [DONE].
* Update fetch-pack and clone-pack to ignore funny refs from the
other end, while making sure peek-remote does not discard them.
[DONE]
* Update upload-pack to send tag^{}. This would hopefully help
Pasky's automated tag tracking, and also Martin's findtags.
[DONE]
* Adjust update-index to quoted --index-info [DONE].
* Prepare apply.c changes for maint branch (0.99.8e) [DONE].
* Perhaps show ^{commit}, ^{tree} instead of ^{} from ls-remote? [NO]
* Re-adjust maint branch for the above if we did so. [NOT NEEDED]
* short SHA1 naming is not enforcing uniqueness. Should fix [DONE].
* 'git repack' can be DOSed. Should fix [DONE].
* Stop installing the old-name symlinks [IN 0.99.9].
* 'git merge-projects'?