Perforce stream branches in FishEye
Asked by Steven Rahn:

Our company is utilizing Perforce with their new "streams" (introduced in 2011.1 I believe). We wanted to start using a code review tool so we decided on Crucible since we already use Jira, Confluence and Bamboo.

Now the issue is that I can not find out if there is a way to set up our repository to work correctly with Perforce.

We have our streams depot labelled //xi-trunk. The main codeline is under //xi-trunk/main and then we have many other streams/branches that are from the main codeline all within that same repository (\\\\xi-trunk/production, \\\\xi-trunk\\dev1, \\\\xi-trunk\\dev2...).

Now I assume from issue [FE-738](https://jira.atlassian.com/browse/FE-738), that perforce does not currently support automatic branch detection, but is there a way I can manually set which are branches? If I set the repositroy to //xi-trunk/main, it is the head, like it should be but we cannot see any of the other branches. If I set the repository to //xi-trunk, then all of the branches are shown as folders in the head of the reposity which is less than ideal.

If there is a way I can indicate the branches off of the head //xi-trunk/main then that is perfectly fine since we do not branch/stream very often.


Answers:
author: Marc Towersap
body: yeah, we might go that way too, I got it to mostly work, but I don't know if I trust it when it goes live.


author: Marc Towersap
body: just add it already.

comments: author: Steven Rahn
body: Our Team has since switched to Perforce Swarm due to limitations of FishEye and Crucible. If you haven't looked into it I would highly recommend doing so, especially with Perforce Helix coming soon.


author: Felipe Kraemer
body: Hello,

Perforce streams are not currently supported in FishEye: <https://jira.atlassian.com/browse/FE-3886>

Please vote on the issue above as well as leave a comment there with your use-case in details. The more detailed you are, the higher is the likelihood of developing a solution that matches your needs.

Cheers,  
Felipe Kraemer


author: Marc Towersap
body: Odd, it seems that with crucible 3.7, once I set up my first branch spec, crucible seems to be picking up all other streams, even for stream depots that don't have a branch spec.

I did have to create one though, otherwise it just flat out wouldn't index a stream depot.

I don't know about fisheye, I just did it for crucible.

comments: author: Marc Towersap
body: Note though, while most things in crucible seem to support streams after having setting up one perforce branch, it flat out doesn't work when, on adding content, if you pick 'Choose branches'. No stream works as of crucible 3.7. Pretty much everything else seems to work, even crucible.py, unless there are particular types of files that crucible.py pukes over when trying to generate diff's, and it seemed to not work on binary files that are 'marked for add (p4v)' or added via p4 add. i've got to play more to verify this though (it might have been just over some temp file that gvim created that I added just for testing).


author: Felipe Kraemer
body: Hi Steven,

Unfortunately, no matter how you configure the Perforce repository in FishEye, it will never show branch information automatically.

For each and every branch you'll need to create a branch spec.


Tags: perforce