Jump to content


Basic setup considerations


  • Please log in to reply
36 replies to this topic

#1 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 21 June 2020 - 09:49 PM

hey,

I´m a very new perforce user and while I´m trying to follow various youtube tutorials and I already managed to get the basics working locally, I have several questions regarding how to set it all up for my purposes...
I´m currently in the process of moving my fully CG animated shortfilm project to Unreal.
I have a small team scattered across the globe, so eventually I´ll have to setup a server online.
I´m totally new to servers, one thing I noticed though is, that server space is scarce.
My shortfilm currently is about 300gb on my local drive and while a lot of that will be redundant for Unreal, I´m still worried about server space...

So right now I´m trying to figure out :

1. If and how I can set up a local depot alongside an online depot...
2. If and how I could then merge those if needed.
3. If "streams" are the keyword here in setting up various purpose depots?
4. If I can do all those things with the visual P4V client, or if I still have to learn all the command line stuff...
5. If the local workspace and depot are actually same, when working only locally...

I´m not quite sure yet, what the best approach would be for me to set up the project on the unreal side.
And while this might not be directly related to perforce, its probably good to understand my needs, so you can help me figure out how to set up perforce for it.

The way the shortfilm is layed out, every shot would equal a specific level and sequence.

So now I could...:

A) Have one project (workspace) containing all shots and sequences.
Pro: Everything in one place and can´t go missing easily.
Con: If something breaks or gets lost, its a bigger deal to fix.
It would probably also be most difficult to plan out so I can effectively split out in local/online parts to save server space.

B) Have one project for the shared files (like main character rig or some level templates). And then each shot/level would be a separate project.
Once those would be finished they could either be rendered out separately and brought together in a compositing program, OR be migrated into the master project.

#2 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1192 posts

Posted 22 June 2020 - 03:13 PM

View Postinsertmesh, on 21 June 2020 - 09:49 PM, said:

My shortfilm currently is about 300gb on my local drive and while a lot of that will be redundant for Unreal, I´m still worried about server space...

Could you expand a bit more on what you mean by "redundant"?  Maybe some of that data doesn't need to be stored in Perforce because it can be generated automatically from other data?  (I have no familiarity with Unreal.)  If that's the case, all you need to do is modify your client view so you aren't submitting any of the "redundant" stuff.

To answer the specific questions (although I'm not sure this is actually the right track to solving your problem):

Quote

1. If and how I can set up a local depot alongside an online depot...
2. If and how I could then merge those if needed.
3. If "streams" are the keyword here in setting up various purpose depots?
4. If I can do all those things with the visual P4V client, or if I still have to learn all the command line stuff...
5. If the local workspace and depot are actually same, when working only locally...

1) Yes; use "p4 init" (in a fresh empty directory) to create an empty personal server in the current local directory.  Use "p4 clone" instead to initialize it with a copy of a shared (online) server.
2) Yes; use "p4 fetch" to pull content from the shared server into the personal server, and "p4 push" to push from the personal server to the shared server.
3) "Streams" are the unit of branching within a particular depot/server; they aren't directly relevant to what you're talking about here (the search term you want is "DVCS").
4) I think in theory it's possible but I can't vouch for how frictionless it is; the last time I used P4V (which was years ago) you had to hack config files to make it work with a personal server, but I've heard that it's gotten easier since then?  My preference/recommendation is always to use the command line for anything more complicated than browsing and basic sync/submit operations.
5) No; the depot/server stores all the versions of your files, whereas the workspace only contains the revision you're working on.  When you set up a personal server with "p4 init" or "p4 clone", the server root is created as a folder called ".p4root" which is then ignored from the workspace.  All of it lives in the "init root", which is the working directory where you set up the personal server and its associated workspace.

#3 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 22 June 2020 - 03:53 PM

Quote

Could you expand a bit more on what you mean by "redundant"?

