{"thread":{"id":"30351","subject":"Subtree in Git","startedAt":"2012-04-27T18:48:31Z","lastAt":"2013-03-04T22:33:23Z","messageCount":35,"participants":["Hilco Wijbenga","dag@cray.com","Herman van Rink","greened@obbligato.org","Daniel Koester","Junio C Hamano","David Michael Barr","James Nylen","Kindjal","Paul Campbell"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"190223","messageId":"CAE1pOi2uT=wipyrOYCwy9QuXnXFV27F1gN3Ej-RaSr-fegQCfA@mail.gmail.com","threadId":"30351","inReplyTo":null,"subject":"Subtree in Git","fromName":"Hilco Wijbenga","fromEmail":"hilco.wijbenga@gmail.com","sentAt":"2012-04-27T18:48:31Z","receivedAt":"2012-04-27T18:48:31Z","isPatch":false,"sender":{"key":"hilco.wijbenga@gmail.com","avatar":null},"body":"Hi all,\n\nDo we have an idea of when subtree support will be a part of Git core?\nI am aware that I can install it separately but I'd like to know if\nthere is something like a timeline or a target Git version number. And\n\"no\", is fine. :-)\n\nCheers,\nHilco\n"},{"id":"190224","messageId":"nngk410vrja.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"CAE1pOi2uT=wipyrOYCwy9QuXnXFV27F1gN3Ej-RaSr-fegQCfA@mail.gmail.com","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-04-27T20:38:49Z","receivedAt":"2012-04-27T20:38:49Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Hilco Wijbenga <hilco.wijbenga@gmail.com> writes:\n\n> Do we have an idea of when subtree support will be a part of Git core?\n> I am aware that I can install it separately but I'd like to know if\n> there is something like a timeline or a target Git version number. And\n> \"no\", is fine. :-)\n\nWe don't know right now.  I want to take a look at Herman's patches\nfirst but have been delayed for various reasons.  I hope to get to that\nthis weekend.  I also want to get at least one release under our belt.\n\n                             -Dave\n"},{"id":"190225","messageId":"CAE1pOi2+FqfsyF3RsQPG4cVMHwXCStgom+8eT3o8MnTesFK6rw@mail.gmail.com","threadId":"30351","inReplyTo":"nngk410vrja.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"Hilco Wijbenga","fromEmail":"hilco.wijbenga@gmail.com","sentAt":"2012-04-27T21:09:38Z","receivedAt":"2012-04-27T21:09:38Z","isPatch":false,"sender":{"key":"hilco.wijbenga@gmail.com","avatar":null},"body":"On 27 April 2012 13:38,  <dag@cray.com> wrote:\n> Hilco Wijbenga <hilco.wijbenga@gmail.com> writes:\n>\n>> Do we have an idea of when subtree support will be a part of Git core?\n>> I am aware that I can install it separately but I'd like to know if\n>> there is something like a timeline or a target Git version number. And\n>> \"no\", is fine. :-)\n>\n> We don't know right now.  I want to take a look at Herman's patches\n> first but have been delayed for various reasons.  I hope to get to that\n> this weekend.  I also want to get at least one release under our belt.\n\nI pretty much expected that. :-) Good luck!\n\nNo worries, I've just installed the latest Subtree from contrib/ so I\ncan play with it. I just don't want to rely on Subtree until I no\nlonger have to tell everyone to install it separately. That's just not\ngoing to fly. :-)\n"},{"id":"190404","messageId":"4F9FA029.7040201@initfour.nl","threadId":"30351","inReplyTo":"nngk410vrja.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-05-01T08:34:49Z","receivedAt":"2012-05-01T08:34:49Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 27-04-12 22:38, dag@cray.com wrote:\n> Hilco Wijbenga <hilco.wijbenga@gmail.com> writes:\n>\n>> Do we have an idea of when subtree support will be a part of Git core?\n>> I am aware that I can install it separately but I'd like to know if\n>> there is something like a timeline or a target Git version number. And\n>> \"no\", is fine. :-)\n> We don't know right now.  I want to take a look at Herman's patches\n> first but have been delayed for various reasons.  I hope to get to that\n> this weekend.  I also want to get at least one release under our belt.\n\nI've worked on this a bit over the weekend.\n\nI've forked the main git repo  on github to merge my tree on top of that.\n\nI basically did a: git subtree merge --prefix=contrib/subtree <my\ngit-subtree branch>\n\nThe work in progress in on: https://github.com/helmo/git (the\nsubtree-updates branch)\n\nRentzsch supplied a patch to get the original test.sh up and running again.\nThis will make it easier to get the tests in t7900-subtree.sh updated.\n\n-- \nMet vriendelijke groet / Regards,\n\nHerman van Rink \nInitfour websolutions\n"},{"id":"190712","messageId":"87fwbgbs0h.fsf@smith.obbligato.org","threadId":"30351","inReplyTo":"4F9FA029.7040201@initfour.nl","subject":"Re: Subtree in Git","fromName":"","fromEmail":"greened@obbligato.org","sentAt":"2012-05-04T02:26:54Z","receivedAt":"2012-05-04T02:26:54Z","isPatch":false,"sender":{"key":"greened@obbligato.org","avatar":"https://avatars.githubusercontent.com/u/5291869?v=4"},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n>> We don't know right now.  I want to take a look at Herman's patches\n>> first but have been delayed for various reasons.  I hope to get to that\n>> this weekend.  I also want to get at least one release under our belt.\n>\n> I've worked on this a bit over the weekend.\n>\n> I've forked the main git repo  on github to merge my tree on top of that.\n>\n> I basically did a: git subtree merge --prefix=contrib/subtree <my\n> git-subtree branch>\n>\n> The work in progress in on: https://github.com/helmo/git (the\n> subtree-updates branch)\n\nThis branch seems to have a bunch of commits from master or some other\nbranch:\n\non master:\ngit log subtree-updates --not HEAD\n\n[...some git-subtree stuff...]\ncommit 10d4332e007132a38dc61f03c760d355da5cd550\nAuthor: Junio C Hamano <gitster@pobox.com>\nDate:   Sun Apr 29 18:00:47 2012 -0700\n\n    The seventh batch of topics graduated to 'master'\n    \n    Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\ncommit a75aba4a5306d0fee6a8ee8b48943e2c19eb2750\nMerge: 55375e9 46e3581\nAuthor: Junio C Hamano <gitster@pobox.com>\nDate:   Sun Apr 29 17:52:02 2012 -0700\n\n    Merge branch 'js/daemon-test-race-fix'\n[...]\n\nPerhaps I'm doing something wrong.  Or does the subtree-updates branch\nneed to be refreshed?\n\n                               -Dave\n"},{"id":"190742","messageId":"4FA3AA8C.9030202@initfour.nl","threadId":"30351","inReplyTo":"87fwbgbs0h.fsf@smith.obbligato.org","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-05-04T10:08:12Z","receivedAt":"2012-05-04T10:08:12Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 04-05-12 04:26, greened@obbligato.org wrote:\n> Herman van Rink <rink@initfour.nl> writes:\n>\n>>> We don't know right now.  I want to take a look at Herman's patches\n>>> first but have been delayed for various reasons.  I hope to get to that\n>>> this weekend.  I also want to get at least one release under our belt.\n>> I've worked on this a bit over the weekend.\n>>\n>> I've forked the main git repo  on github to merge my tree on top of that.\n>>\n>> I basically did a: git subtree merge --prefix=contrib/subtree <my\n>> git-subtree branch>\n>>\n>> The work in progress in on: https://github.com/helmo/git (the\n>> subtree-updates branch)\n> This branch seems to have a bunch of commits from master or some other\n> branch:\n>\n> on master:\n> git log subtree-updates --not HEAD\n>\n> [...some git-subtree stuff...]\n> commit 10d4332e007132a38dc61f03c760d355da5cd550\n> Author: Junio C Hamano <gitster@pobox.com>\n> Date:   Sun Apr 29 18:00:47 2012 -0700\n>\n>     The seventh batch of topics graduated to 'master'\n>     \n>     Signed-off-by: Junio C Hamano <gitster@pobox.com>\n>\n> commit a75aba4a5306d0fee6a8ee8b48943e2c19eb2750\n> Merge: 55375e9 46e3581\n> Author: Junio C Hamano <gitster@pobox.com>\n> Date:   Sun Apr 29 17:52:02 2012 -0700\n>\n>     Merge branch 'js/daemon-test-race-fix'\n> [...]\n>\n> Perhaps I'm doing something wrong.  Or does the subtree-updates branch\n> need to be refreshed?\n\nStrange, I did fork the git/git repo on April 29 though.\nAs far as I know I branched from master and merged the subtree stuff\nontop of that.\n\nI've now merged master, fixed some whitespace and pushed my\nsubtree-updates branch again.\n\nAnd I get a nice diff from: git diff gitgit/master..subtree-updates\n\n-- \nMet vriendelijke groet / Regards,\n\nHerman van Rink \nInitfour websolutions\n"},{"id":"190809","messageId":"20120504224312.GA99879@hyve.org","threadId":"30351","inReplyTo":"nngk410vrja.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"Daniel Koester","fromEmail":"dk@hyve.org","sentAt":"2012-05-04T22:50:09Z","receivedAt":"2012-05-04T22:50:09Z","isPatch":false,"sender":{"key":"dk@hyve.org","avatar":null},"body":"Hey Dave,\n\ni am afraid my english is not sufficient enough to fully grasp your\nstatement:\n\n> I also want to get at least one release under our belt.\n\nCould you please elaborate on this?\n\nI too would very much like to use git subtree, especially with the\nchanges from gith.com/helmo/git and recommend it to\nfriends/colleagues once/if it is merged into mainline.\n\nThank you,\ndk\n"},{"id":"190820","messageId":"7v8vh78dag.fsf@alter.siamese.dyndns.org","threadId":"30351","inReplyTo":"87fwbgbs0h.fsf@smith.obbligato.org","subject":"Re: Subtree in Git","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-05T04:25:27Z","receivedAt":"2012-05-05T04:25:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"greened@obbligato.org writes:\n\n>> I basically did a: git subtree merge --prefix=contrib/subtree <my\n>> git-subtree branch>\n>>\n>> The work in progress in on: https://github.com/helmo/git (the\n>> subtree-updates branch)\n>\n> This branch seems to have a bunch of commits from master or some other\n> branch:\n\nIsn't the confusing shape of the history a direct result of what Herman\nsaid he did above, i.e. use of \"subtree merge\"?  I thought that we agreed\nnot to do any more subtree merges for further updates when we slurped the\nsubtree history to contrib/ early in this cycle, so if that is the case,\nHerman needs to rebase his work so that the integration will not need any\n\"subtree merge\" into git.git, perhaps?\n\nI looked at various branches found with ls-remote in that repository but I\ncouldn't quite tell which is what, with too many cross merges, among which\nthere are unnecessary duplicated commits (e.g. 90275824 and b9a745f7 seems\nto be two equivalent commits) and questionable changes from the overall\nproject's point of view.\n\nFor example, it renames git-subtree.txt to README.md at a4416ee; while I\nfind the idea of departing from asciidoc somewhat attractive (perhaps this\nis only because I haven't been burned by markdown yet), if \"git subtree\"\nwants to live in the git.git repository, that change is a regression.\nLater the file is renamed back to git-subtree.txt (README.md is lost) at\n9ffdeb, a commit with a single-liner \"fixing typo\" log message adds the\nREADME.md file with full contents of git-subtree.txt again at d9ccd03b,\nand then later merge of the branch at 8861de28 finally decides to revert\nthat to have a shorter README.md that the history originally had, or\nsomething.  In short, it is a mess.\n\nNot very impressed, but I have this suspition that the history I was\nlooking at was not what was meant to be sent to me and an older\nincarnation of the project before Herman cleaned it up for public\nconsumption, or something.\n\nConfused...\n"},{"id":"191005","messageId":"nng8vh4yq3f.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"7v8vh78dag.fsf@alter.siamese.dyndns.org","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-05-07T15:21:08Z","receivedAt":"2012-05-07T15:21:08Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n>> This branch seems to have a bunch of commits from master or some other\n>> branch:\n>\n> Isn't the confusing shape of the history a direct result of what Herman\n> said he did above, i.e. use of \"subtree merge\"?  I thought that we agreed\n> not to do any more subtree merges for further updates when we slurped the\n> subtree history to contrib/ early in this cycle, so if that is the case,\n> Herman needs to rebase his work so that the integration will not need any\n> \"subtree merge\" into git.git, perhaps?\n\nI think you're right.\n\n> In short, it is a mess.\n\nI agree.  I think Herman is working to fix it.  A rebase and rework of\nthe patch set would be very helpful.\n\n> Not very impressed, but I have this suspition that the history I was\n> looking at was not what was meant to be sent to me and an older\n> incarnation of the project before Herman cleaned it up for public\n> consumption, or something.\n\nThat's the impression I got as well.\n\nI haven't had a chance to look at Herman's latest tree.\n\n                            -Dave\n"},{"id":"191029","messageId":"4FA82799.1020400@initfour.nl","threadId":"30351","inReplyTo":"7v8vh78dag.fsf@alter.siamese.dyndns.org","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-05-07T19:50:49Z","receivedAt":"2012-05-07T19:50:49Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 05/05/2012 06:25 AM, Junio C Hamano wrote:\n> greened@obbligato.org writes:\n>\n>>> I basically did a: git subtree merge --prefix=contrib/subtree <my\n>>> git-subtree branch>\n>>>\n>>> The work in progress in on: https://github.com/helmo/git (the\n>>> subtree-updates branch)\n>> This branch seems to have a bunch of commits from master or some other\n>> branch:\n> Isn't the confusing shape of the history a direct result of what Herman\n> said he did above, i.e. use of \"subtree merge\"?  I thought that we agreed\n> not to do any more subtree merges for further updates when we slurped the\n> subtree history to contrib/ early in this cycle, so if that is the case,\n> Herman needs to rebase his work so that the integration will not need any\n> \"subtree merge\" into git.git, perhaps?\n>\n> I looked at various branches found with ls-remote in that repository but I\n> couldn't quite tell which is what, with too many cross merges, among which\n> there are unnecessary duplicated commits (e.g. 90275824 and b9a745f7 seems\n> to be two equivalent commits) and questionable changes from the overall\n> project's point of view.\n>\n> For example, it renames git-subtree.txt to README.md at a4416ee; while I\n> find the idea of departing from asciidoc somewhat attractive (perhaps this\n> is only because I haven't been burned by markdown yet), if \"git subtree\"\n> wants to live in the git.git repository, that change is a regression.\n> Later the file is renamed back to git-subtree.txt (README.md is lost) at\n> 9ffdeb, a commit with a single-liner \"fixing typo\" log message adds the\n> README.md file with full contents of git-subtree.txt again at d9ccd03b,\n> and then later merge of the branch at 8861de28 finally decides to revert\n> that to have a shorter README.md that the history originally had, or\n> something.  In short, it is a mess.\n>\n> Not very impressed, but I have this suspition that the history I was\n> looking at was not what was meant to be sent to me and an older\n> incarnation of the project before Herman cleaned it up for public\n> consumption, or something.\n>\n> Confused...\n\nI agree that it's a messy history.  It the result of the many painful\nmerges I did. In various stages a conflicting indentation and other\nchanges made it painful to get a clean merge.\nIn an attempt to get through this in a pragmatic way the history has\ntaken some damage.\n\nBefore  starting this latest subtree merge I actually tried to rebase.\nHowever this failed very quickly, on the I think third commit out of 60,\nlanding me in conflict resolution as I had already been through.\nI'd love to improve git but this was just taking too mush effort.\nWhen I saw the quick result from subtree merge that seemed like a good\nthing.\n\nWouldn't a good rebase have almost just as messy a history as the\nsubtree merge?\n\nAs an alternative I've now applied a patch with all changes on a clean\nmaster branch.\nIn the commit message I've named all committers from the original history.\nWould that be acceptable?\nIts now available as https://github.com/helmo/git/tree/subtree-updates\nThe subtree merge version is still available as\nhttps://github.com/helmo/git/tree/subtree-updates-merged\n\n-- \n\nMet vriendelijke groet / Regards,\n\nHerman van Rink\nInitfour websolutions\n"},{"id":"191046","messageId":"nngzk9jvemb.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"4FA82799.1020400@initfour.nl","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-05-07T21:57:16Z","receivedAt":"2012-05-07T21:57:16Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n> As an alternative I've now applied a patch with all changes on a clean\n> master branch.\n> In the commit message I've named all committers from the original history.\n> Would that be acceptable?\n\nSeems ok to me but Junio has the final say.\n\n> Its now available as https://github.com/helmo/git/tree/subtree-updates\n> The subtree merge version is still available as\n> https://github.com/helmo/git/tree/subtree-updates-merged\n\nCool.  I'll take a look, probably Wednesday at the earliest.\n\n                            -Dave\n"},{"id":"191415","messageId":"7vaa1elb4t.fsf@alter.siamese.dyndns.org","threadId":"30351","inReplyTo":"nngzk9jvemb.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-11T20:24:02Z","receivedAt":"2012-05-11T20:24:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"<dag@cray.com> writes:\n\n> Herman van Rink <rink@initfour.nl> writes:\n>\n>> As an alternative I've now applied a patch with all changes on a clean\n>> master branch.\n>> In the commit message I've named all committers from the original history.\n>> Would that be acceptable?\n>\n> Seems ok to me but Junio has the final say.\n\nWhat we do *not* want to see are merges from commits after the \"subtree\"\nstuff is moved down to \"contrib/subtree\" into commits before the merge\nhappened, as that would mean \"constant renaming merge\" mess in the history\n(see http://article.gmane.org/gmane.comp.version-control.git/197689 as\nwell).\n\nIf it is too much trouble to clean up the history, it is OK to leave\n\"oops, an earlier one was a total mistake but it is too late to rewind the\ntree, so here is a fixup\" commits.  At the very least, however, it should\nbe possible to clean up the history to pretend that everything has\nhappened _after_ the \"git-subtree\" project transitioned to have its files\nunder \"contrib/subtree\" hierarchy in preparation for eventually becoming a\npart of the core git, no?  Then the back-merges from your tree to Herman's\nwill be merging updates to contrib/subtree part into contrib/subtree part,\nand \"git log contrib/subtree\" will give us a readable output.\n\nI thought \"subtree\" was a tool to make it very easy to let you pretend\nthat everything happened in the context of containing larger tree when you\nwanted to, so I am hoping that is not asking too much (even a subtree\nunaware \"filter-branch\" should be able to do that kind of thing, I would\nthink).\n\nThanks.\n"},{"id":"191991","messageId":"nngaa0z3p8b.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"nngzk9jvemb.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-05-23T15:13:08Z","receivedAt":"2012-05-23T15:13:08Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"<dag@cray.com> writes:\n\n>> Its now available as https://github.com/helmo/git/tree/subtree-updates\n>> The subtree merge version is still available as\n>> https://github.com/helmo/git/tree/subtree-updates-merged\n>\n> Cool.  I'll take a look, probably Wednesday at the earliest.\n\nAck.  Sorry, I got sidetracked by home repair issues.  This is still on\nmy radar.  Just wanted to let you know I haven't forgotten.\n\n                             -Dave\n"},{"id":"193408","messageId":"87bokpxqoq.fsf@smith.obbligato.org","threadId":"30351","inReplyTo":"nngaa0z3p8b.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"","fromEmail":"greened@obbligato.org","sentAt":"2012-06-12T01:30:13Z","receivedAt":"2012-06-12T01:30:13Z","isPatch":false,"sender":{"key":"greened@obbligato.org","avatar":"https://avatars.githubusercontent.com/u/5291869?v=4"},"body":"<dag@cray.com> writes:\n\n> <dag@cray.com> writes:\n>\n>>> Its now available as https://github.com/helmo/git/tree/subtree-updates\n>>> The subtree merge version is still available as\n>>> https://github.com/helmo/git/tree/subtree-updates-merged\n>>\n>> Cool.  I'll take a look, probably Wednesday at the earliest.\n>\n> Ack.  Sorry, I got sidetracked by home repair issues.  This is still on\n> my radar.  Just wanted to let you know I haven't forgotten.\n\nOk, I FINALLY got a look at this (yay!).  Some comments:\n\nCan you put each of these changes in its own commit?\n\n    Collected subtree updates\n    \n    These include:\n     * a .gittrees file with meta data\n     * new sub commands (push-all, pull-all, from-submodule, prune, diff, list)\n     * Documentation updates\n\nIt's hard to tell what's what with one big diff.  Each command should\nget its own commit plus more if infrastructure work has to be done.  I\nrealize it's a bit of a pain to reformulate this but git rebase -i makes\nit easy and the history will be much better long-term.\n\nEach command should be described briefly in the commit log.\n\nSome questions/comments:\n\n- Is .gittrees the right solution?  I like the feature it provides but\n  an external file feels a bit hacky.  I wonder if there is a better way\n  to track this metadata.  Notes maybe?  Other git experts will have to\n  chime in with suggestions.\n\n\n+               # this is ugly, but I don't know of a better way to do it. My git-fu is weak.\n+               # git diff-tree expects a treeish, but I have only a repository and branch name.\n+               # I don't know how to turn that into a treeish without creating a remote.\n+               # Please change this if you know a better way!\n\n- Anyone know a better way?  :)\n\n\n+               if [ $# -eq 1 ]; then\n+                       repository=$(git config -f .gittrees subtree.$prefix.url)\n+                       refspec=$1\n+               elif [ $# -eq 2 ]; then\n+                       repository=$1\n+                       refspec=$2\n+               else\n+                       repository=$(git config -f .gittrees subtree.$prefix.url)\n+                       refspec=$(git config -f .gittrees subtree.$prefix.branch)\n+               fi\n\n- This code seems to be repeated a lot.  Maybe it should be a utility\n  function.\n\n\n<more>\n+check_not()\n+{\n+       echo\n+       echo \"check: NOT \" \"$@\"\n+       if \"$@\"; then\n+               echo FAILED\n+               exit 1\n+       else\n+               echo ok\n+               return 0\n+       fi\n+}\n+\n+check_equal()\n+{\n+       echo\n+       echo \"check a:\" \"{$1}\"\n+       echo \"      b:\" \"{$2}\"\n+       if [ \"$1\" = \"$2\" ]; then\n+               return 0\n+       else\n+               echo FAILED\n+               exit 1\n+       fi\n+}\n<more>\n\n- I removed all this stuff in favor of the test library.  Please don't\n  reintroduce it.  These new tests will have to be rewritten in terms of\n  the existing test infrastructure.  It's not too hard.\n\nI like the features introduced here.  The code and tests need a bit of\ncleanup and they really should be split into multiple commits.\n\nThanks for working on this!\n\n                                   -Dave\n"},{"id":"193407","messageId":"877gvdxqkf.fsf@smith.obbligato.org","threadId":"30351","inReplyTo":"20120504224312.GA99879@hyve.org","subject":"Re: Subtree in Git","fromName":"","fromEmail":"greened@obbligato.org","sentAt":"2012-06-12T01:32:48Z","receivedAt":"2012-06-12T01:32:48Z","isPatch":false,"sender":{"key":"greened@obbligato.org","avatar":"https://avatars.githubusercontent.com/u/5291869?v=4"},"body":"Daniel Koester <dk@hyve.org> writes:\n\n> i am afraid my english is not sufficient enough to fully grasp your\n> statement:\n>\n>> I also want to get at least one release under our belt.\n>\n> Could you please elaborate on this?\n\nSorry about my use of English idioms.  :)\n\nI want to make sure that we get an official git release with subtree in\ncontrib/ before we move it to the top level.  That way, we've gone\nthough a whole test/release cycle and are fairly confident it all works\ncorrectly.\n\n> I too would very much like to use git subtree, especially with the\n> changes from gith.com/helmo/git and recommend it to\n> friends/colleagues once/if it is merged into mainline.\n\nOh, me too.  We have the same goals!\n\n                          -Dave\n"},{"id":"193538","messageId":"4FD89383.70003@initfour.nl","threadId":"30351","inReplyTo":"87bokpxqoq.fsf@smith.obbligato.org","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-06-13T13:20:03Z","receivedAt":"2012-06-13T13:20:03Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 12-06-12 03:30, greened@obbligato.org wrote:\n> <dag@cray.com> writes:\n>\n>> <dag@cray.com> writes:\n>>\n>>>> Its now available as https://github.com/helmo/git/tree/subtree-updates\n>>>> The subtree merge version is still available as\n>>>> https://github.com/helmo/git/tree/subtree-updates-merged\n>>> Cool.  I'll take a look, probably Wednesday at the earliest.\n>> Ack.  Sorry, I got sidetracked by home repair issues.  This is still on\n>> my radar.  Just wanted to let you know I haven't forgotten.\n> Ok, I FINALLY got a look at this (yay!).  Some comments:\n>\n> Can you put each of these changes in its own commit?\n>\n>     Collected subtree updates\n>     \n>     These include:\n>      * a .gittrees file with meta data\n>      * new sub commands (push-all, pull-all, from-submodule, prune, diff, list)\n>      * Documentation updates\n>\n> It's hard to tell what's what with one big diff.  Each command should\n> get its own commit plus more if infrastructure work has to be done.  I\n> realize it's a bit of a pain to reformulate this but git rebase -i makes\n> it easy and the history will be much better long-term.\n>\n> Each command should be described briefly in the commit log.\n\nThat would indeed be nice, but as some parts interdependent it would be\nrather complicated.\nAnd what is the use if their not fully independently testable.\n\nIf you want to fake a nice history tree then go ahead, I just don't have\nthe energy to go through these commits again just for that.\n\n\n> Some questions/comments:\n>\n> - Is .gittrees the right solution?  I like the feature it provides but\n>   an external file feels a bit hacky.  I wonder if there is a better way\n>   to track this metadata.  Notes maybe?  Other git experts will have to\n>   chime in with suggestions.\n\nIt's similar to what git submodule does. And when you add this file to\nthe index you can use it on other checkouts as well.\n\n>\n>\n> +               # this is ugly, but I don't know of a better way to do it. My git-fu is weak.\n> +               # git diff-tree expects a treeish, but I have only a repository and branch name.\n> +               # I don't know how to turn that into a treeish without creating a remote.\n> +               # Please change this if you know a better way!\n>\n> - Anyone know a better way?  :)\n>\n>\n> +               if [ $# -eq 1 ]; then\n> +                       repository=$(git config -f .gittrees subtree.$prefix.url)\n> +                       refspec=$1\n> +               elif [ $# -eq 2 ]; then\n> +                       repository=$1\n> +                       refspec=$2\n> +               else\n> +                       repository=$(git config -f .gittrees subtree.$prefix.url)\n> +                       refspec=$(git config -f .gittrees subtree.$prefix.branch)\n> +               fi\n>\n> - This code seems to be repeated a lot.  Maybe it should be a utility\n>   function.\n\nYes that's there three times...\n \n>\n>\n> <more>\n> +check_not()\n> +{\n> +       echo\n> +       echo \"check: NOT \" \"$@\"\n> +       if \"$@\"; then\n> +               echo FAILED\n> +               exit 1\n> +       else\n> +               echo ok\n> +               return 0\n> +       fi\n> +}\n> +\n> +check_equal()\n> +{\n> +       echo\n> +       echo \"check a:\" \"{$1}\"\n> +       echo \"      b:\" \"{$2}\"\n> +       if [ \"$1\" = \"$2\" ]; then\n> +               return 0\n> +       else\n> +               echo FAILED\n> +               exit 1\n> +       fi\n> +}\n> <more>\n>\n> - I removed all this stuff in favor of the test library.  Please don't\n>   reintroduce it.  These new tests will have to be rewritten in terms of\n>   the existing test infrastructure.  It's not too hard.\n\nI've left it in to be able to verify your new tests. Once all the new\ntests are passing we can get rid of the old one, not before.\nAnd as all the old tests are contained in test.sh it should not interfere...\n\n>\n> I like the features introduced here.  The code and tests need a bit of\n> cleanup and they really should be split into multiple commits.\n>\n> Thanks for working on this!\n>\n>                                    -Dave\n>\n\n\n-- \nMet vriendelijke groet / Regards,\n\nHerman van Rink \nInitfour websolutions\n"},{"id":"194917","messageId":"nng4npe6zsj.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"4FD89383.70003@initfour.nl","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-07-11T16:14:04Z","receivedAt":"2012-07-11T16:14:04Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n>> It's hard to tell what's what with one big diff.  Each command should\n>> get its own commit plus more if infrastructure work has to be done.  I\n>> realize it's a bit of a pain to reformulate this but git rebase -i makes\n>> it easy and the history will be much better long-term.\n>>\n>> Each command should be described briefly in the commit log.\n>\n> That would indeed be nice, but as some parts interdependent it would be\n> rather complicated.\n\nDo the interdependent parts first, then.  These should be pure\ninfrastructure.\n\n> And what is the use if their not fully independently testable.\n\nThe command should be testable as soon as they are fully implemented,\nno?\n\nI'm thinking about a sequence like this:\n\n- Infrastructure for command A (and possibly B, C, etc. if they are\n  interdependent).\n- Command A + tests\n- Infrastructure for command B\n- Command B + tests\n- etc.\n\n> If you want to fake a nice history tree then go ahead, I just don't have\n> the energy to go through these commits again just for that.\n\nWell, I can't do this either, both because it would take time to get up\nto speed on the patches and because I have a million other things going\non at the moment.  So unfortunately, this is going to sit until someone\ncan take it up.\n\nUnless Junio accepts your patches, of course.  :)\n\n>> Some questions/comments:\n>>\n>> - Is .gittrees the right solution?  I like the feature it provides but\n>>   an external file feels a bit hacky.  I wonder if there is a better way\n>>   to track this metadata.  Notes maybe?  Other git experts will have to\n>>   chime in with suggestions.\n>\n> It's similar to what git submodule does. And when you add this file to\n> the index you can use it on other checkouts as well.\n\nWell, I guess I'm not strongly opposed, I was just asking the question.\n\n>> - This code seems to be repeated a lot.  Maybe it should be a utility\n>>   function.\n>\n> Yes that's there three times...\n\nSo you agree it should be factored?\n\n>> - I removed all this stuff in favor of the test library.  Please don't\n>>   reintroduce it.  These new tests will have to be rewritten in terms of\n>>   the existing test infrastructure.  It's not too hard.\n>\n> I've left it in to be able to verify your new tests. Once all the new\n> tests are passing we can get rid of the old one, not before.\n> And as all the old tests are contained in test.sh it should not interfere...\n\nNo, I'm very strongly against putting this back in.  The new tests will\nhave to be updated to the upstream test infrastructure.\n\n                                      -Dave\n"},{"id":"201601","messageId":"50830374.9090308@initfour.nl","threadId":"30351","inReplyTo":"nng4npe6zsj.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-10-20T20:03:00Z","receivedAt":"2012-10-20T20:03:00Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 07/11/2012 06:14 PM, dag@cray.com wrote:\n> Herman van Rink <rink@initfour.nl> writes:\n>\n>>> It's hard to tell what's what with one big diff.  Each command should\n>>> get its own commit plus more if infrastructure work has to be done.  I\n>>> realize it's a bit of a pain to reformulate this but git rebase -i makes\n>>> it easy and the history will be much better long-term.\n>>>\n>>> Each command should be described briefly in the commit log.\n>> That would indeed be nice, but as some parts interdependent it would be\n>> rather complicated.\n> Do the interdependent parts first, then.  These should be pure\n> infrastructure.\n>\n>> And what is the use if their not fully independently testable.\n> The command should be testable as soon as they are fully implemented,\n> no?\n>\n> I'm thinking about a sequence like this:\n>\n> - Infrastructure for command A (and possibly B, C, etc. if they are\n>   interdependent).\n> - Command A + tests\n> - Infrastructure for command B\n> - Command B + tests\n> - etc.\n>\n>> If you want to fake a nice history tree then go ahead, I just don't have\n>> the energy to go through these commits again just for that.\n> Well, I can't do this either, both because it would take time to get up\n> to speed on the patches and because I have a million other things going\n> on at the moment.  So unfortunately, this is going to sit until someone\n> can take it up.\n>\n> Unless Junio accepts your patches, of course.  :)\n\nJunio, Could you please consider merging the single commit from my\nsubtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n\nI've seen a few reactions on the git userlist refer to issues which have\nlong been solved in these collected updates.\n\n\n>\n>>> Some questions/comments:\n>>>\n>>> - Is .gittrees the right solution?  I like the feature it provides but\n>>>   an external file feels a bit hacky.  I wonder if there is a better way\n>>>   to track this metadata.  Notes maybe?  Other git experts will have to\n>>>   chime in with suggestions.\n>> It's similar to what git submodule does. And when you add this file to\n>> the index you can use it on other checkouts as well.\n> Well, I guess I'm not strongly opposed, I was just asking the question.\n>\n>>> - This code seems to be repeated a lot.  Maybe it should be a utility\n>>>   function.\n>> Yes that's there three times...\n> So you agree it should be factored?\n>\n>>> - I removed all this stuff in favor of the test library.  Please don't\n>>>   reintroduce it.  These new tests will have to be rewritten in terms of\n>>>   the existing test infrastructure.  It's not too hard.\n>> I've left it in to be able to verify your new tests. Once all the new\n>> tests are passing we can get rid of the old one, not before.\n>> And as all the old tests are contained in test.sh it should not interfere...\n> No, I'm very strongly against putting this back in.  The new tests will\n> have to be updated to the upstream test infrastructure.\n>\n>                                       -Dave\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n>\n\n\n-- \n\nMet vriendelijke groet / Regards,\n\nHerman van Rink\nInitfour websolutions\n"},{"id":"201618","messageId":"7vbofwgwso.fsf@alter.siamese.dyndns.org","threadId":"30351","inReplyTo":"50830374.9090308@initfour.nl","subject":"Re: Subtree in Git","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-10-21T06:32:23Z","receivedAt":"2012-10-21T06:32:23Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n> Junio, Could you please consider merging the single commit from my\n> subtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n\nIn general, in areas like contrib/ where there is a volunteer area\nmaintainer, unless the change something ultra-urgent (e.g. serious\nsecurity fix) and the area maintainer is unavailable, I'm really\nreluctant to bypass and take a single patch that adds many things\nthat are independent from each other.\n\nEspecially not immediately before tagging 1.8.0 final.\n"},{"id":"201632","messageId":"5084102A.2010006@initfour.nl","threadId":"30351","inReplyTo":"7vbofwgwso.fsf@alter.siamese.dyndns.org","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-10-21T15:09:30Z","receivedAt":"2012-10-21T15:09:30Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 10/21/2012 08:32 AM, Junio C Hamano wrote:\n> Herman van Rink <rink@initfour.nl> writes:\n>\n>> Junio, Could you please consider merging the single commit from my\n>> subtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n> In general, in areas like contrib/ where there is a volunteer area\n> maintainer, unless the change something ultra-urgent (e.g. serious\n> security fix) and the area maintainer is unavailable, I'm really\n> reluctant to bypass and take a single patch that adds many things\n> that are independent from each other.\n\nWho do you see as volunteer area maintainer for contrib/subtree?\nMy best guess would be Dave. And he already indicated earlier in the\nthread to be ok with the combined patch as long as you are ok with it.\n\n>\n> Especially not immediately before tagging 1.8.0 final.\n\nSure, we've waited this long... I don't mind waiting one more release cycle.\n\n-- \n\nMet vriendelijke groet / Regards,\n\nHerman van Rink\nInitfour websolutions\n"},{"id":"201647","messageId":"7vfw57fvtl.fsf@alter.siamese.dyndns.org","threadId":"30351","inReplyTo":"5084102A.2010006@initfour.nl","subject":"Re: Subtree in Git","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-10-21T19:51:02Z","receivedAt":"2012-10-21T19:51:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n> On 10/21/2012 08:32 AM, Junio C Hamano wrote:\n>> Herman van Rink <rink@initfour.nl> writes:\n>>\n>>> Junio, Could you please consider merging the single commit from my\n>>> subtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n>> In general, in areas like contrib/ where there is a volunteer area\n>> maintainer, unless the change something ultra-urgent (e.g. serious\n>> security fix) and the area maintainer is unavailable, I'm really\n>> reluctant to bypass and take a single patch that adds many things\n>> that are independent from each other.\n>\n> Who do you see as volunteer area maintainer for contrib/subtree?\n> My best guess would be Dave. And he already indicated earlier in the\n> thread to be ok with the combined patch as long as you are ok with it.\n\nYes, dag volunteered to be the area maintainer to act as a\ngatekeeper for me.\n\nThe message you addressed to me was sent as a response to his\nmessage, where he gave you specific suggestions to improve the patch\nand turn it into a readable series instead of a single ball of wax\nand it looked to me as if you are trying to bypass him and shove the\nsingle ball of wax to our history over his objection.\n\nI haven't formed an opinion on the particular change as to how bad\nits collapsing unrelated changes into a single change is. Maybe they\nare not as unrelated and form a coherent whole.  Maybe not.  Also I\npersonally do not mind too much if the area maintainer for contrib/\nhas a lower standard for atomicity of commits compared to the rest\nof the system.  But I do prefer the decision to be made at the level\nof area maintainer's, and have issues when people try to bypass\nwithout a good reason.\n\nNote that I was not following the thread very closely, so I may have\nmisread the discussion.  I read his \"Unless Junio accepts...\" to\nmean \"I (dag) still object, but if Junio accepts that patch I object\nto directly, there is nothing I can do about it\".  That is very\ndifferent from \"I am on the fence and cannot decide it is a good\npatch or not.  I'll let Junio decide; I am OK as long as he is\".\n\nThanks.\n"},{"id":"201651","messageId":"508459B3.6030403@initfour.nl","threadId":"30351","inReplyTo":"7vfw57fvtl.fsf@alter.siamese.dyndns.org","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-10-21T20:23:15Z","receivedAt":"2012-10-21T20:23:15Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 10/21/2012 09:51 PM, Junio C Hamano wrote:\n> Herman van Rink <rink@initfour.nl> writes:\n>\n>> On 10/21/2012 08:32 AM, Junio C Hamano wrote:\n>>> Herman van Rink <rink@initfour.nl> writes:\n>>>\n>>>> Junio, Could you please consider merging the single commit from my\n>>>> subtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n>>> In general, in areas like contrib/ where there is a volunteer area\n>>> maintainer, unless the change something ultra-urgent (e.g. serious\n>>> security fix) and the area maintainer is unavailable, I'm really\n>>> reluctant to bypass and take a single patch that adds many things\n>>> that are independent from each other.\n>> Who do you see as volunteer area maintainer for contrib/subtree?\n>> My best guess would be Dave. And he already indicated earlier in the\n>> thread to be ok with the combined patch as long as you are ok with it.\n> Yes, dag volunteered to be the area maintainer to act as a\n> gatekeeper for me.\n>\n> The message you addressed to me was sent as a response to his\n> message, where he gave you specific suggestions to improve the patch\n> and turn it into a readable series instead of a single ball of wax\n> and it looked to me as if you are trying to bypass him and shove the\n> single ball of wax to our history over his objection.\n>\n> I haven't formed an opinion on the particular change as to how bad\n> its collapsing unrelated changes into a single change is. Maybe they\n> are not as unrelated and form a coherent whole.  Maybe not.  Also I\n> personally do not mind too much if the area maintainer for contrib/\n> has a lower standard for atomicity of commits compared to the rest\n> of the system.  But I do prefer the decision to be made at the level\n> of area maintainer's, and have issues when people try to bypass\n> without a good reason.\n>\n> Note that I was not following the thread very closely, so I may have\n> misread the discussion.  I read his \"Unless Junio accepts...\" to\n> mean \"I (dag) still object, but if Junio accepts that patch I object\n> to directly, there is nothing I can do about it\".  That is very\n> different from \"I am on the fence and cannot decide it is a good\n> patch or not.  I'll let Junio decide; I am OK as long as he is\".\n>\n> Thanks.\n\nThanks for explaining.\nI had read it the latter way.\n\nThe problem is that I don't have the time to split all these out. Dag\nhas indicated that he does not have the time either.\n\nThis single ball of wax was already an alternative to the 'messy' merge\nhistory it had accumulated. The result of merging from dozens of github\nforks with numerous levels of parallel/contra-productive whitspace fixes.\n\nDag: Did I read it correctly?\n\n-- \n\nMet vriendelijke groet / Regards,\n\nHerman van Rink\nInitfour websolutions\n"},{"id":"201697","messageId":"nnga9vefu1v.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"5084102A.2010006@initfour.nl","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-10-22T14:41:32Z","receivedAt":"2012-10-22T14:41:32Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n> On 10/21/2012 08:32 AM, Junio C Hamano wrote:\n>> Herman van Rink <rink@initfour.nl> writes:\n>>\n>>> Junio, Could you please consider merging the single commit from my\n>>> subtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n>> In general, in areas like contrib/ where there is a volunteer area\n>> maintainer, unless the change something ultra-urgent (e.g. serious\n>> security fix) and the area maintainer is unavailable, I'm really\n>> reluctant to bypass and take a single patch that adds many things\n>> that are independent from each other.\n>\n> Who do you see as volunteer area maintainer for contrib/subtree?\n> My best guess would be Dave. And he already indicated earlier in the\n> thread to be ok with the combined patch as long as you are ok with it.\n\nLet's be clear.  Junio owns the project so what he says goes, no\nquestion.  I provided some review feedback which I thought would help\nthe patches get in more easily.  We really shouldn't be adding multiple\nfeatures in one patch.  This is easily separated into multiple patches.\n\nThen there is the issue of testcases.  We should NOT have git-subtree go\nback to the pre-merge _ad_hoc_ test environment.  We should use what the\nusptream project uses.  That will make mainlining this much easier in\nthe future.\n\nIf Junio is ok with overriding my decisions here, that's fine.  But I\nreally don't understand why you are so hesitant to rework the patches\nwhen it should be realtively easy.  Certainly easier than convincing me\nthey are in good shape currently.  :)\n\n                            -David\n"},{"id":"201698","messageId":"nng6262ftwy.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"7vfw57fvtl.fsf@alter.siamese.dyndns.org","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-10-22T14:44:29Z","receivedAt":"2012-10-22T14:44:29Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> I haven't formed an opinion on the particular change as to how bad\n> its collapsing unrelated changes into a single change is. Maybe they\n> are not as unrelated and form a coherent whole.  Maybe not.  \n\nIt is difficult for me to tell which is one of the red flags that caused\nme to request breaking it up.  It's much to hard to review this patch as\nit is.  It conflates multiple features and bug fixes.  It includes\ncomments to the effect of, \"I don't like this but I don't know of a\nbetter way.\"  Part of the reson we do reviews is to have people help out\nand find a better way.  I don't think people can do that with the way\nthe patch is currently structured.\n\n> Note that I was not following the thread very closely, so I may have\n> misread the discussion.  I read his \"Unless Junio accepts...\" to\n> mean \"I (dag) still object, but if Junio accepts that patch I object\n> to directly, there is nothing I can do about it\".  That is very\n> different from \"I am on the fence and cannot decide it is a good\n> patch or not.  I'll let Junio decide; I am OK as long as he is\".\n\nYopur first reading is the correct one.\n\n                              -David\n"},{"id":"201700","messageId":"nng1ugqfts8.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"508459B3.6030403@initfour.nl","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-10-22T14:47:19Z","receivedAt":"2012-10-22T14:47:19Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n> The problem is that I don't have the time to split all these out. Dag\n> has indicated that he does not have the time either.\n\nI would have the time to review and integrate separate patches.  I do\nnot have time to unwrap the ball of wax and ensure the quality of each\nfeature and bug fix.  That is the responsibility of the submitter.  You\ncan't expect reviewers to do your work for you.  I'm not being harsh, it\nis simply the reality of how things work in every project I've been\ninvolved with.\n\n> This single ball of wax was already an alternative to the 'messy' merge\n> history it had accumulated. The result of merging from dozens of github\n> forks with numerous levels of parallel/contra-productive whitspace fixes.\n\nYes, we don't really want that history.  You have a single patch now.  A\nseries of git rebase -i + git add -i should make it easy to separate it\ninto patches for each feature and bug fix, as I suggested previously.\n\nIt really, really shouldn't be that hard unless the code is atrocious.\n\n                            -David\n"},{"id":"201939","messageId":"508A8BD3.9020901@initfour.nl","threadId":"30351","inReplyTo":"nnga9vefu1v.fsf@transit.us.cray.com","subject":"Re: Subtree in Git","fromName":"Herman van Rink","fromEmail":"rink@initfour.nl","sentAt":"2012-10-26T13:10:43Z","receivedAt":"2012-10-26T13:10:43Z","isPatch":false,"sender":{"key":"rink@initfour.nl","avatar":null},"body":"On 10/22/2012 04:41 PM, dag@cray.com wrote:\n> Herman van Rink <rink@initfour.nl> writes:\n>\n>> On 10/21/2012 08:32 AM, Junio C Hamano wrote:\n>>> Herman van Rink <rink@initfour.nl> writes:\n>>>\n>>>> Junio, Could you please consider merging the single commit from my\n>>>> subtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n>>> In general, in areas like contrib/ where there is a volunteer area\n>>> maintainer, unless the change something ultra-urgent (e.g. serious\n>>> security fix) and the area maintainer is unavailable, I'm really\n>>> reluctant to bypass and take a single patch that adds many things\n>>> that are independent from each other.\n>> Who do you see as volunteer area maintainer for contrib/subtree?\n>> My best guess would be Dave. And he already indicated earlier in the\n>> thread to be ok with the combined patch as long as you are ok with it.\n> Let's be clear.  Junio owns the project so what he says goes, no\n> question.  I provided some review feedback which I thought would help\n> the patches get in more easily.  We really shouldn't be adding multiple\n> features in one patch.  This is easily separated into multiple patches.\n>\n> Then there is the issue of testcases.  We should NOT have git-subtree go\n> back to the pre-merge _ad_hoc_ test environment.  We should use what the\n> usptream project uses.  That will make mainlining this much easier in\n> the future.\n>\n> If Junio is ok with overriding my decisions here, that's fine.  But I\n> really don't understand why you are so hesitant to rework the patches\n> when it should be realtively easy.  Certainly easier than convincing me\n> they are in good shape currently.  :)\n\nIf it's so easy to rework these patches then please do so yourself.\nIt's been ages since I've worked on this so I would also have to\nre-discover everything.\n\nAnd yes it's ugly, but so is the code that you've merged in.\nWhich you haven't changed a single line in after merging. So it's still\nthe version from Avery which hasn't been maintained for the last two years.\n\nThis ball of wax is still a big improvement in my opinion.\n\nFeel free to scrape the github forks for improvements on your own,\ncleanup the code style and create fitting test cases.\nBut if you intend on taking in changes only when presented to you on a\nsilver patter, then we're better of with subtree removed from the\ncontrib tree.\n\nWhat would a random user have to do to get a patch in? I've found a\nnumber of subtree related mails on the git-user list go completely\nunanswerd.\nAmongst them a patch from James Nylen wich seems very reasonable.\n\n-- \n\nMet vriendelijke groet / Regards,\n\nHerman van Rink\nInitfour websolutions\n"},{"id":"201947","messageId":"2DDAA35052EA4F88A6EAC4FBDDF7FCCD@rr-dav.id.au","threadId":"30351","inReplyTo":"508A8BD3.9020901@initfour.nl","subject":"Re: Subtree in Git","fromName":"David Michael Barr","fromEmail":"b@rr-dav.id.au","sentAt":"2012-10-26T13:58:23Z","receivedAt":"2012-10-26T13:58:23Z","isPatch":false,"sender":{"key":"b@rr-dav.id.au","avatar":"https://gravatar.com/avatar/1c0f0df262aa1749c478ee3586cef5da6d58382c06cb220882b7ef9b93cbec6f?d=mp&s=160"},"body":"On Saturday, 27 October 2012 at 12:10 AM, Herman van Rink wrote:\n> On 10/22/2012 04:41 PM, dag@cray.com (mailto:dag@cray.com) wrote:\n> > Herman van Rink <rink@initfour.nl (mailto:rink@initfour.nl)> writes:\n> > \n> > > On 10/21/2012 08:32 AM, Junio C Hamano wrote:\n> > > > Herman van Rink <rink@initfour.nl (mailto:rink@initfour.nl)> writes:\n> > > > \n> > > > > Junio, Could you please consider merging the single commit from my\n> > > > > subtree-updates branch? https://github.com/helmo/git/tree/subtree-updates\n> > > > \n> > > > \n> > > > In general, in areas like contrib/ where there is a volunteer area\n> > > > maintainer, unless the change something ultra-urgent (e.g. serious\n> > > > security fix) and the area maintainer is unavailable, I'm really\n> > > > reluctant to bypass and take a single patch that adds many things\n> > > > that are independent from each other.\n> > > \n> > > \n> > > Who do you see as volunteer area maintainer for contrib/subtree?\n> > > My best guess would be Dave. And he already indicated earlier in the\n> > > thread to be ok with the combined patch as long as you are ok with it.\n> > \n> > \n> > Let's be clear. Junio owns the project so what he says goes, no\n> > question. I provided some review feedback which I thought would help\n> > the patches get in more easily. We really shouldn't be adding multiple\n> > features in one patch. This is easily separated into multiple patches.\n> > \n> > Then there is the issue of testcases. We should NOT have git-subtree go\n> > back to the pre-merge _ad_hoc_ test environment. We should use what the\n> > usptream project uses. That will make mainlining this much easier in\n> > the future.\n> > \n> > If Junio is ok with overriding my decisions here, that's fine. But I\n> > really don't understand why you are so hesitant to rework the patches\n> > when it should be realtively easy. Certainly easier than convincing me\n> > they are in good shape currently. :)\n> \n> \n> \n> If it's so easy to rework these patches then please do so yourself.\n> It's been ages since I've worked on this so I would also have to\n> re-discover everything.\n\n>From a quick survey, it appears there are no more than 55 patches\nsquashed into the submitted patch.\nAs I have an interest in git-subtree for maintaining the out-of-tree\nversion of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\nto make some sense of the organic growth that happened on GitHub.\nIt doesn't appear that anyone else is willing to do this, so I doubt\nthere will be any duplication of effort.\n\n\n\n--\nDavid Michael Barr\n"},{"id":"201966","messageId":"CABVa4Ng9=Q9YSwU-CQNyQXQOHVKOWz5eK+G8sBiXk4HS=BksiA@mail.gmail.com","threadId":"30351","inReplyTo":"2DDAA35052EA4F88A6EAC4FBDDF7FCCD@rr-dav.id.au","subject":"Re: Subtree in Git","fromName":"James Nylen","fromEmail":"jnylen@gmail.com","sentAt":"2012-10-26T16:54:06Z","receivedAt":"2012-10-26T16:54:06Z","isPatch":false,"sender":{"key":"jnylen@gmail.com","avatar":"https://gravatar.com/avatar/96804ac655933f5b6380e992610d6ff9029c6d04db1042d4bec381312ff7ff1b?d=mp&s=160"},"body":"On Fri, Oct 26, 2012 at 9:58 AM, David Michael Barr <b@rr-dav.id.au> wrote:\n> From a quick survey, it appears there are no more than 55 patches\n> squashed into the submitted patch.\n> As I have an interest in git-subtree for maintaining the out-of-tree\n> version of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\n> to make some sense of the organic growth that happened on GitHub.\n> It doesn't appear that anyone else is willing to do this, so I doubt\n> there will be any duplication of effort.\n\nDavid, I think that would be great.  I wish I had time to work on\nunwrapping the current patch but I don't.  I will definitely re-submit\nmy (simple) patch after this is done though.\n"},{"id":"202125","messageId":"nng8vapmfzc.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"508A8BD3.9020901@initfour.nl","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-10-29T15:53:59Z","receivedAt":"2012-10-29T15:53:59Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"Herman van Rink <rink@initfour.nl> writes:\n\n> What would a random user have to do to get a patch in? I've found a\n> number of subtree related mails on the git-user list go completely\n> unanswerd.  Amongst them a patch from James Nylen wich seems very\n> reasonable.\n\nI have those patches queued for merging.  I've been out of town and\notherwise occupied with critical work issues.  I'm hoping to process\nthose this weekend.\n\nI don't consider myself a gatekeeper and I won't complain if git-subtree\npatches are accepted without my review, especially if I am caught up in\nother things as I am now.  Anyone is welcome to prepare, review and\nrecommend patches for acceptance.  Junio is the real boss anyway.  :)\n\nThe whole point of Free Software is that anyone can contribute.  It\nwon't work any other way.\n\nBut when patches clearly take us backward, yeah, I'm going to have an\nissue with that.  :)\n\n                                  -David\n"},{"id":"202126","messageId":"nng4nldmfxk.fsf@transit.us.cray.com","threadId":"30351","inReplyTo":"2DDAA35052EA4F88A6EAC4FBDDF7FCCD@rr-dav.id.au","subject":"Re: Subtree in Git","fromName":"","fromEmail":"dag@cray.com","sentAt":"2012-10-29T15:55:03Z","receivedAt":"2012-10-29T15:55:03Z","isPatch":false,"sender":{"key":"dag@cray.com","avatar":null},"body":"David Michael Barr <b@rr-dav.id.au> writes:\n\n> As I have an interest in git-subtree for maintaining the out-of-tree\n> version of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\n> to make some sense of the organic growth that happened on GitHub.\n> It doesn't appear that anyone else is willing to do this, so I doubt\n> there will be any duplication of effort.\n\nGo for it!  Thanks!\n\n                      -David\n"},{"id":"210449","messageId":"loom.20130301T032627-983@post.gmane.org","threadId":"30351","inReplyTo":"2DDAA35052EA4F88A6EAC4FBDDF7FCCD@rr-dav.id.au","subject":"Re: Subtree in Git","fromName":"Kindjal","fromEmail":"kindjal@gmail.com","sentAt":"2013-03-01T02:28:39Z","receivedAt":"2013-03-01T02:28:39Z","isPatch":false,"sender":{"key":"kindjal@gmail.com","avatar":null},"body":"David Michael Barr <b <at> rr-dav.id.au> writes:\n \n> From a quick survey, it appears there are no more than 55 patches\n> squashed into the submitted patch.\n> As I have an interest in git-subtree for maintaining the out-of-tree\n> version of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\n> to make some sense of the organic growth that happened on GitHub.\n> It doesn't appear that anyone else is willing to do this, so I doubt\n> there will be any duplication of effort.\n> \n\nWhat is the status of the work on git-subtree described in this thread?\nIt looks like it's stalled.\n"},{"id":"210479","messageId":"CALeLG_maSpjVtO3swZAWV12Cr7rDWOaJ=Jh8zw5tJn0EGGW+fA@mail.gmail.com","threadId":"30351","inReplyTo":"loom.20130301T032627-983@post.gmane.org","subject":"Re: Subtree in Git","fromName":"Paul Campbell","fromEmail":"pcampbell@kemitix.net","sentAt":"2013-03-01T22:05:10Z","receivedAt":"2013-03-01T22:05:10Z","isPatch":false,"sender":{"key":"pcampbell@kemitix.net","avatar":"https://gravatar.com/avatar/57584e05501b694929004e43fcd7308f4ad64df2eb0474cd8c7e5f93662bb0f1?d=mp&s=160"},"body":"On Fri, Mar 1, 2013 at 2:28 AM, Kindjal <kindjal@gmail.com> wrote:\n> David Michael Barr <b <at> rr-dav.id.au> writes:\n>\n>> From a quick survey, it appears there are no more than 55 patches\n>> squashed into the submitted patch.\n>> As I have an interest in git-subtree for maintaining the out-of-tree\n>> version of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\n>> to make some sense of the organic growth that happened on GitHub.\n>> It doesn't appear that anyone else is willing to do this, so I doubt\n>> there will be any duplication of effort.\n>>\n>\n> What is the status of the work on git-subtree described in this thread?\n> It looks like it's stalled.\n>\n\nI hadn't been aware of that patch. Reading the thread David Michael\nBarr was going to try picking the patch apart into sensible chunks.\n\nMy own patches, some of which I've submitted to the list, appear to be\ntackling a couple of the same things (e.g. storing subtree metadata in\nan ini file). Mine can be found here\n(https://github.com/kemitix/git/commits/subtree-usability), including\nsome I've not submitted yet.\n\nIf this work is still needing done I'd like to volunteer.\n\n-- \nPaul [W] Campbell\n"},{"id":"210507","messageId":"CACPE+fvuKiYmmGfJ=A_DZyOi+MiQQ3SgY+QyX5L08XK8TMwzEw@mail.gmail.com","threadId":"30351","inReplyTo":"CALeLG_maSpjVtO3swZAWV12Cr7rDWOaJ=Jh8zw5tJn0EGGW+fA@mail.gmail.com","subject":"Re: Subtree in Git","fromName":"David Michael Barr","fromEmail":"b@rr-dav.id.au","sentAt":"2013-03-02T11:21:37Z","receivedAt":"2013-03-02T11:21:37Z","isPatch":false,"sender":{"key":"b@rr-dav.id.au","avatar":"https://gravatar.com/avatar/1c0f0df262aa1749c478ee3586cef5da6d58382c06cb220882b7ef9b93cbec6f?d=mp&s=160"},"body":"On Sat, Mar 2, 2013 at 9:05 AM, Paul Campbell <pcampbell@kemitix.net> wrote:\n> On Fri, Mar 1, 2013 at 2:28 AM, Kindjal <kindjal@gmail.com> wrote:\n>> David Michael Barr <b <at> rr-dav.id.au> writes:\n>>\n>>> From a quick survey, it appears there are no more than 55 patches\n>>> squashed into the submitted patch.\n>>> As I have an interest in git-subtree for maintaining the out-of-tree\n>>> version of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\n>>> to make some sense of the organic growth that happened on GitHub.\n>>> It doesn't appear that anyone else is willing to do this, so I doubt\n>>> there will be any duplication of effort.\n>>>\n>>\n>> What is the status of the work on git-subtree described in this thread?\n>> It looks like it's stalled.\n>>\n>\n> I hadn't been aware of that patch. Reading the thread David Michael\n> Barr was going to try picking the patch apart into sensible chunks.\n>\n\nSorry for not updating the thread. I did end up moving onto other things.\nI quickly realised the reason for globbing all the patches together was\nthat the individual patches were not well contained.\nThat is single patches with multiple unrelated changes and multiple\npatches changing the same things in different directions.\nTo me this means that the first step is to curate the history.\n\n> If this work is still needing done I'd like to volunteer.\n\nYou're most welcome. Sorry again for abandoning the thread.\n\n--\nDavid Michael Barr\n"},{"id":"210513","messageId":"CALeLG_=Yy0TkY-vY8AE9CtXhs4zF8kjdQBNdp+N4yhFmHM79RA@mail.gmail.com","threadId":"30351","inReplyTo":"CACPE+fvuKiYmmGfJ=A_DZyOi+MiQQ3SgY+QyX5L08XK8TMwzEw@mail.gmail.com","subject":"Re: Subtree in Git","fromName":"Paul Campbell","fromEmail":"pcampbell@kemitix.net","sentAt":"2013-03-02T17:43:11Z","receivedAt":"2013-03-02T17:43:11Z","isPatch":false,"sender":{"key":"pcampbell@kemitix.net","avatar":"https://gravatar.com/avatar/57584e05501b694929004e43fcd7308f4ad64df2eb0474cd8c7e5f93662bb0f1?d=mp&s=160"},"body":"On Sat, Mar 2, 2013 at 11:21 AM, David Michael Barr <b@rr-dav.id.au> wrote:\n> On Sat, Mar 2, 2013 at 9:05 AM, Paul Campbell <pcampbell@kemitix.net> wrote:\n>> On Fri, Mar 1, 2013 at 2:28 AM, Kindjal <kindjal@gmail.com> wrote:\n>>> David Michael Barr <b <at> rr-dav.id.au> writes:\n>>>\n>>>> From a quick survey, it appears there are no more than 55 patches\n>>>> squashed into the submitted patch.\n>>>> As I have an interest in git-subtree for maintaining the out-of-tree\n>>>> version of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\n>>>> to make some sense of the organic growth that happened on GitHub.\n>>>> It doesn't appear that anyone else is willing to do this, so I doubt\n>>>> there will be any duplication of effort.\n>>>>\n>>>\n>>> What is the status of the work on git-subtree described in this thread?\n>>> It looks like it's stalled.\n>>>\n>>\n>> I hadn't been aware of that patch. Reading the thread David Michael\n>> Barr was going to try picking the patch apart into sensible chunks.\n>>\n>\n> Sorry for not updating the thread. I did end up moving onto other things.\n> I quickly realised the reason for globbing all the patches together was\n> that the individual patches were not well contained.\n> That is single patches with multiple unrelated changes and multiple\n> patches changing the same things in different directions.\n> To me this means that the first step is to curate the history.\n>\n>> If this work is still needing done I'd like to volunteer.\n>\n> You're most welcome. Sorry again for abandoning the thread.\n>\n> --\n> David Michael Barr\n\nOkay, I'll start picking the patch apart this week then feedback when\nI have a plan to tackle it all.\n\n-- \nPaul [W] Campbell\n"},{"id":"210593","messageId":"CALeLG_mMMZ2Gh=mz_EQceTaqi9XK1ty2SaCbH5x23zsS1Wu1Dg@mail.gmail.com","threadId":"30351","inReplyTo":"CALeLG_=Yy0TkY-vY8AE9CtXhs4zF8kjdQBNdp+N4yhFmHM79RA@mail.gmail.com","subject":"Re: Subtree in Git","fromName":"Paul Campbell","fromEmail":"pcampbell@kemitix.net","sentAt":"2013-03-04T22:33:23Z","receivedAt":"2013-03-04T22:33:23Z","isPatch":false,"sender":{"key":"pcampbell@kemitix.net","avatar":"https://gravatar.com/avatar/57584e05501b694929004e43fcd7308f4ad64df2eb0474cd8c7e5f93662bb0f1?d=mp&s=160"},"body":"On Sat, Mar 2, 2013 at 5:43 PM, Paul Campbell <pcampbell@kemitix.net> wrote:\n> On Sat, Mar 2, 2013 at 11:21 AM, David Michael Barr <b@rr-dav.id.au> wrote:\n>> On Sat, Mar 2, 2013 at 9:05 AM, Paul Campbell <pcampbell@kemitix.net> wrote:\n>>> On Fri, Mar 1, 2013 at 2:28 AM, Kindjal <kindjal@gmail.com> wrote:\n>>>> David Michael Barr <b <at> rr-dav.id.au> writes:\n>>>>\n>>>>> From a quick survey, it appears there are no more than 55 patches\n>>>>> squashed into the submitted patch.\n>>>>> As I have an interest in git-subtree for maintaining the out-of-tree\n>>>>> version of vcs-svn/ and a desire to improve my rebase-fu, I am tempted\n>>>>> to make some sense of the organic growth that happened on GitHub.\n>>>>> It doesn't appear that anyone else is willing to do this, so I doubt\n>>>>> there will be any duplication of effort.\n>>>>>\n>>>>\n>>>> What is the status of the work on git-subtree described in this thread?\n>>>> It looks like it's stalled.\n>>>>\n>>>\n>>> I hadn't been aware of that patch. Reading the thread David Michael\n>>> Barr was going to try picking the patch apart into sensible chunks.\n>>>\n>>\n>> Sorry for not updating the thread. I did end up moving onto other things.\n>> I quickly realised the reason for globbing all the patches together was\n>> that the individual patches were not well contained.\n>> That is single patches with multiple unrelated changes and multiple\n>> patches changing the same things in different directions.\n>> To me this means that the first step is to curate the history.\n>>\n>>> If this work is still needing done I'd like to volunteer.\n>>\n>> You're most welcome. Sorry again for abandoning the thread.\n>>\n>> --\n>> David Michael Barr\n>\n> Okay, I'll start picking the patch apart this week then feedback when\n> I have a plan to tackle it all.\n>\n> --\n> Paul [W] Campbell\n\n>From a comparison of the tip for helmo's subtree-updates branch and\nthe current master these are the changes and features that the patch\nis providing.  I've listed the changes briefly per file, with a note\nof the general action I plan to take. This is based on a simple diff,\nso some changes are actually reversions to recent commits, which I\nhave tried to note.\n\nMakefile\n\n\t* Regresses two recent commits (8165be064e and d86848228f)\n\t* ACTION: Ignore file\n\nREADME.md\n\n\t* Adds a markdown readme file (that github likes to have in root)\n\t* Includes some install instructions in a pseudo man page format\n\t* The INSTALL file covers all the information contained and is more up-to-date\n\t* ACTION: Ignore file\n\ngit-subtree.sh\n\n\t* OPTS_SPEC\n\t\t* pull/push: options for repository and refspec are both optional,\n[<repository> [<refspec>]]\n\t\t* new sub-command: pull-all\n\t\t* new sub-command: push-all\n\t\t* new sub-command: list\n\t\t* new sub-command: from-submodule\n\t\t* new sub-command: prune\n\t\t* new sub-command: diff\n\t\t* new option for push: --force\n\t* Trailing slash on prefix is removed\n\t* Different pretty log format in cmd_commit getting piped to set some\nenvironment variables\n\t\t* Would revert: a5b8e28e4e\n\t\t* Ignoring this change\n\t* Removes all tests in cmd_add to check that refspec is valid\n\t\t* I've posted a patch with new tests to the list recently that would\ngo in here\n\t* Change reference to 'commit' into 'refspec' in error message in cmd_add\n\t* Stores subtree metadata in .gittrees as:\n\t\t[subtree \"$dir\"]\n\t\t\turl = $repository\n\t\t\tpath = $dir\n\t\t\tbranch = $refspec\n\t* Inadvertently commited a change to the linefeed character in\ncmd_split for the activity indicator\n\t* cmd_pull/cmd_push: reads options from .gitrees if not provided on\nthe command line\n\t* Implementation of cmd_diff\n\t\t* fetches remote repo as a temporary git-remote then uses\ngit-diff-tree to compare before removing the temporary git-remote\n\t* Implementation of cmd_list as plain wrapper to new functions subtree_list\n\t\t* Iterates over subtrees listed in .gittrees and prints out their details\n\t\t* Dubious about greps used to get list from .gittrees\n\t* Implementation of cmd_from-submodule\n\t\t* Converts a git-submodule into a git-subtree\n\t* Implementation of cmd_prune\n\t\t* Removes entries from .gittrees where the $dir is missing\n\t\t* Dubious about greps used to get list from .gittrees\n\t* Implementation of cmd_pull-all\n\t\t* Performs a git-subtree pull for each subtree\n\t\t* Dubious about greps used to get list from .gittrees\n\t* Implementation of cmd_push-all\n\t\t* Perfroms a git-subtree push for each subtree\n\t\t* Dubious about greps used to get list from .gittrees\n\ngit-subtree.txt\n\n\t* Adds brief descriptions for commands:\n\t\t* pull-all\n\t\t* push-all\n\t\t* list\n\t\t* from-submodule\n\t\t* prune\n\t\t* diff (\"TO BE DOCUMENTED\")\n\t* Notes optional -f|--force for push sub-command\n\t* fixes a typo in text for Example 1 (s/incldued/included/)\n\nt/t7900.sh\n\n\t* Add numeric comments for each test\n\t\t* recently removed (144797d720) in master so don't add them back\n\t* ACTION: Ignore file\n\ntest.sh\n\n\t* Legacy tests\n\t* ACTION: Ignore file\n\nMy next step will be to find the commits (from helmo's\nsubtree-updates-merged branch) that provide the features above that I\nwant to keep and cherry-pick them into a new branch (or two).\n\n-- \nPaul [W] Campbell\n"}]}