[Buildbot-commits] [Buildbot] #2121: Allow limited-scope Perforce checkouts
Buildbot
nobody at buildbot.net
Tue Oct 4 23:35:47 UTC 2011
#2121: Allow limited-scope Perforce checkouts
----------------------+-----------------------
Reporter: gmcnew | Owner:
Type: undecided | Status: new
Priority: major | Milestone: undecided
Version: 0.8.4p2 | Keywords: p4
----------------------+-----------------------
I use Buildbot for projects stored in Perforce, and it works great.
However, our builds require one's clientspec to span hundreds of gigabytes
of data, very small portions of which may be synced during the build.
You're probably wondering, "Why do your builds need to do that?" I could
provide more detail, but it's complicated, proprietary, and, most
importantly, out of my control. <sigh> Sorry.
The default behavior of a
[http://buildbot.net/buildbot/docs/current/manual/cfg-
buildsteps.html#step-P4%20%28Slave-Side%29 P4 sync step] is to sync
everything in the clientspec. However, this simply does not work for me,
because the clientspec is far too broad.
As a workaround, I've hacked my Buildbot slaves'
[https://github.com/buildbot/buildbot/blob/master/slave/buildslave/commands/p4.py
p4.py] to only sync p4base, rather than everything in my clientspec. This
works fine, but I'd really love similar functionality to be in Buildbot
proper so my coworkers and I won't have to hack Buildbot's code every time
we install it.
'''I'll be happy to write and test a patch for this.'''
Mostly I'd like a little feedback to figure out:
1. the best way to implement this
2. whether a patch would have a chance of actually being mainlined
My first instinct would be to add an optional "p4sync" argument to P4().
The value would be a
[http://www.perforce.com/perforce/doc.current/manuals/cmdref/o.fspecs.html
Perforce filespec] (example: "!//depot/path/to/sync/..."). If supplied,
P4._doP4Sync() would pass this string verbatim to "p4 sync" to limit the
scope of the sync. If not supplied, nothing would change -- the entire
clientspec would be synced, as before.
Thoughts?
--
Ticket URL: <http://trac.buildbot.net/ticket/2121>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
More information about the Commits
mailing list