Well, there are gigabytes and gigabytes of data from asset creation, like fluid simulations etc, that I won´t need inside Unreal.
It makes it a bit difficult to guess if I´m gonna need a server with 50 GB for 22 bucks a month (which I can afford) or a server with 160gb for 135 bucks (which I cannot afford).
I´ve also found a different provider then the official recommendations/youtube tutorials, that offers way more serverspace, but I don´t know if what they offer is actually what I need, because I´ve literally never touched a VPS...
Its a german provider, so you probably can´t tell me that either.
Next time I have a weekend to burn I´ll just get it, try to follow one of the youtube tutorials step by step and if I can´t get it to work, I can still cancel the subscription.

If it works and I can get 300 GB for 10 bucks/month, I´m not gonna worry anymore about a smart setup, I´m just gonna host my whole unreal project...

As for your other answers, thanks for confirming its possible.
I´m gonna stay away from command line as long as possible, I find the manual super hard to follow.
I know there is an option with the P4V to setup a personal server, but during setup I followed some instructions to use a remote server connecting to localhost: instead, which apparently also just creates a local depot.

#4 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1192 posts

Posted 22 June 2020 - 04:28 PM

Quote

Well, there are gigabytes and gigabytes of data from asset creation, like fluid simulations etc, that I won´t need inside Unreal.

If you don't need it inside Unreal, then do you need it inside Perforce at all?  This is a very important question because the answer might save you a whole lot of money.  :)  If there's stuff in your Perforce server that doesn't need to be there, you can spend some time tuning this while everything is still local (figure out what needs to be in Perforce vs what doesn't, how to set up clients/streams to make sure nothing gets checked in that shouldn't be, how to manage disk space by using tempobj storage and/or obliterate where needed, etc).  Then you'll be able to predict exactly how much storage you'll need on the real deal.

View Postinsertmesh, on 22 June 2020 - 03:53 PM, said:

I´m gonna stay away from command line as long as possible

Good luck! :unsure:

#5 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 22 June 2020 - 06:39 PM

Well, I´m already looking at a couple of different providers and some offer considerably more storage for the same price.
Although the existing files for the project might be just 50GB, its also just a quarter of the finished project.
And with each revision of any asset it will grow...
I´m actually still a bit foggy about that as well.
Lets say I have a FBX file of a highpoly asset, which is 1GB. If I change it ten times and submit each change to the server...Do I now have 10Gb storage blocked by that asset?
Or does perforce do some smart compression and figure out whats actually changed, and not just make a copy?

Like I said, I´ll just have to see if the other providers I´m eying let me set up perforce just like the recommended providers (and those that have dedicated tutorials).
As that will cost me at least a weekend, I´ll spend my time until then figuring out why my p4ignore won´t work, how I can tell perforce to only keep 3 revisions of any asset (I never had to go back more than 3 revisions on an asset, there is almost no coding involved apart from some blueprints maybe), how to split my project into smaller projects per shot etc.

#6 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1192 posts

Posted 22 June 2020 - 07:38 PM

View Postinsertmesh, on 22 June 2020 - 06:39 PM, said:

Lets say I have a FBX file of a highpoly asset, which is 1GB. If I change it ten times and submit each change to the server...Do I now have 10Gb storage blocked by that asset?
Or does perforce do some smart compression and figure out whats actually changed, and not just make a copy?

Each revision is individually compressed for storage (using gzip).  If FBX files are pre-compressed, then gzipping them won't help much, and you'll end up with 10GB of data in the depot.  If they compress well, you might end up with less.  There isn't any delta comparison within binary files.

Quote

why my p4ignore won´t work

P4IGNORE only works if you set it up *before* you add the files, and it can be overridden.  It's also not going to scale to other team members.  I'd recommend using streams and defining ignores/exclusion within the stream spec, since then it'll be automatically applied to every workspace.

Quote

how I can tell perforce to only keep 3 revisions of any asset

If you give a file the +S3 (for "Store 3 revisions") filetype modifier, then it'll keep 3 revisions and then automatically purge older ones as new ones are submitted.  This only takes effect for revisions that were submitted with that type, so you want to do this up front (again, before you add anything), probably via p4 typemap.  For revisions that you want to get rid of that don't have a +S type, use p4 obliterate instead.

