Ticket #678 (closed enhancement: wontfix)
Allow CVS checkout/export of multiple modules
| Reported by: | satyagraha | Owned by: | unpaidbill |
|---|---|---|---|
| Priority: | major | Milestone: | 0.8.+ |
| Version: | 0.7.11 | Keywords: | projrepo cvs |
| Cc: |
Description
The standard CVS checkout/export syntax allows not just one, but multiple, modules to be checked out/exported, see http://www.cs.utah.edu/dept/old/texinfo/cvs/cvs_18.html#SEC73 . I had a clear requirement to do just this in my buildbot, and doing multiple separate source.CVS() calls for each module did not seem to work well due to purging of directories. Therefore, I propose that the cvsmodule parameter of source.CVS() be generalised to accept a list of module path strings in addition to just a single string as at present; all the specified modules would be checked out/exported at once.
I have implemented this functionality on my buildbot system in just a couple of lines of code, and it works perfectly. Note that in this scenario one would normally expect to use the additional (currently undocumented) parameter checkout_options=['-N'] to ensure that the full directory tree was retained for each module and the multiple checkouts/exports did not end up on top of each other.
If this proposal is acceptable, I am happy to push up the change and updated documentation.
Change History
comment:2 Changed 3 years ago by marcusl
Neat!
Howewer, please write the problem or describe fix in commit message, then end with "(fixes #xxx)" instead. (see #673 as an exacmple)
This makes it much easier to browse the commit history and find commits related to a certain part without having to look up ticket numbers in Trac. (and if we shift bug system, it's not totally hopeless)
comment:3 Changed 3 years ago by dustin
- Milestone changed from undecided to 0.8.0
satya - Marcus said it all. The code looks fine. Drop by #buildbot if you need help with the github stuff. You may also want to set your git author information to something other than "unknown" so you get credit :)
comment:4 Changed 3 years ago by satyagraha
Thanks. Just for completeness, it's worth mentioning that I recently found a fairly old posting which points out that PBChangeSource can't handle changes in multiple modules: http://osdir.com/ml/python.buildbot.devel/2005-08/msg00019.html (see point labelled 3.).
Presumably it's possible to have two (or more) separate CVS change detectors, one for each module, which all trigger the same build? If not, you'd have to use the highest common file prefix, with a risk of false triggering I guess. For my application, nightly builds were fine so I haven't investigated that question.
comment:5 Changed 3 years ago by dustin
Yeah, support for that sort of thing is sparse in buildbot, sadly. Once the schedulerdb work hits the trunk, I think we'll have a nice starting-point for progress on that front.
comment:6 Changed 3 years ago by dustin
- Milestone changed from 0.8.0 to 0.8.+
Please take a look at the new project and repository support that was just committed. Changes and SourceStamps? can indicate their repository and project, and Schedulers can filter on it. What remains is to adjust the source steps to do things like what you've described here.
comment:7 Changed 3 years ago by dustin
- Keywords projrepo cvs added
- Milestone changed from 0.8.+ to 0.8.1
comment:8 Changed 3 years ago by unpaidbill
- Owner set to unpaidbill
- Status changed from new to accepted
comment:11 Changed 15 months ago by dustin
Bill, were you going to get this merged? What's the status?
comment:12 Changed 4 months ago by tom.prince
- Status changed from assigned to closed
- Resolution set to wontfix
This is probably best handled via the new multi-codebase support.
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)
Fix now added at: http://github.com/satyagraha/buildbot/commit/7cea218545698446017fbe15a9af55840cb0af7a