{"thread":{"id":"2553","subject":"[RFC] git email submissions","startedAt":"2005-11-16T14:38:42Z","lastAt":"2005-11-19T21:08:13Z","messageCount":9,"participants":["Jeff Garzik","Petr Baudis","Linus Torvalds","H. Peter Anvin","Matthias Urlichs","Martin Langhoff","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"12016","messageId":"437B4472.1080401@pobox.com","threadId":"2553","inReplyTo":null,"subject":"[RFC] git email submissions","fromName":"Jeff Garzik","fromEmail":"jgarzik@pobox.com","sentAt":"2005-11-16T14:38:42Z","receivedAt":"2005-11-16T14:38:42Z","isPatch":false,"sender":{"key":"jgarzik@pobox.com","avatar":null},"body":"\nFor people without _any_ hosting, it would be nice to give them a method \nto submit some git changes via email.\n\nIt seems like most of the necessary stuff is already present in git to \nbundle up a set of changes.  The open questions in my mind are\n\n- what form would the emails take?  MIME-attach a .pack file, plus a \nGPG-signed sha1sum in a separate attachment?\n\n- what's the easiest user interface for selecting the changes?  for my \nusage, it would be\n\n\tGIT_GPG_AUTHOR=jgarzik... \\\n\tGIT_DEF_HEADERS=./email.headers \\\n\tgit-mkmail --sign master..upstream > email.rfc822\n\tEnter GPG passphrase:\n\n- what user interface does a kernel maintainer use, to merge changes \nsubmitted using this method?\n\n- is this all pointless, since the submittor could just email patches? \n[IMO no, git trees are better merges than emailed patches]\n\nOverall, I was thinking it would be nice to have some way to safely \ntransmit a small part of a git tree, including all history information, \nsince its easier to merge git trees than patches.\n\nAnd for someone without the resources to obtain hosting, email may be \nthe only way to publish a git sub-tree.\n\n\tJeff\n"},{"id":"12017","messageId":"20051116145100.GY30496@pasky.or.cz","threadId":"2553","inReplyTo":"437B4472.1080401@pobox.com","subject":"Re: [RFC] git email submissions","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2005-11-16T14:51:00Z","receivedAt":"2005-11-16T14:51:00Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Wed, Nov 16, 2005 at 03:38:42PM CET, I got a letter\nwhere Jeff Garzik <jgarzik@pobox.com> said that...\n> For people without _any_ hosting, it would be nice to give them a method \n> to submit some git changes via email.\n\nWhat kind of people have no hosting whatsoever? There is plenty of free\nweb hosting sites, and that should be enough...?\n\n> - is this all pointless, since the submittor could just email patches? \n> [IMO no, git trees are better merges than emailed patches]\n\nCouldn't you just look at the applies-to string of the first patch in\nthe series, branch up from that commit, and at the end of the series do\nthe merge?\n\nNo special tool required, just a bit smarter applier.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nVI has two modes: the one in which it beeps and the one in which\nit doesn't.\n"},{"id":"12019","messageId":"Pine.LNX.4.64.0511160847250.13959@g5.osdl.org","threadId":"2553","inReplyTo":"437B4472.1080401@pobox.com","subject":"Re: [RFC] git email submissions","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-11-16T16:59:00Z","receivedAt":"2005-11-16T16:59:00Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Wed, 16 Nov 2005, Jeff Garzik wrote:\n> \n> For people without _any_ hosting, it would be nice to give them a method to\n> submit some git changes via email.\n\nWell, as long as you don't expect me to take those things..\n\nBK had it with \"bk send\"/\"bk receive\", I used it a couple of times and \nrefuse to do it again.\n\n> - what form would the emails take?  MIME-attach a .pack file, plus a\n> GPG-signed sha1sum in a separate attachment?\n\nYes, that sounds sane. You also need to specify the head(s) of the \npack-file (maybe that's what you meant by the GPG-signed sha1sum).\n\n> - what's the easiest user interface for selecting the changes?  for my usage,\n> it would be\n> \n> \tGIT_GPG_AUTHOR=jgarzik... \\\n> \tGIT_DEF_HEADERS=./email.headers \\\n> \tgit-mkmail --sign master..upstream > email.rfc822\n> \tEnter GPG passphrase:\n\nSounds sane.\n\n> - what user interface does a kernel maintainer use, to merge changes submitted\n> using this method?\n\nAs long as it's not me, I'd suggest doing something like\n\n\tgit getmail <path-to-git-repo> < raw-email\n\nWhy? Because a lot of email clients know how to pipe the email to a \nprogram, so you might use this from within the email client by just doing\n\n\t| git getmail myrepo\n\nand please also have an option to make it do the equivalent of a \"fetch\" \nrather than a \"pull\" (ie to \"get\" it as a separate branch without the \nmerge):\n\n\t| git getmail -b garzik myrepo\n\nor something. \n\nMore importantly, the \"git-getmail\" (or whatever) scipt must absolutely be \nanal and verify that the pack is \"complete\". Since you don't have the git \nprotocol to do the interactive \"find the common parent\" thing, it's easy \nfor the other end to specify a commit you don't actually have, and make a \npack that is perfectly valid, but which wouldn't have full connectivity to \nwhat the person that pulls is trying to get.\n\nThe minimal thing to do is to run a \"git-fsck-cache\" after the fetch and \nbefore the merge (if any). If the destination repo is regularly packed, it \nshould even be fast (for example, since I repack my repo pretty regularly, \na non-full fsck usually takes just a fraction of a second for me).\n\n\t\t\tLinus\n"},{"id":"12023","messageId":"437B7213.2020406@zytor.com","threadId":"2553","inReplyTo":"Pine.LNX.4.64.0511160847250.13959@g5.osdl.org","subject":"Re: [RFC] git email submissions","fromName":"H. Peter Anvin","fromEmail":"hpa@zytor.com","sentAt":"2005-11-16T17:53:23Z","receivedAt":"2005-11-16T17:53:23Z","isPatch":false,"sender":{"key":"hpa@zytor.com","avatar":null},"body":"Linus Torvalds wrote:\n> \n> On Wed, 16 Nov 2005, Jeff Garzik wrote:\n> \n>>For people without _any_ hosting, it would be nice to give them a method to\n>>submit some git changes via email.\n> \n> Well, as long as you don't expect me to take those things..\n> \n> BK had it with \"bk send\"/\"bk receive\", I used it a couple of times and \n> refuse to do it again.\n> \n\nPersonally I think it would be nice if you could do an augmented \npatchset so that the end result is the same (with the same SHA1 IDs) as \nif one had merged a pull, while still being a human-readable patchset. \nThe advantage with that is that once merged it'll do the right thing on \nthe author's end.  I think that's pretty much my answer to Jeff's \nquestion :)\n\n\t-hpa\n"},{"id":"12025","messageId":"437B73E2.3080903@pobox.com","threadId":"2553","inReplyTo":"437B7213.2020406@zytor.com","subject":"Re: [RFC] git email submissions","fromName":"Jeff Garzik","fromEmail":"jgarzik@pobox.com","sentAt":"2005-11-16T18:01:06Z","receivedAt":"2005-11-16T18:01:06Z","isPatch":false,"sender":{"key":"jgarzik@pobox.com","avatar":null},"body":"H. Peter Anvin wrote:\n> Linus Torvalds wrote:\n> \n>>\n>> On Wed, 16 Nov 2005, Jeff Garzik wrote:\n>>\n>>> For people without _any_ hosting, it would be nice to give them a \n>>> method to\n>>> submit some git changes via email.\n>>\n>>\n>> Well, as long as you don't expect me to take those things..\n>>\n>> BK had it with \"bk send\"/\"bk receive\", I used it a couple of times and \n>> refuse to do it again.\n>>\n> \n> Personally I think it would be nice if you could do an augmented \n> patchset so that the end result is the same (with the same SHA1 IDs) as \n> if one had merged a pull, while still being a human-readable patchset. \n> The advantage with that is that once merged it'll do the right thing on \n> the author's end.  I think that's pretty much my answer to Jeff's \n> question :)\n\nAgreed.\n\nThough as a disclaimer to Linus and others, I don't plan to use this in \nmy own submissions to Linus.  Just thinking it would be a nice thing to \nhave, because there are definitely users out there who don't (for \nwhatever reason) have git-capable hosting.\n\nI would presume an email body would look like\n\noverall description of changes\ngit log master..HEAD | git shortlog\ngit diff master..HEAD | diffstat -p1\ngit diff master..HEAD\n<pack file MIME attachment>\n\nSmarter programs would send the overall description and pack file as \n\"[patch 0/N]\", and then post the for-review patches in separate emails \nas \"[patch M/N]\".\n\n\tJeff\n"},{"id":"12059","messageId":"pan.2005.11.16.23.19.58.895975@smurf.noris.de","threadId":"2553","inReplyTo":"437B73E2.3080903@pobox.com","subject":"Re: [RFC] git email submissions","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-11-16T23:20:01Z","receivedAt":"2005-11-16T23:20:01Z","isPatch":false,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Hi, Jeff Garzik wrote:\n\n> Smarter programs would send the overall description and pack file as \n> \"[patch 0/N]\", and then post the for-review patches in separate emails \n> as \"[patch M/N]\".\n\nSo you want to send the stuff twice? Ouch.\n\nSeriously: We can mail patches, and we can re-base our changes.\n\nAnything that's not covered by this is inherently complicated, such that\nspecifying the starting point(s) of a git-send-pack-mail invocation needs\nto be handled by a program, else we *will* get *lots* of pilot errors.\n\nSurprise: We already have a solution: host your archive someplace\nand let git push+fetch handle everything.\n\n-- \nMatthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de\nDisclaimer: The quote was selected randomly. Really. | http://smurf.noris.de\n - -\nAlan Turing thought about criteria to settle the question of whether\nmachines can think, a question of which we now know that it is about\nas relevant as the question of whether submarines can swim.\n\t\t-- Dijkstra\n"},{"id":"12067","messageId":"46a038f90511161638l61d8a8bjbfbeaa92041298f7@mail.gmail.com","threadId":"2553","inReplyTo":"437B4472.1080401@pobox.com","subject":"Re: [RFC] git email submissions","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2005-11-17T00:38:19Z","receivedAt":"2005-11-17T00:38:19Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On 11/17/05, Jeff Garzik <jgarzik@pobox.com> wrote:\n> For people without _any_ hosting, it would be nice to give them a method\n> to submit some git changes via email.\n\nI'm sure SF.net will host GIT projects sooner or later. I'm planning\non offering support on Eduforge.org as soon as I have some free time.\n\ncheers,\n\n\nmartin\n"},{"id":"12074","messageId":"437BEFC5.2020505@zytor.com","threadId":"2553","inReplyTo":"46a038f90511161638l61d8a8bjbfbeaa92041298f7@mail.gmail.com","subject":"Re: [RFC] git email submissions","fromName":"H. Peter Anvin","fromEmail":"hpa@zytor.com","sentAt":"2005-11-17T02:49:41Z","receivedAt":"2005-11-17T02:49:41Z","isPatch":false,"sender":{"key":"hpa@zytor.com","avatar":null},"body":"Martin Langhoff wrote:\n> On 11/17/05, Jeff Garzik <jgarzik@pobox.com> wrote:\n> \n>>For people without _any_ hosting, it would be nice to give them a method\n>>to submit some git changes via email.\n> \n> \n> I'm sure SF.net will host GIT projects sooner or later. I'm planning\n> on offering support on Eduforge.org as soon as I have some free time.\n\nWhat would be *totally awesome* is if SF.net would also automatically \nuse \"git cvsimport\" to track the CVS-based projects thereon...\n\n\t-hpa\n"},{"id":"12343","messageId":"7vlkzk4a82.fsf@assigned-by-dhcp.cox.net","threadId":"2553","inReplyTo":"437B73E2.3080903@pobox.com","subject":"Re: [RFC] git email submissions","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-11-19T21:08:13Z","receivedAt":"2005-11-19T21:08:13Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff Garzik <jgarzik@pobox.com> writes:\n\n> I would presume an email body would look like\n>\n> overall description of changes\n> git log master..HEAD | git shortlog\n> git diff master..HEAD | diffstat -p1\n> git diff master..HEAD\n> <pack file MIME attachment>\n\nAs Smurf commented, the delta data is sent twice if you sent a\npack of \"^his mine\" -- once as a textual diff and then the delta\ndata in the pack.  You can slightly do better than that.\nBecause you are sending the diff, the pack you send does not\nhave to include the post-image of patch application, and I\nsuspect your pack would not have to contain anything other than\ncommit objects.\n"}]}