Quote

how to split my project into smaller projects per shot etc.

That's more to do with how you structure your files than anything in Perforce.  From Perforce's standpoint everything is just files and folders.  If you want each project to have different physical storage and/or branching structures you might want to have one depot (not necessarily server) per project, but if it's just a matter of what Unreal considers to be a "project" then Perforce doesn't care whether it's all in one depot or not.

#7 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 22 June 2020 - 08:19 PM

Quote

Each revision is individually compressed for storage (using gzip).  If FBX files are pre-compressed, then gzipping them won't help much, and you'll end up with 10GB of data in the depot.  If they compress well, you might end up with less.  There isn't any delta comparison within binary files.
Aight. Thats what I thought and thats why I need to be careful.


Quote

P4IGNORE only works if you set it up *before* you add the files, and it can be overridden.  It's also not going to scale to other team members.  I'd recommend using streams and defining ignores/exclusion within the stream spec, since then it'll be automatically applied to every workspace.

Yeah, I´ve tried it both ways, I think I´m just missing bits and pieces from the instructions, like how to properly set the environment variable.(I need step by step instructions for stuff like that, not just "Set the environment variable")
Some posts say it needs to be .p4ignore, others p4ignore, some add.txt, some say it has to end with .p4ignore.


Quote

If you give a file the +S3 (for "Store 3 revisions") filetype modifier, then it'll keep 3 revisions and then automatically purge older ones as new ones are submitted.  This only takes effect for revisions that were submitted with that type, so you want to do this up front (again, before you add anything), probably via p4 typemap.  For revisions that you want to get rid of that don't have a +S type, use p4 obliterate instead.

Just read up on that. So I guess thats one of the functionalities that are NOT available within the P4V environment..hence the need for me to learn the commandline part.

Quote

That's more to do with how you structure your files than anything in Perforce.  From Perforce's standpoint everything is just files and folders.  If you want each project to have different physical storage and/or branching structures you might want to have one depot (not necessarily server) per project, but if it's just a matter of what Unreal considers to be a "project" then Perforce doesn't care whether it's all in one depot or not.

Let me elaborate on that.
ProjectA (Shot 010) = Workspace A = Depot A = local only (not synced with the remote server)
ProjectB (Shot 020) = Workspace B = Depot B = remote synced

So, thats how I imagine it works and I should set it up.
Or can all projects be in the same workspace and depot and I just use p4ignore to make sure all files in folder "ProjectA" are not getting synced remotely?

by the way, thanks for taking the time to help me get over these first bumps...

#8 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1192 posts

Posted 22 June 2020 - 08:39 PM

View Postinsertmesh, on 22 June 2020 - 08:19 PM, said:

how to properly set the environment variable.(I need step by step instructions for stuff like that, not just "Set the environment variable")
Some posts say it needs to be .p4ignore, others p4ignore, some add.txt, some say it has to end with .p4ignore.

Use "p4 set":

p4 set P4IGNORE=p4ignore.txt

The P4IGNORE variable is what tells p4 what it's called, so it can be called whatever you want.  It doesn't need to have "ignore" in the name; I always use "p4ignore.txt" because it's the easiest possible thing if I'm trying to remember what name I picked for my P4IGNORE text file.

Quote

ProjectA (Shot 010) = Workspace A = Depot A = local only (not synced with the remote server)
ProjectB (Shot 020) = Workspace B = Depot B = remote synced

Got it.  I'd assumed that you'd want the entire thing to be on the same server so that it'd all be backed up together, all accessible to anyone working on the project, etc -- but yeah, if you want versioning for all of these things but you *don't* want all of them taking up space on the remote server and/or available to remote collaborators, then you want to have some stuff on the remote server and some on a local server.  Each server should have its own workspace(s) in different locations on the local disk; then it's easy to know what's going to what server simply by what local directory it's in.

#9 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 22 June 2020 - 08:56 PM

Yeah, I was about to answer, but I´ve got to log out for today, my brain is mushed. I need a fresh start tomorrow, thanks again!

