[Buildbot-devel] override revision being checked out

Vitali Lovich vlovich at gmail.com
Tue Nov 25 22:44:31 UTC 2014


There’s a very good reason for doing it in a separate repository.

Merge repository: checkout latest master.  merge in requested revision.
Source repository: check out merged result.  build from that.

The point is that if the merged result fails & the user retries, the timestamps are
only adjusted on the files affected by the new merge request.  This helps dramatically
on retries because they’re incremental instead of being the whole merge request anew.

Of course, if someone else submits a merge request in the middle, it doesn’t help there,
but you’re no worse off.

Anyway, I do have this solved with git-new-workdir & shell commands.
I thought it odd that the Git step was really that adamant about only checking out 1 revision & that
there was no mechanism to override it.

-Vitali

> On Nov 25, 2014, at 2:30 PM, Dustin J. Mitchell <dustin at v.igoro.us> wrote:
> 
> Your original premise is a little odd - to do a merge in one repo and
> then clone from that one.  There's no need for two repositories to do
> a merge.  So you're sort of in uncharted territory :)
> 
> Codebases could *almost* be convinced to do this, except that it
> doesn't really work well with local repositories, which is what you're
> using.
> 
> I'd recommend using the Git step to check out the revision that
> triggered the build, and then solving the rest with shell commands.
> I'd also recommend doing it all in one git repo.  That may be as
> simple as creating a new branch representing the desired merge target
> (using 'git fetch' and 'git checkout -b'), then running 'git merge
> HEAD@{1}' to merge the branch that the Git step checked out for you.
> 
> Dustin





More information about the devel mailing list