[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