[dmd-internals] What is the necessary to increase speed of merging?

Michel Fortin michel.fortin at michelf.com
Fri Nov 11 20:06:31 PST 2011


Le 2011-11-11 à 22:25, Walter Bright a écrit :

> On 11/11/2011 10:50 AM, Brad Roberts wrote:
>> 
>> The bigger issue, imho, is Walter's lack of trust in the automated testers.
> 
> Another issue is when I do a pull, and it fails testing. This just happened. Things pretty much grind to a halt when that happens. I wish github had an "unpull" button.

Then just don't use Github's pull button. Instead begin by adding a reference to the requester's github repository in your local repository:

	git remote add {username} https://github.com/{username}/dmd.git

Then pull its code directly from it:

	git pull {username}/{branchname}

The pull is kept local until you push it yourself. You can thus run the tests locally. Once you push those changes to Github, the pull request is automatically closed.

The interesting thing is that if you're not satisfied you can just erase the pull and no one will notice (since it was all kept local). You can erase the last commit created by the pull and return to how things were before the pull like this:

	git reset --hard HEAD^

But don't do this if the commit was already pushed! If that's the case just revert the commit. Rewriting the publicly accessible history will causes problems for everyone (and git will complain when you try to push too). Better not push until you've determined the pull was good.

Note that if the merge had conflicts (and thus the pull was not autocommited), running the command above will erase the last commit *before* the pull, which is not what you want. You can get back to the clean state of the last commit like this:

	git reset --hard

I probably wrote all that in too much details. I hope it is helpful though.


-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/





More information about the dmd-internals mailing list