These notes were taken and will need some editing to make sense: https://etherpad.mozilla.org/releng-autoland
The idea here is to create an internal service (available to a small set of people + some automated tools later) that takes as input something like: - Source repo - Source revision(s) (a range of revisions would be useful, I think) - Destination repo This transplant tool will then transplant the specified commits onto the destination repository at the tip of the default branch. If the revisions can't be transplanted automatically (due to merge conflicts, for example), the service should return an error.
The transplant tool won't help with landing patches from bugzilla directly onto hg. It's meant to take revisions from one hg repo and transplant them onto another, e.g. for uplifts, or for taking successful try pushes and landing them on inbound.
Let me know if you were looking for victims to eat this dogfood. I'm very hungry. :-)
The latest version of the tool is available here: http://review.infinity.com.ua:5000/ It is configured to allow transplants from mozilla-central-test to mozilla-aurora-test. Those repositories are clones of corresponding production repositories for testing purposes. Here's how you can try it out: 0. If you haven’t done this yet, please send me your SSH public key to gain access to test repositories. 1. Clone mozilla-central and mozilla-aurora (the real ones) locally. 2. Add the following path to mozilla-central/.hg/hgrc: transplant = ssh://firstname.lastname@example.org/mozilla-central 3. Add the following path to mozilla-aurora/.hg/hgrc transplant = ssh://email@example.com/mozilla-aurora 4. For both repositories, pull from default and push to transplant. (the above steps won’t be necessary when transplant tool will be in production, it is only to keep test repositories in sync with the real ones) 5. Find the commit you want transplanted from m-c to m-a. 6. Go to http://review.infinity.com.ua:5000/ 7. Select source and destination repositories (not many options there yet). 8. Put the commit ID you found on step 5 into the corresponding field. 9. Optionally, change the commit message. 10. Hit "Transplant" button and hope for the best :) The source code is available here: https://github.com/laggyluke/transplant