#10 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 23 June 2020 - 07:30 AM

...aaand I´m back.

So, I´m trying to use the p4 typemap command, but its not explained how to use it precisely. Again, I don´t get the syntax, its not self explanatory...

I opend cmd, typed in
p4 typemap binary +S3

So, what exactly would I have to type in to get the result, that ALL binarys only keep 3 revisions on the server?

#11 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 23 June 2020 - 07:57 AM

Ok, I got it.

Steps to recreate (for any noobs like me):

1. Open cmd (windows+r, type in cmd, enter)
2. type in
p4 typemap
3. A textfile opens.
# Perforce File Type Mapping Specifications.
#
# TypeMap: a list of filetype mappings; one per line.
# Each line has two elements:
#
# Filetype: The filetype to use on 'p4 add'.
#
# Path:	 File pattern which will use this filetype.
#
# See 'p4 help typemap' for more information.
TypeMap:
binary+S3 //....uasset

4. I´ve only added the line
binary+S3 //....uasset

It tells perforce to only keep 3 revisions of all files with filetype .uasset

5. hit save, then close the textfile
6. In the command window you should get a message "typemap saved"

#12 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1192 posts

Posted 23 June 2020 - 02:20 PM

For all the commands, you can use "p4 help (COMMAND)" to get a message explaining how to use it.  The first few lines will show you what command line parameters the command might take, and the rest of the text explains what the command does.


C:\Perforce\test>p4 help typemap

	typemap -- Edit the filename-to-filetype mapping table

	p4 typemap
	p4 typemap -o
	p4 typemap -i

		'p4 typemap' edits a name-to-type mapping table for 'p4 add', which
		uses the table to assign a file's filetype based on its name.

		The typemap form has a single field, 'TypeMap', followed by any
		number of typemap lines.  Each typemap line contains a filetype
		and a depot file path pattern:

		Filetype:   See 'p4 help filetypes' for a list of valid filetypes.

		Path:	   Names to be mapped to the filetype.  The mapping is
					a file pattern in depot syntax.  When a user adds a file
					matching this pattern, its default filetype is the
					file type specified in the table.  To exclude files from
					the typemap, use exclusionary (-pattern) mappings.
					To match all files anywhere in the depot hierarchy,
					the pattern must begin with '//...'.  To match files
					with a specified suffix, use '//.../*.suffix' or
					use '//....suffix' (four dots).

		Later entries override earlier entries. If no matching entry is found
		in the table, 'p4 add' determines the filetype by examining the file's
		contents and execution permission bits.

		The -o flag writes the typemap table to standard output. The user's
		editor is not invoked.

		The -i flag reads the typemap table from standard input. The user's
		editor is not invoked.

		'p4 typemap' requires 'admin' access, which is granted by 'p4 protect'.


#13 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 24 June 2020 - 10:32 AM

Yes, I´ve got that.
Problem is, that the explanation quite often leads to more questions...:)

#14 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 24 June 2020 - 10:36 AM

Also I just contacted support with my questions and I´m going to start a new topic. I realize its a bit redundant, but I wanna make sure it can be found by other filmmakers like me running into these considerations.

#15 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1192 posts

Posted 24 June 2020 - 03:23 PM

View Postinsertmesh, on 24 June 2020 - 10:32 AM, said:

Yes, I´ve got that.
Problem is, that the explanation quite often leads to more questions... :)

It's a lot easier if you just start from the beginning with setting up the basics (from the command line) IMO than if you try to jump in at the end and then work your way backwards.  It'll feel like you're learning a lot of things you want to "skip", but it's all stuff that you'll have to figure out at some point anyway, and it'll take twice as long if you don't know what questions to ask because you're approaching it from an angle that assumes you already have basic context.

There used to be this great "ten minute demo" on the Perforce website that took literally ten minutes to walk through and introduced you to all the basics.  I can't find a copy of it now, but the tutorial in the server guide seems like it's basically the same concept so that'd be the place I'd recommend starting: https://www.perforce...r.tutorial.html

