{"thread":{"id":"8075","subject":"[ANNOUNCE] GIT 1.5.2-rc3","startedAt":"2007-05-11T00:23:04Z","lastAt":"2007-05-11T17:10:55Z","messageCount":8,"participants":["Junio C Hamano","Alexander Litvinov","Martin Waitz","Lars Hjemli"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"41795","messageId":"7virb0gqdz.fsf@assigned-by-dhcp.cox.net","threadId":"8075","inReplyTo":null,"subject":"[ANNOUNCE] GIT 1.5.2-rc3","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-11T00:23:04Z","receivedAt":"2007-05-11T00:23:04Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Upcoming 1.5.2 will have three large-ish new features that the\nuser community wished to have for quite some time.  I usually do\nnot CC the kernel list for -rc releases, but this one will\nhopefully be pretty much the same as what the final one would\nlook like, so here it is.\n\nWe may get around fixing the long standing git-apply corner case\nHPA's rebase problem unveiled before v1.5.2, but we might defer\nit post 1.5.2 (it is not a regression).  We'll see.\n\n----------------------------------------------------------------\n\nGIT v1.5.2 Release Notes (draft)\n========================\n\nUpdates since v1.5.1\n--------------------\n\n* Plumbing level subproject support.\n\n  You can include a subdirectory that has an independent git\n  repository in your index and tree objects as a\n  \"subproject\".  This plumbing (i.e. \"core\") level subproject\n  support explicitly excludes recursive behaviour.\n\n  The \"subproject\" entries in the index and trees are\n  incompatible with older versions of git.  Experimenting with\n  the plumbing level support is encouraged, but be warned that\n  unless everybody in your project updates to this release or\n  later, using this feature would make your project\n  inaccessible by people with older versions of git.\n\n* Plumbing level gitattributes support.\n\n  The gitattributes mechanism allows you to add 'attributes' to\n  paths in your project, and affect the way certain git\n  operations work.  Currently you can influence if a path is\n  considered a binary or text (the former would be treated by\n  'git diff' not to produce textual output; the latter can go\n  through the line endings conversion process in repositories\n  with core.autocrlf set), expand and unexpand '$ident$' keyword\n  with blob object name, specify a custom 3-way merge driver,\n  and specify a custom diff driver.  You can also apply\n  arbitrary filter to contents on check-in/check-out codepath\n  but this feature is an extremely sharp-edged razor and needs\n  to be handled with caution (do not use it unless you\n  understand the earlier mailing list discussion on keyword\n  expansion).\n\n* The packfile format now optionally suports 64-bit index.\n\n  This release supports the \"version 2\" format of the .idx\n  file.  This is automatically enabled when a huge packfile\n  needs more than 32-bit to express offsets of objects in the\n  pack\n\n* Comes with an updated git-gui 0.7.0\n\n* Updated gitweb:\n\n  - can show combined diff for merges;\n  - uses font size of user's preference, not hardcoded in pixels;\n\n* New commands and options.\n\n  - \"git bisect start\" can optionally take a single bad commit and\n    zero or more good commits on the command line.\n\n  - \"git shortlog\" can optionally be told to wrap its output.\n\n  - \"subtree\" merge strategy allows another project to be merged in as\n    your subdirectory.\n\n  - \"git format-patch\" learned a new --subject-prefix=<string>\n    option, to override the built-in \"[PATCH]\".\n\n  - \"git add -u\" is a quick way to do the first stage of \"git\n    commit -a\" (i.e. update the index to match the working\n    tree); it obviously does not make a commit.\n\n  - \"git clean\" honors a new configuration, \"clean.requireforce\".  When\n    set to true, this makes \"git clean\" a no-op, preventing you\n    from losing files by typing \"git clean\" when you meant to\n    say \"make clean\".  You can still say \"git clean -f\" to\n    override this.\n\n  - \"git log\" family of commands learned --date={local,relative,default}\n    option.  --date=relative is synonym to the --relative-date.\n    --date=local gives the timestamp in local timezone.\n\n* Updated behavior of existing commands.\n\n  - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set\n    but $EMAIL is set, the latter is used as a substitute.\n\n  - \"git diff --stat\" shows size of preimage and postimage blobs\n    for binary contents.  Earlier it only said \"Bin\".\n\n  - \"git lost-found\" shows stuff that are unreachable except\n    from reflogs.\n\n  - \"git checkout branch^0\" now detaches HEAD at the tip commit\n    on the named branch, instead of just switching to the\n    branch (use \"git checkout branch\" to switch to the branch,\n    as before).\n\n  - \"git bisect next\" can be used after giving only a bad commit\n    without giving a good one (this starts bisection half-way to\n    the root commit).  We used to refuse to operate without a\n    good and a bad commit.\n\n  - \"git push\", when pushing into more than one repository, does\n    not stop at the first error.\n\n  - \"git archive\" does not insist you to give --format parameter\n    anymore; it defaults to \"tar\".\n\n  - \"git cvsserver\" can use backends other than sqlite.\n\n  - \"gitview\" (in contrib/ section) learned to better support\n    \"git-annotate\".\n\n  - \"git diff $commit1:$path2 $commit2:$path2\" can now report\n    mode changes between the two blobs.\n\n  - Local \"git fetch\" from a repository whose object store is\n    one of the alternates (e.g. fetching from the origin in a\n    repository created with \"git clone -l -s\") avoids\n    downloading objects unnecessary.\n\n  - \"git blame\" uses .mailmap to canonicalize the author name\n    just like \"git shortlog\" does.\n\n  - \"git pack-objects\" pays attention to pack.depth\n    configuration variable.\n\n  - \"git cherry-pick\" and \"git revert\" does not use .msg file in\n    the working tree to prepare commit message; instead it uses\n    $GIT_DIR/MERGE_MSG as other commands.\n\n* Builds\n\n  - git-p4import has never been installed; now there is an\n    installation option to do so.\n\n  - gitk and git-gui can be configured out.\n\n  - Generated documentation pages automatically get version\n    information from GIT_VERSION\n\n  - Parallel build with \"make -j\" descending into subdirectory\n    was fixed.\n\n* Performance Tweaks\n\n  - Optimized \"git-rev-list --bisect\" (hence \"git-bisect\").\n\n  - Optimized \"git-add $path\" in a large directory, most of\n    whose contents are ignored.\n\n  - Optimized \"git-diff-tree\" for reduced memory footprint.\n\n  - The recursive merge strategy updated a worktree file that\n    was changed identically in two branches, when one of them\n    renamed it.  We do not do that when there is no rename, so\n    match that behaviour.\n\n  - The default pack depth has been increased to 50, as the\n    recent addition of delta_base_cache makes deeper delta chains\n    much less expensive to access.\n\n\nFixes since v1.5.1\n------------------\n\nAll of the fixes in v1.5.1 maintenance series are included in\nthis release, unless otherwise noted.\n\n* Bugfixes\n\n  - Switching branches with \"git checkout\" refused to work when\n    a path changes from a file to a directory between the\n    current branch and the new branch, in order not to lose\n    possible local changes in the directory that is being turned\n    into a file with the switch.  We now allow such a branch\n    switch after making sure that there is no locally modified\n    file nor un-ignored file in the directory.  This has not\n    been backported to 1.5.1.x series, as it is rather an\n    intrusive change.\n\n  - Merging branches that have a file in one and a directory in\n    another at the same path used to get quite confused.  We\n    handle such a case a bit more carefully, even though that is\n    still left as a conflict for the user to sort out.  This\n    will not be backported to 1.5.1.x series, as it is rather an\n    intrusive change.\n\n  - git-fetch had trouble with a remote with insanely large number\n    of refs.\n\n  - \"git clean -d -X\" now does not remove non-excluded directories.\n\n* Documentation updates\n\n* Performance Tweaks\n\n----------------------------------------------------------------\n\nChanges since v1.5.2-rc2 are as follows:\n\nAlex Riesen (1):\n      Use GIT_OBJECT_DIR for temporary files of pack-objects\n\nAmos Waterland (1):\n      wcwidth redeclaration\n\nFrank Lichtenheld (1):\n      cvsserver: Add test cases for git-cvsserver\n\nGerrit Pape (1):\n      gitweb: choose appropriate view for file type if a= parameter missing\n\nJ. Bruce Fields (7):\n      user-manual: more discussion of detached heads, fix typos\n      user-manual: add section ID's\n      user-manual: clean up fast-forward and dangling-objects sections\n      user-manual: fix .gitconfig editing examples\n      user-manual: miscellaneous editing\n      user-manual: stop deprecating the manual\n      user-manual: fix clone and fetch typos\n\nJakub Narebski (6):\n      gitweb: Add parsing of raw combined diff format to parse_difftree_raw_line\n      gitweb: Add combined diff support to git_difftree_body\n      gitweb: Add combined diff support to git_patchset_body\n      gitweb: Make it possible to use pre-parsed info in git_difftree_body\n      gitweb: Show combined diff for merge commits in 'commitdiff' view\n      gitweb: Show combined diff for merge commits in 'commit' view\n\nJari Aalto (1):\n      SPECIFYING RANGES typo fix: it it => it is\n\nJeff King (1):\n      Documentation: don't reference non-existent 'git-cvsapplycommit'\n\nJohannes Sixt (1):\n      git-gui: Call changes \"Staged\" and \"Unstaged\" in file list titles.\n\nJunio C Hamano (10):\n      diff: release blobs after generating textual diff.\n      diff.c: do not use a separate \"size cache\".\n      diff -M: release the preimage candidate blobs after rename detection.\n      diff -S: release the image after looking for needle in it\n      GIT v1.5.1.4\n      Update documentation links to point at 1.5.1.4\n      t9400: skip cvsserver test if Perl SQLite interface is unavailable\n      git-clone: don't get fooled by $PWD\n      .mailmap: add some aliases\n      GIT v1.5.2-rc3\n\nMatthieu Moy (2):\n      Document git add -u introduced earlier.\n      Added a reference to git-add in the documentation for git-update-index\n\nMichael Hendricks (1):\n      Document 'git-log --decorate'\n\nMichael Spang (3):\n      dir.c: Omit non-excluded directories with dir->show_ignored\n      t7300: Basic tests for git-clean\n      Fix minor documentation errors\n\nPaul Mackerras (1):\n      gitk: Allow user to choose whether to see the diff, old file, or new file\n\nPetr Baudis (2):\n      Git.pm: config_boolean() -> config_bool()\n      gitweb: Do not use absolute font sizes\n\nQuy Tonthat (2):\n      Add howto files to rpm packages.\n      Added new git-gui library files to rpm spec\n\nRichard P. Curnow (2):\n      Fix documentation of tag in git-fast-import.txt\n      Fix documentation of tag in git-fast-import.txt\n\nShawn O. Pearce (32):\n      git-gui: Correctly handle UTF-8 encoded commit messages\n      git-gui: Allow spaces in path to 'wish'\n      git-gui: Include the subject in the status bar after commit\n      git-gui: Warn users before making an octopus merge\n      git-gui: Correct line wrapping for too many branch message\n      git-gui: Cleanup common font handling for font_ui\n      git-gui: Use option database defaults to set the font\n      git-gui: Refactor to use our git proc more often\n      git-gui: Track our own embedded values and rebuild when they change\n      Properly handle '0' filenames in import-tars\n      git-gui: Refactor into multiple files to save my sanity\n      git-gui: Move console procs into their own namespace\n      git-gui: Allow vi keys to scroll the diff/blame regions\n      git-gui: Move merge support into a namespace\n      git-gui: Show all possible branches for merge\n      git-gui: Include commit id/subject in merge choices\n      git-gui: Use vi-like keys in merge dialog\n      Remove duplicate exports from Makefile\n      git-gui: Allow shift-{k,j} to select a range of branches to merge\n      git-gui: Define a simple class/method system\n      git-gui: Convert browser, console to \"class\" format\n      git-gui: Don't attempt to inline array reads in methods\n      git-gui: Convert blame to the \"class\" way of doing things\n      git-gui: Use prefix if blame is run in a subdirectory\n      git-gui: Smarter command line parsing for browser, blame\n      git-gui: Generate blame on uncommitted working tree file\n      git-gui: Cleanup minor nits in blame code\n      git-gui: Format author/committer times in ISO format\n      Use .git/MERGE_MSG in cherry-pick/revert\n      git-gui: Paperbag fix blame in subdirectory\n      git gui 0.7.0\n      Correct error message in revert/cherry-pick\n\nTheodore Ts'o (2):\n      Add pack.depth option to git-pack-objects.\n      Increase pack.depth default to 50\n"},{"id":"41806","messageId":"200705111023.37676.litvinov2004@gmail.com","threadId":"8075","inReplyTo":"7virb0gqdz.fsf@assigned-by-dhcp.cox.net","subject":"Re: [ANNOUNCE] GIT 1.5.2-rc3","fromName":"Alexander Litvinov","fromEmail":"litvinov2004@gmail.com","sentAt":"2007-05-11T03:23:37Z","receivedAt":"2007-05-11T03:23:37Z","isPatch":false,"sender":{"key":"litvinov2004@gmail.com","avatar":null},"body":"Hello.\n\n> * Plumbing level subproject support.\n>\n>   You can include a subdirectory that has an independent git\n>   repository in your index and tree objects as a\n>   \"subproject\".  This plumbing (i.e. \"core\") level subproject\n>   support explicitly excludes recursive behaviour.\n>\n>   The \"subproject\" entries in the index and trees are\n>   incompatible with older versions of git.  Experimenting with\n>   the plumbing level support is encouraged, but be warned that\n>   unless everybody in your project updates to this release or\n>   later, using this feature would make your project\n>   inaccessible by people with older versions of git.\n\nIs there any help onhow to use subprojects ? I did not found anything at \nDocumentation/ directiory.\n\nThanks for help,\nAlexander Litvinov.\n"},{"id":"41809","messageId":"7vtzukf0h6.fsf@assigned-by-dhcp.cox.net","threadId":"8075","inReplyTo":"200705111023.37676.litvinov2004@gmail.com","subject":"Re: [ANNOUNCE] GIT 1.5.2-rc3","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-11T04:28:05Z","receivedAt":"2007-05-11T04:28:05Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Alexander Litvinov <litvinov2004@gmail.com> writes:\n\n>> * Plumbing level subproject support.\n> ...\n> Is there any help onhow to use subprojects ? I did not found anything at \n> Documentation/ directiory.\n\nSorry, you are expecting too much.\n\nAt this point, plumbing level support is just enough to\nfutureproof and not yet ready for mere mortals who need recipe\nto be spoon-fed.  Documentation needs to be written as well as\nPorcelains need to be put on top of it.\n\nIt is enough to futureproof in the sense that if you fetch from\na remote repository of a project that _uses_ subprojects in its\nobjects, your end will not barf by saying \"oops, I do not know\nabout a tree that can contain commit objects\".\n\nYou can already play with it, though.  Try:\n\n\tgit init ;# in an empty directory\n\n\tmkdir sub\n        cd sub\n        git init\n        echo I am sublevel project >READ.ME\n        git add READ.ME\n        git commit -a -m 'sublevel initial commit'\n        cd .. ;# back to toplevel\n\n        echo I am toplevel project >READ.ME\n        mkdir dir\n        echo hello >dir/world\n        git add .\n        git commit -a -m 'toplevel initial commit'\n\nA subproject in git is nothing but a directory that is a regular\ngit repository by its own right, but \"tied to\" the containing\nrepository.  In this example, 'sub' is such a subproject.\n\nAt this point, if you run \"git ls-tree -r -t HEAD\", you would get\nsomething like this:\n\n        $ git ls-tree -r -t HEAD\n        100644 blob 20a51da49ae274e8e6449b11ffad38bcddfee9f9\tREAD.ME\n        040000 tree dbd05ee6f475f80f28fb3bd4f4be3cec91547add\tdir\n        100644 blob ce013625030ba8dba906f756967f9e9ca394464a\tdir/world\n        160000 commit e502e6978a792adbec7e5e7a76a29a6597bda314\tsub\n\nThe object name for 'sub' is the commit object name at HEAD of\nthe subproject.  Verify it with:\n\n\t$ (cd sub && git-rev-parse HEAD)\"\n\te502e6978a792adbec7e5e7a76a29a6597bda314\n\nThe mode bit 160000 is something new -- git versions prior to\n1.5.2 would not understand it, and fetching from this repository\nwould fail with older tools.  That is what futureproofing is\nmostly about.\n\nNow, let's have a bit of fun by going down to subproject and\nadvance its history.\n\n\tcd sub\n        echo touch it >>READ.ME\n        git commit -a -m 'subproject second commit'\n        cd .. ;# back to toplevel\n\nWhat does that change look like to the toplevel project?\n\n\t$ git diff\n        diff --git a/sub b/sub\n        index e502e69..300e71f 160000\n        --- a/sub\n        +++ b/sub\n        @@ -1 +1 @@\n        -Subproject commit e502e6978a792adbec7e5e7a76a29a6597bda314\n        +Subproject commit 300e71f68d458cdc8ce571b1b720ad16be992be2\n\nThat's right.  The current state of the toplevel project records\nthat subproject was at its initial commit, but now you advanced\nits history and notices the difference.  You could even make a\ncommit to record that the updated subproject state should go\nwith the toplevel.\n\n\techo updated subproject >>READ.ME\n        git commit -a -m 'updated'\n\nI was going to list what still do not work, but this is pretty\nmuch it.  For example, you would expect this to check out\nsubproject in the right state:\n\n\tmv sub sss ;# stash away somewhere\n        git checkout -f\n\nThis \"git checkout\" *recreates* sub/ directory, but it does not\n(yet) run git-init in it, nor check out the named commit (you\ncan find it out with \"git ls-files -s sub\") there.  However, you\ncould at this point do:\n\n\tcd sub\n        git init\n        git pull ../sss\n        cd .. ;# back to toplevel\n\nand running \"git diff\" at the toplevel realizes that nothing has\nchanged.\n        \nIf you are interested, go back to the list archive and start\nreading around April 13th - 15th.  We had quite an active\nweekend; two neat features (subproject and attributes)\nmaterialized almost at the same time.\n"},{"id":"41814","messageId":"200705111330.54312.litvinov2004@gmail.com","threadId":"8075","inReplyTo":"7vtzukf0h6.fsf@assigned-by-dhcp.cox.net","subject":"Re: [ANNOUNCE] GIT 1.5.2-rc3","fromName":"Alexander Litvinov","fromEmail":"litvinov2004@gmail.com","sentAt":"2007-05-11T06:30:54Z","receivedAt":"2007-05-11T06:30:54Z","isPatch":false,"sender":{"key":"litvinov2004@gmail.com","avatar":null},"body":"> Sorry, you are expecting too much.\nNo, that is done is great!\n\nI have tried your test and found that cloning such repo does not clone \nsubprojects. Only empty dir 'sub' is being cloned.\n\n> If you are interested, go back to the list archive and start\n> reading around April 13th - 15th.  We had quite an active\n> weekend; two neat features (subproject and attributes)\n> materialized almost at the same time.\nThanks for the point.\n\nAlexander Litvinov.\n"},{"id":"41815","messageId":"7v1whnesyn.fsf@assigned-by-dhcp.cox.net","threadId":"8075","inReplyTo":"200705111330.54312.litvinov2004@gmail.com","subject":"Re: [ANNOUNCE] GIT 1.5.2-rc3","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-11T07:10:24Z","receivedAt":"2007-05-11T07:10:24Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Alexander Litvinov <litvinov2004@gmail.com> writes:\n\n> I have tried your test and found that cloning such repo does not clone \n> subprojects. Only empty dir 'sub' is being cloned.\n\nYes, that is pretty much intentional.  Having a link for higher\nlayer tools can use (i.e. tree objects can contain 160000 mode\n\"gitlinks\" to subproject commit objects) while not considering\nsuch linkage part of the reachability is the whole point of\nplumbing level subproject support.  It allows people not to\ndownload repositories of uninteresting subprojects.  Higher\nlayer tools such as clone/checkout/diff could be instructed\n(currently they cannot be, though) to recurse into subproject\ndirectories if the user wants to.\n\nA few good pointers for this topic are:\n\n        $gmane/44162\n        $gmane/44308\n"},{"id":"41821","messageId":"20070511090201.GC24971@admingilde.org","threadId":"8075","inReplyTo":"7vtzukf0h6.fsf@assigned-by-dhcp.cox.net","subject":"Re: [ANNOUNCE] GIT 1.5.2-rc3","fromName":"Martin Waitz","fromEmail":"tali@admingilde.org","sentAt":"2007-05-11T09:02:01Z","receivedAt":"2007-05-11T09:02:01Z","isPatch":false,"sender":{"key":"tali@admingilde.org","avatar":"https://gravatar.com/avatar/3f89b03eee362187effabe257898735b475673a12265c398ea9161259ae91553?d=mp&s=160"},"body":"hoi :)\n\nOn Thu, May 10, 2007 at 09:28:05PM -0700, Junio C Hamano wrote:\n> Alexander Litvinov <litvinov2004@gmail.com> writes:\n> \n> >> * Plumbing level subproject support.\n> > ...\n> > Is there any help onhow to use subprojects ? I did not found anything at \n> > Documentation/ directiory.\n> \n> Sorry, you are expecting too much.\n\nPerhaps we should not advertise submodule support that prominently.\nI think we should wait for nice porcelain support before can put it at\nthe top of the release announcements.\nOtherwise we get much too many expectations and too many questions about\nhow to use it.\n\n-- \nMartin Waitz\n"},{"id":"41824","messageId":"8c5c35580705110408g7068e917lb672e1ac56f2c84c@mail.gmail.com","threadId":"8075","inReplyTo":"7v1whnesyn.fsf@assigned-by-dhcp.cox.net","subject":"Re: [ANNOUNCE] GIT 1.5.2-rc3","fromName":"Lars Hjemli","fromEmail":"hjemli@gmail.com","sentAt":"2007-05-11T11:08:36Z","receivedAt":"2007-05-11T11:08:36Z","isPatch":false,"sender":{"key":"hjemli@gmail.com","avatar":null},"body":"On 5/11/07, Junio C Hamano <junkio@cox.net> wrote:\n> Alexander Litvinov <litvinov2004@gmail.com> writes:\n>\n> > I have tried your test and found that cloning such repo does not clone\n> > subprojects. Only empty dir 'sub' is being cloned.\n>\n> Yes, that is pretty much intentional.  Having a link for higher\n> layer tools can use (i.e. tree objects can contain 160000 mode\n> \"gitlinks\" to subproject commit objects) while not considering\n> such linkage part of the reachability is the whole point of\n> plumbing level subproject support.  It allows people not to\n> download repositories of uninteresting subprojects.  Higher\n> layer tools such as clone/checkout/diff could be instructed\n> (currently they cannot be, though) to recurse into subproject\n> directories if the user wants to.\n\nfwiw: I just released cgit 0.3, which includes a script\n(submodules.sh) used to initialize, update and check status of\nsubmodules. It uses the file .gitmodules to map between submodule path\nand git repository url (cgit now uses git as a submodule).\n\nYou can clone the repo here:\n\n  git://hjemli.net/pub/git/cgit\n\njust look at the files here:\n\n  http://hjemli.net/git/cgit/\n\n--\nlarsh\n"},{"id":"41842","messageId":"7vr6pnb80w.fsf@assigned-by-dhcp.cox.net","threadId":"8075","inReplyTo":"20070511090201.GC24971@admingilde.org","subject":"Re: [ANNOUNCE] GIT 1.5.2-rc3","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-05-11T17:10:55Z","receivedAt":"2007-05-11T17:10:55Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Martin Waitz <tali@admingilde.org> writes:\n\n> Perhaps we should not advertise submodule support that prominently.\n> I think we should wait for nice porcelain support before can put it at\n> the top of the release announcements.\n\nI understand your point, but I tend to disagree.\n\n> Otherwise we get much too many expectations and too many questions about\n> how to use it.\n\nActually, that is probably a good thing.\n\nAs we (including you, whose initial work was instrumental to\nstir the discussion that led to the one by Linus) answer them\nhere, we will accumulate bodies of text that describe what can\nbe done today, what are missing, what needs to be recursive and\nwhat approaches we can take in the Porcelains.  Somebody can\nsummarize and write documentation pages and to-do list out of\nthat.\n"}]}