[devel at bb.net] Improved P4 (Perforce) support

Vedran Krivokuca vkrivokuca at gmail.com
Fri Feb 5 13:25:11 UTC 2016


Hi all,


I have made a slight modification of one of the source steps in
Buildbot, concerning support for Perforce streams. My idea is to now
make pull requests for both master and eight branch (have separate
patches prepared for that), but I would like your input if you want it
contributed some other way.

Streams are "light-weight" branching mechanism which resemble
Git-style branching more than the "old" "SVN-style" depots and
branches which were the default approach with Perforce few years ago.

On Perforce Streams in general:
http://www.perforce.com/perforce/doc.current/manuals/p4v/streams_overview.html

So, why is this important?

Streams are more of a "virtual" storage mechanism in Perforce, they
can reference parent streams only partially, can re-map parts of the
parent streams and so on... When replicating a Stream just like a
regular Depot (which current implementaiton of P4 source step always
doesi n Buildbot), these changes can reflect partially.

As an illustration, please observe attached graph of Stream depencies
on a live development project:

 - Box A represents mainline stream
 - Boxes B, C, D (and all of their same-level counterparts) represent
various feature/development streams
 - Box E represents a virtual stream, which remaps parts of the folder
hierarchy from the stream E to reflect needs of the stream in the box
F
 - Finally, box F represents completely new development project, which
relies on the parts of the source code from the stream in the box D

With the current implementation of the Perforce support in Buildbot,
box A always works fine (can be directly 1:1 replicated as if it's
being an old-style Perforce depot).

Boxes B-D can backfire, depending on the complexity of their setup (i.
e. if they have remapped or ignored paths).

Boxes E and F don't work at all properly, because features of such
streams are not recognized correctly if stream is pulled as depot.


Do I need to explain the origin of the need for this improvement
further, or should I make pull requests?


Best regards,
Vedran.



-- 
  Pozdrav/Greetings,
  Vedran Krivokuća
  Disclaimer: This message may contain information.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: perforce-stream-hierarchy.png
Type: image/png
Size: 25425 bytes
Desc: not available
URL: <http://lists.buildbot.net/pipermail/devel/attachments/20160205/b2b4c021/attachment.png>


More information about the devel mailing list