Once you make your way through that (and even if you have to stop and look things up and ask questions along the way, I can't imagine it taking more than an hour), you have a good frame of reference for the basics of how Perforce works, and if you want to learn about how to make a multiple-server set up work (with personal and shared servers) you're in a good position to go through the DVCS tutorial: https://www.perforce...initialize.html

Going through these tutorials at the command line is a lot faster than trying to walk through GUI equivalents because (A) in many cases you can literally copy and paste the commands instead of trying to manually replicate what you're seeing on a screen and (B) because there are no gaps in functionality, whereas in most of the GUI workflows there's inevitably a point where it's assumed that you already set something up at the command line, and it seems like debugging those gaps can easily eat up an entire day on its own, in which time you could have just done the entire thing without the GUI ten times over.

(I've given this recommendation probably a hundred times over the years and it's seldom that anyone takes me up on it, but I still feel a duty to tell people the easy way before they go ahead with the hard way.  :) )

#16 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 24 June 2020 - 04:07 PM

Quote

It's a lot easier if you just start from the beginning with setting up the basics (from the command line IMO) than if you try to jump in at the end and then work your way backwards.

Usually I completely agree. My issue is mostly, that I need to figure out if all this would even work the way I need it to, before getting into it. Its like I´m in a foreign country and I need to explain to a doctor what medication I´m allergic to, without knowing how to even say "Hi, my name is..." :)

Once I know if its possible and I know the general route, I can start diggin into how things actually work.

But I think I´m starting to be on track now.

#17 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 12 July 2020 - 10:53 AM

Alright, I´m back...

So, a couple of things changed since.

I found a provider, that offers several 100gbs of storage for a fraction of the price from digital ocean. I had a long talk with support and allthough they didn´t know about perforce, they were pretty sure it could be run with their VPS.
I still spent a considerable amount of time thinking about how I wanna set up my project, specifically the kind of folder structure within Unreal, that would work best.
So, now I´m using ONE project to store all of my shortfilm.
I have subfolders for each shot, each shot folder contains the same set of folders, so there is a consisten structure.
I´m mostly following Allars UE4 stylesheet for this.
I also have one Core folder, that contains assets shared for the shots.

I do NOT need to distinguish between personal server and remote server anymore!
I do NOT need to have different setups for each client, nothing needs to be merged etc.
Basically everyone can see the same folder view and work within the same project.
The only things I need to control on a global scale is how many revisions are being kept at all times and which filetypes/folders should be ignored.

This weekend I took a deep breath and tried to setup my online VPS, following Allars tutorial:

https://allarsblog.c...<br /> <br /> And lo and behold...

It took me 10 minutes typing in the instructions step by step and my server was up and running...(the biggest issues here were mistyping stuff, as you can´t copy and paste in the putty command line editor)
Just to test it out, I created my first workspace and submitted everything to the standard depot, seems to work flawlessly.

With this all working, Im still trying to figure out the following:

1. p4ignore and typemap.
Apparently, from the last time playing around with this, my p4ignore was still active, so I immediately got a message while submitting about files being ignored.
Great!

But, you mentioned this won´t scale to client views and I get the issue...If I´m setting this up via command prompt on my local workstation, makes sense it doesn´t translate automatically to the client views.

So.
How do I proceed, if I wanna make sure every team member has the same settings, aka:

-certain folders and asset types being ignored from syncing
-all binaries only keep 3 revisions.

@Sambwise...you mentioned something about streams.
I´m still looking into that, but again, there is a lot of info in there thats just confusing, because I don´t need to merge or migrate anything.
I just need to know how to do the two things and how I need to utilize streams for that.

#18 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 12 July 2020 - 11:14 AM

There are two more scenarios that might happen regularily and I need to figure out how to adress them:

1. I´m not sure if thats even possible...but can a user check out a file and keep it checked out, even after closing the file in Unreal?
In this scenario, if the user would disappear (as the often do in a project like this), can I manually unlock the file and if so how?
If thats not possible, aka, if the file automatically gets checked out, if he closes unreal, this doesn´t apply and I don´t need to worry about it.

