Jump to content

DVCS local and remote mappings with stream depth

  • Please log in to reply
3 replies to this topic

#1 tswalker


    Advanced Member

  • Members
  • PipPipPip
  • 33 posts

Posted 29 July 2017 - 08:54 PM

Hi, I've been working in what I guess is 'classical' perforce with just single depots and want to begin using streams.  I can see a benefit to this; however, I'm having some understanding troubles I believe and want to see if my implementation will not run into serious problems in the long run.

What I have typically been doing for a client/server solution is separating these two spaces as two depots and would like to combine this in future projects to a single depot having some depth in the depot for each space. e.g.:

-  //depot/client/...
     -  //depot/client/main/...
     -  //depot/client/dev1.0/...
     -  //depot/client/dev1.1/...
     -  //depot/client/rel1.0/...
-  //depot/server/...
     -  //depot/server/main/...
     -  //depot/server/dev1.0/...

I also want to start using DVCS for my local workstation(s), as I have been working with it over the past week and find it handy. On my local workstation, I will keep projects in a relatively flat hierarchy. e.g.:

- D:\Projects\Contract01\...
    - D:\Projects\Contract01\App\...
    - D:\Projects\Contract01\Server\...

In this, ContractXX will relate to a specific company which gets a dedicated depot on the server.  With DVCS, I can initialize a personal server in each sub-folder of the ContractXX hierarchy, and map this to its' related depth in the depot  (the depot stream has been configured with a depth of 2).  e.g.:

Client01 has a mobile app and server, of which both have a release, and ongoing development, with remote mappings of something like:

(dev1.0 remote mapping)
DepotMap:  //stream/dev1.0/...  //Client01/ClientApp/dev1.0/...

(dev1.1 remote mapping)
DepotMap:  //stream/dev1.1/...  //Client01/ClientApp/dev1.1/...

(mainline remote mapping)
DepotMap: //stream/main/...  //Client01/ClientApp/main/...

With DVCS I can easily switch streams locally.. it's kinda awesome.  And when I'm ready to push.. I just select which stream I want to sync with server based on my remote mappings and push.

The strange thing I've noticed though, if I use P4V to connect to the server like I would have traditionally done.  The depot and level 1 depth streams show up as I would expect (with the wave icon), but the level 2 (such as main, dev1.1, and dev1.0) just show up as traditional folders.  Which is ok, and I suppose good in some ways I can think of some benefits to that.

I believe (and have not tested it) that with DVCS, it is probably not a as much an issue as when working with it in personal server mode, the streams (main, dev, rel) all work as expected.

Am I being too concerned about the folders not being designated as actually streams for dev, main, and rel and this is how it is suppose to be as depth 1 is clearly a stream?

oh I failed to mention I'm using these versions for server (2017.1/1511680) and p4v client (2017.2/1518788)

#2 tswalker


    Advanced Member

  • Members
  • PipPipPip
  • 33 posts

Posted 30 July 2017 - 08:41 PM

ok, so after a bit of testing a few ideas I can see some things that could be a problem I suppose.

If I change my remote mapping(s) to just a single mapping say "//Client01/ClientApp/..."  only the latest revisions from my local 'personal' perforce will be able to be pushed.  Basically making the remote server only a mainline repository with only the latest revision (and history) of my pushes from either my local 'mainline' or 'dev1.0' streams.

I could keep a track of the local main/dev streams by extended the remote mapping, but this isn't what I imagined it should be.  I figured that it would be able to determine that I was trying to create functional streams on both local and remote servers.  Doesn't seem to be that way.

How do I do this then?  Create a stream depot on the server, then be able to create a local server with streams to work with it?

Do I need to first create all streams with P4V against the remote server, then use the local personal server somehow.  I'm not seeing this though.

#3 P4Jen


    Advanced Member

  • Staff Moderators
  • 132 posts

Posted 01 August 2017 - 10:58 AM


If you want to check that the items showing up as folders in P4V are in fact streams, you can run:
  p4 streams

from within the working directory of the DVCS server.

If they are indeed streams, there may be a UI issue in P4V.

If your company has support I suggest contacting 'support@perforce.com', so a P4V specialist can take a
look at this.


#4 mcru


    Advanced Member

  • Members
  • PipPipPip
  • 63 posts

Posted 26 September 2017 - 05:02 PM

To add to this - any chance we could get the wave icon added to the final dir in stream depth? For example, if you have stream depot with a depth of 3 (//stream-depot/1/2/3) the wave icon shows up on dir 1, not dir 3. It would be really beneficial to our end users if they saw the wave icon on dir 3 so they know that whole path is the path they need to create clients from that stream etc.

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users