{"thread":{"id":"15491","subject":"StGit question","startedAt":"2008-09-11T17:04:06Z","lastAt":"2008-09-12T22:18:22Z","messageCount":6,"participants":["Clark Williams","Karl Hasselström","Catalin Marinas"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"90454","messageId":"48C94F86.6080707@gmail.com","threadId":"15491","inReplyTo":null,"subject":"StGit question","fromName":"Clark Williams","fromEmail":"clark.williams@gmail.com","sentAt":"2008-09-11T17:04:06Z","receivedAt":"2008-09-11T17:04:06Z","isPatch":false,"sender":{"key":"clark.williams@gmail.com","avatar":null},"body":"-----BEGIN PGP SIGNED MESSAGE-----\nHash: SHA1\n\nAre there any guidelines or best-practices for sharing StGit trees?\n\nI'm working with the Linux -rt patchset and I need to be able to share my tree with\nother people. What I'd *like* to do is push git tree's up to a git server, let other\npeople fetch them and have them be able to 'stg uncommit' to get back to my stack\nstate. The problem is that when someone uncommits, you lose the patch names.  If\nyou're trying to create an RPM out of a stack, this causes problems :).\n\nIs there something I can do or something that we can do to StGit to make it possible\nfor an 'uncommit' to restore the original patch name? It looks like I could modify\nthe commit message, so that the first line is the patch name, but that's not very\nnice for people scanning commits.\n\nOr am I missing something completely trivial that will make my life easier?\n\nThanks,\nClark\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.9 (GNU/Linux)\nComment: Using GnuPG with Fedora - http://enigmail.mozdev.org\n\niEYEARECAAYFAkjJT4UACgkQqA4JVb61b9d1tgCfeVNG1BkaZ9czZpeHrFumU+xW\n3/kAnj307N0Wx5nLSmtIPr5d+UetAxEG\n=uol3\n-----END PGP SIGNATURE-----\n"},{"id":"90521","messageId":"20080912075116.GA26685@diana.vm.bytemark.co.uk","threadId":"15491","inReplyTo":"48C94F86.6080707@gmail.com","subject":"Re: StGit question","fromName":"Karl Hasselström","fromEmail":"kha@treskal.com","sentAt":"2008-09-12T07:51:16Z","receivedAt":"2008-09-12T07:51:16Z","isPatch":false,"sender":{"key":"kha@treskal.com","avatar":"https://gravatar.com/avatar/f0120c734b5279b345075a28521e1ac66acb20c9913ffe9bf6ae97e53f7f3f13?d=mp&s=160"},"body":"On 2008-09-11 12:04:06 -0500, Clark Williams wrote:\n\n> Are there any guidelines or best-practices for sharing StGit trees?\n\nSee below. ;-)\n\n> I'm working with the Linux -rt patchset and I need to be able to\n> share my tree with other people. What I'd *like* to do is push git\n> tree's up to a git server, let other people fetch them and have them\n> be able to 'stg uncommit' to get back to my stack state. The problem\n> is that when someone uncommits, you lose the patch names. If you're\n> trying to create an RPM out of a stack, this causes problems :).\n>\n> Is there something I can do or something that we can do to StGit to\n> make it possible for an 'uncommit' to restore the original patch\n> name? It looks like I could modify the commit message, so that the\n> first line is the patch name, but that's not very nice for people\n> scanning commits.\n>\n> Or am I missing something completely trivial that will make my life\n> easier?\n\nYou've probably already found this and dismissed it, but\n\n  $ stg uncommit foo bar baz woo wee aaahh\n\nwill uncommit six patches and give them those names. So if you just\nshare the output of\n\n  $ stg series --applied --noprefix\n\nalong with your branch, the other end will be able to recreate a\nseries with the same names. (In not-quite-bleeding-edge stg's, \"series\n--applied\" is spelled \"applied\".)\n\nAs for merging your work once both of you have made changes to the\nseries, the current solution is \"stg sync\", which you'll have to ask\nCatalin about. The patch stack log in my experimental branch is\ndesigned to allow for true 3-way merging of patch series, so that\nyou'd be able to get your colleague's latest modifications with a\nsimple \"stg merge\" command, but that merge currently exists only in a\ncouple of mails to this list -- there isn't even a prototype\nimplementation -- so I expect you'll have more luck with \"stg sync\"\nright now ...\n\n-- \nKarl Hasselström, kha@treskal.com\n      www.treskal.com/kalle\n"},{"id":"90549","messageId":"48CA6367.9020300@gmail.com","threadId":"15491","inReplyTo":"20080912075116.GA26685@diana.vm.bytemark.co.uk","subject":"Re: StGit question","fromName":"Clark Williams","fromEmail":"clark.williams@gmail.com","sentAt":"2008-09-12T12:41:11Z","receivedAt":"2008-09-12T12:41:11Z","isPatch":false,"sender":{"key":"clark.williams@gmail.com","avatar":null},"body":"-----BEGIN PGP SIGNED MESSAGE-----\nHash: SHA1\n\nKarl Hasselström wrote:\n> On 2008-09-11 12:04:06 -0500, Clark Williams wrote:\n> \n>> Are there any guidelines or best-practices for sharing StGit trees?\n> \n> See below. ;-)\n> \n>> I'm working with the Linux -rt patchset and I need to be able to\n>> share my tree with other people. What I'd *like* to do is push git\n>> tree's up to a git server, let other people fetch them and have them\n>> be able to 'stg uncommit' to get back to my stack state. The problem\n>> is that when someone uncommits, you lose the patch names. If you're\n>> trying to create an RPM out of a stack, this causes problems :).\n>>\n>> Is there something I can do or something that we can do to StGit to\n>> make it possible for an 'uncommit' to restore the original patch\n>> name? It looks like I could modify the commit message, so that the\n>> first line is the patch name, but that's not very nice for people\n>> scanning commits.\n>>\n>> Or am I missing something completely trivial that will make my life\n>> easier?\n> \n> You've probably already found this and dismissed it, but\n> \n>   $ stg uncommit foo bar baz woo wee aaahh\n> \n> will uncommit six patches and give them those names. So if you just\n> share the output of\n> \n>   $ stg series --applied --noprefix\n> \n> along with your branch, the other end will be able to recreate a\n> series with the same names. (In not-quite-bleeding-edge stg's, \"series\n> --applied\" is spelled \"applied\".)\n\n\nAhhhh, no I hadn't found this. Cool! I wonder if I could save the series in the\nbranch, so that someone could just checkout the branch and do:\n\n$ stg uncommit $(cat stg-series)\n\nOr, maybe I'll look at adding a --series or --file option to uncommit?\n\nI suspect some chicken-and-egg problems here, but this is workable. And when you're\ntalking >500 patches, anything you can do to automate is a wonderful thing :).\n\n> \n> As for merging your work once both of you have made changes to the\n> series, the current solution is \"stg sync\", which you'll have to ask\n> Catalin about. The patch stack log in my experimental branch is\n> designed to allow for true 3-way merging of patch series, so that\n> you'd be able to get your colleague's latest modifications with a\n> simple \"stg merge\" command, but that merge currently exists only in a\n> couple of mails to this list -- there isn't even a prototype\n> implementation -- so I expect you'll have more luck with \"stg sync\"\n> right now ...\n> \n\nMost of the time it's not more than one or two patches difference, so I think that it\ncan be handled manually for now. I'll definitely keep an eye on sync and merge though...\n\nThanks,\nClark\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.9 (GNU/Linux)\nComment: Using GnuPG with Fedora - http://enigmail.mozdev.org\n\niEYEARECAAYFAkjKY2cACgkQqA4JVb61b9cVYgCfZE8//UgP11+D3AKMCsDGN8Qs\nKpsAni8gLlZn088lQr/1nbzQf4uKHxn/\n=A6MK\n-----END PGP SIGNATURE-----\n"},{"id":"90566","messageId":"20080912154036.GC31240@diana.vm.bytemark.co.uk","threadId":"15491","inReplyTo":"48CA6367.9020300@gmail.com","subject":"Re: StGit question","fromName":"Karl Hasselström","fromEmail":"kha@treskal.com","sentAt":"2008-09-12T15:40:36Z","receivedAt":"2008-09-12T15:40:36Z","isPatch":false,"sender":{"key":"kha@treskal.com","avatar":"https://gravatar.com/avatar/f0120c734b5279b345075a28521e1ac66acb20c9913ffe9bf6ae97e53f7f3f13?d=mp&s=160"},"body":"On 2008-09-12 07:41:11 -0500, Clark Williams wrote:\n\n> Ahhhh, no I hadn't found this. Cool! I wonder if I could save the\n> series in the branch, so that someone could just checkout the branch\n> and do:\n>\n>   $ stg uncommit $(cat stg-series)\n\nThe patch stack log contains all the required info, so this should be\ndoable (given that you share your <branchname>.stgit branch, which is\nthe patch stack log).\n\n> Or, maybe I'll look at adding a --series or --file option to\n> uncommit?\n\nSure, that sounds like a good idea. I believe there are existing\ncommands that take a series file argument; check what they call their\nflag.\n\n> I suspect some chicken-and-egg problems here, but this is workable.\n> And when you're talking >500 patches, anything you can do to\n> automate is a wonderful thing :).\n\nNice to know StGit is being used with series of that size. I usually\nnever go beyond about 30 myself, so there are certain types of\nscalability problems that I won't see.\n\n-- \nKarl Hasselström, kha@treskal.com\n      www.treskal.com/kalle\n"},{"id":"90610","messageId":"b0943d9e0809121515v53c6d593o8211b3cbbb8dfba4@mail.gmail.com","threadId":"15491","inReplyTo":"48CA6367.9020300@gmail.com","subject":"Re: StGit question","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2008-09-12T22:15:29Z","receivedAt":"2008-09-12T22:15:29Z","isPatch":false,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"On 12/09/2008, Clark Williams <clark.williams@gmail.com> wrote:\n> Most of the time it's not more than one or two patches difference, so I think that it\n>  can be handled manually for now. I'll definitely keep an eye on sync and merge though...\n\nAs Karl said, we have some plans to allow collaboration between\nmultiple StGit repositories but we didn't have much time to look at it\nrecently. Karl's \"merge\" stuff looks promising though.\n\nWhat \"sync\" does is that it allow the same set of patches between two\nbranches to be synchronised in case modifications happened on one of\nthese branches. In your situation, you would have to fetch the remote\nbranch, uncommit as in Karl's method and either import or sync the\nremote patches with those on your local branch.\n\n-- \nCatalin\n"},{"id":"90611","messageId":"b0943d9e0809121518p38f60733v3857fa66ac80d152@mail.gmail.com","threadId":"15491","inReplyTo":"b0943d9e0809121515v53c6d593o8211b3cbbb8dfba4@mail.gmail.com","subject":"Re: StGit question","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2008-09-12T22:18:22Z","receivedAt":"2008-09-12T22:18:22Z","isPatch":false,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"On 12/09/2008, Catalin Marinas <catalin.marinas@gmail.com> wrote:\n> On 12/09/2008, Clark Williams <clark.williams@gmail.com> wrote:\n>  > Most of the time it's not more than one or two patches difference, so I think that it\n>  >  can be handled manually for now. I'll definitely keep an eye on sync and merge though...\n>\n>\n> As Karl said, we have some plans to allow collaboration between\n>  multiple StGit repositories but we didn't have much time to look at it\n>  recently. Karl's \"merge\" stuff looks promising though.\n>\n>  What \"sync\" does is that it allow the same set of patches between two\n>  branches to be synchronised in case modifications happened on one of\n>  these branches. In your situation, you would have to fetch the remote\n>  branch, uncommit as in Karl's method and either import or sync the\n>  remote patches with those on your local branch.\n\nBTW, \"sync\" allows synchronisation with a series of patches stored in\na directory. So you can also share patches using exported repositories\nwith import and sync.\n\n-- \nCatalin\n"}]}