[EDIT] I should be able to do that with:

p4 unlock -u <username> -f

Just need to figure out how to get command line to work on my VPS...

2. Since I´m going to only be on the free tier of perforce with up to 5 users and those users will regularily change...What do I need to watch out for, in order not to mess things up?

A) Make sure the user has submitted any changes obviously.
B ) Do I need to delete the workspace created by this user on the server? Or is that only being stored locally on the user side anyways?
C) Anything else I need to do in order to not mess things up?

#19 insertmesh

insertmesh

    Advanced Member

  • Members
  • PipPipPip
  • 35 posts

Posted 12 July 2020 - 11:45 AM

Ok, seems like p4protect helps me do on a global scale, what p4ignore allows me to do on client side.

You can apoparently also do this via the p4admin tool in a graphical UI:

admin_protect.jpg

So, does this actually do what I think it does...?

1. Line:
grants user named "Samuel" super access to everything (thats me, being the admin)

2. Line:
grants all users of the group "collaborator" normal write access to everything.

3. Line:
Disallows access to all folders named "saved" on the depot to all users belonging to group "collaborator".
This is supposed to make any of these users unable to add the "saved" folder to the depot, as it contains only data being created locally, that don´t need to be version controlled.
I assume, if I accidentally already created that folder, noone in that group would be able to access it instead.

4. Line:
This line should prevent users to add any files containing "buildData.uasset" in its name.
Not sure how to use wildcards here, whats the syntax?

I still don´t know how to add the max 3 revisions typemap serverwide....

#20 Sambwise

Sambwise

    Advanced Member

  • Members
  • PipPipPip
  • 1192 posts

Posted 12 July 2020 - 03:10 PM

Quote

-certain folders and asset types being ignored from syncing

Three options here:

1) Use streams.  This is IMO the easiest and most flexible option.  You just make a stream like:

Stream: //stream/main
Type: mainline
Paths:
	share ...
Ignored:
	.assettype
	somefolder/...

Now when everyone else makes a client, instead of specifying a View, they just say:

Stream: //stream/main

And they automatically get the view that's defined by the Paths and Ignored in //stream/main.If you change //stream/main, their clients all magically update!  It's pretty cool.  The fact that streams *also* make branching/merging easy is nice if you use those features, but they're still very useful if you use them for nothing but managing client views.

2) Use permissions.  Just specify a protection table that blocks off access to the things you don't want people to add:

Protections:
	-//....assettype
	-//.../somefolder/...


This has the benefit of being centrally managed and impossible to override, like streams.  The main downside is that it's a little more likely to confuse users since they can't see the protection table, and only "super" users (i.e. you) will be able to add new asset types to this list.

3) Use triggers to enforce specific client views.  This is basically the "implement streams yourself" option; you probably don't want to do this.  It involves a lot of coding.

Quote

-all binaries only keep 3 revisions.


Using typemaps is the easiest method for this, but you have to explicitly list out the binary types by path (i.e. by file extension).  There isn't a way to do a mapping that's based on the actual detected type, unfortunately.


Quote

I´m not sure if thats even possible...but can a user check out a file and keep it checked out, even after closing the file in Unreal?
In this scenario, if the user would disappear (as the often do in a project like this), can I manually unlock the file and if so how?
If thats not possible, aka, if the file automatically gets checked out, if he closes unreal, this doesn´t apply and I don´t need to worry about it.


By default files aren't locked when they're checked out, so you don't often have this problem.  (Does Unreal maybe automatically lock the file when the user opens it?)  If the user does have the file locked when they wander off, "p4 unlock -f" is indeed the way for an admin to override it.

Quote

Do I need to delete the workspace created by this user on the server? Or is that only being stored locally on the user side anyways?

Yup, client specs are indeed stored on the server and do affect unlicensed usage, so you'll need to clean them up when you're done with them.

Quote

3. Line:
Disallows access to all folders named "saved" on the depot to all users belonging to group "collaborator".

For this you want the path to be //.../Saved/...




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users