From 7b5f821775fbc6925c8aeff1b2643cd62ea19cff Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 29 Oct 2005 17:51:10 -0700 Subject: [PATCH] GIT 0.99.9 Signed-off-by: Junio C Hamano --- HAVEDONE | 102 +++++++++++++++++++++++++++++++++++++++++---------------- TODO | 111 ++------------------------------------------------------------- 2 files changed, 78 insertions(+), 135 deletions(-) diff --git a/HAVEDONE b/HAVEDONE index 54455589..459dbae3 100644 --- a/HAVEDONE +++ b/HAVEDONE @@ -1,48 +1,96 @@ -Done in 0.99.8 +Done in 0.99.9 ============== +Ports +~~~~~ + +* Cygwin port [HPA]. + +* OpenBSD build [Merlyn and others]. + + +Fixes +~~~~~ + +* clone request over git native protocol from a repository with + too many refs did not work; this has been fixed. + +* git-daemon got safer for kernel.org use [HPA]. + +* Extended SHA1 parser was not enforcing uniqueness for + abbreviated SHA1; this has been fixed. + +* http transport does not barf on funny characters in URL. + +* 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). + + New Features and Commands ~~~~~~~~~~~~~~~~~~~~~~~~~ -* 'git pull' now uses 'git-merge' instead of 'git-resolve', so you can - specify alternative merge strategy to use on its command line. +* .git/config file as a per-repository configuration mechanism, + and some commands understand it [Linus]. See + git(7). -* 'git pull -s recursive' has been taught about renaming merges, - which may deal with HPA's klibc vs klibc-kbuild situation better. +* The core.filemode configuration item can be used to make us a + bit more FAT friendly. See git(7). -* 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. +* The extended SHA1 notation acquired Peel-the-onion operator + ^{type} and ^{}. See git-rev-parse(1). - 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". +* SVN importer [Matthias]. See git-svnimport(1). -* A couple of new diff options (-l and --name-status). +* .git/objects/[0-9a-f]{2} directories are created on demand, + and removed when becomes empty after prune-packed [Linus]. -* Commit walker over http acquired more SSL options. +* 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 clone' checks out the working tree by default. +* 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) -Fixes -~~~~~ +* 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]. -* Removed unused commands (diff-helper, rev-tree, and export). +* git-fetch-pack and git-upload-pack try harder to figure out + better common commits [Johannes]. -* Platforms with only Python 2.3 installed can use recursive merge - strategy. +* git-read-tree -u removes a directory when it makes it empty. -* Octopus documented. +* 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. -* Merge is more careful noticing potentially ambiguous situation. +* 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 pull does not blindly do Octopus when Pull: lines in remotes - file specifies more than one remote branches. +* git-tag takes '-u' to specify the tag signer identity [Linus]. -* Commit walker got safer to use after interrupted downloads. +* git-rev-list can take optional pathspecs to skip commits that + do not touch them (--dense) [Linus]. -* Commit walker over http can resume partial downloads. +* Comes with new and improved gitk [Paulus and Linus]. -* More portability fixes for BSD and Solaris. diff --git a/TODO b/TODO index 15ecb597..6f519193 100644 --- a/TODO +++ b/TODO @@ -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'? -- 2.11.0