[Buildbot-commits] [Buildbot] #2414: Git Source Checkout - Support Pull of Multiple Branches
Buildbot
nobody at buildbot.net
Thu Dec 13 21:51:50 UTC 2012
#2414: Git Source Checkout - Support Pull of Multiple Branches
---------------------------+-----------------------
Reporter: Jeremy.Cornett | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone: undecided
Version: | Keywords: git
---------------------------+-----------------------
It would be very useful if BuildBot natively supported a checkout of
multiple Git branches, thereby performing an automatic merge of the
branches.
The company I work for has implemented a build strategy of using long
running Git branches that will eventually be merged together. Therefore,
to perform proper testing, we need to run builds that dynamically merge
Git branches together. We do this now by utilizing two steps - the first
being a Git source checkout of the master branch (master side), and then
the second being a custom script that performs a git pull of all the other
required branches into master branch (EX: git pull master featureA
featureB).
This works well (as long as there's no conflicts), but we've run into a
performance hit because of this strategy. Our build tool happens to
compare the timestamp of the source with the timestamp of the derived
files. If the source is newer, a rebuild takes place, otherwise nothing
happens. This speeds up the build process a lot.
(https://git.wiki.kernel.org/index.php/GitFaq#Why_isn.27t_Git_preserving_modification_time_on_files.3F).
With our current process, if a file is modified in one of the required
branches, it's modified timestamp is changed when the source checkout
occurs, and then it's changed again when the merge happens. This causes a
rebuild every time the builder is run, even if no new commits have been
made. Unfortunately, we're taking a huge hit in builder runtime because of
this.
If instead, BuildBot natively supported a Source checkout of multiple
branches, this would be avoided because buildbot would not change the
modified date unless a new commit with a change for that file was made.
For instance, using "git pull origin master featureA featureB" will not
change the timestamp of file A that is in all the branches, but modified
in featureA. It will merely report "Already up-to-date."
--
Ticket URL: <http://trac.buildbot.net/ticket/2414>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
More information about the Commits
mailing list