Jump to content
karmakat

Update a workspace, but not the writable xlink or vice-versa

Recommended Posts

I am having some trouble finding clear documentation on the following:

- Is it possible to update a workspace, but NOT a writable xlink?

- Is it possible to update an xlink directory, but nothing else in a workspace?

Thanks in advance!

Share this post


Link to post
Share on other sites

Hello @karmakat,

short answer: No it's not possible.

long answer: Well, for a sporadic situation you can do it.

Plastic is based on changesets, you'll be loading a changeset configuration in your workspace so when you update your workspace to a given changeset the entire structure will be loaded, xlinks included, they behave like a directory. There's a way to stop updating a given directory and it's done using the cloacked.conf file: https://www.plasticscm.com/documentation/gui/plastic-scm-version-control-gui-guide.shtml#addToCloakedListCommand, if you want to start updating it again you can remove it from the lists and run an update. The file supports exceptions rules so you can cloack everything (*) except the xlink (!/path/to/xlink).

My short answer comes because I'm not sure if the cloack will be comfortable enough for what you want to achieve.

My long answer comes because technically it's possible and you can actually setup something really interesting with the cloak rules + the external tools (https://www.plasticscm.com/download/releasenotes/6.0.16.1486#ga-image-log)

Share this post


Link to post
Share on other sites

Thanks Manu! This is exactly what I'm looking for. I will test it out to make sure it's appropriate for our workflow.
I've noticed also that the cm.exe update command has a flag for --cloaked, so you may force an update of cloaked items, so I believe that will allow me to do what I need to.

 

 

Share this post


Link to post
Share on other sites

You are right! I forgot about that option! It will take into account the cloaked items as well so all your workspace will be updated if you use that flag regardless if they are cloaked paths or not.

Please return with feedback! :) 

Share this post


Link to post
Share on other sites

Looks that clocking xLink is a nice feature to work (switch between changesets) in case of no connection to server pointed by xLink. Am I right?

BTW Is similar option (--cloaked) available in GUI?

Preferebly: would be great to have "Update" button extended with possibility to update also cloaked stuff.

Optionally: Add option to change "Update" behaviour in options (but this would be definitely much less comfortable - a lot of more clicks to get result)

See following user-voice: https://plasticscm.uservoice.com/forums/15467-general/suggestions/9216747-add-update-cloaked-and-update-forced-to-item

Share this post


Link to post
Share on other sites
17 hours ago, Misieq said:

Looks that clocking xLink is a nice feature to work (switch between changesets) in case of no connection to server pointed by xLink. Am I right?

But if you are not having connection with the server used by the xlink you will get a warning message and nothing else will happen. It's really similar to cloaking the xlink, you'll save the warning.

17 hours ago, Misieq said:

BTW Is similar option (--cloaked) available in GUI?

I'm afraid it's not. Let's see if the user voice entry gets traction to get it implemented!

 

Share this post


Link to post
Share on other sites

As far as I recall when switching workspace from changset which does not have xLink to changset which contains xLink (or between changsets where xLink was modified) there was an error message and workspace switch failed.

But I may be wrong :)

Share this post


Link to post
Share on other sites

Hi @Misieq,

You will get something like this:

/xlinked

Error: The specified repository couldn't be found: xlinked.

But the rest of the workspace will be updated :)

 

Share this post


Link to post
Share on other sites

Hi all,

I want to follow up after I've spent sometime working with the cloaked.conf feature. I've had some successes and some issues and workflow challenges.

  • Cloaking an xlink directory does not work. Even updating the workspace at root ( "." ) using the --cloaked flag fails to pull the contents of the xlink. The xlink will never appear again in the workspace, even if it is removed from the "cloaked.conf".  Therefore, it can also not be deleted. This seems like a bug more than anything.
     
  • The "solution" to the above point is to add all the folders under the xlink to the cloaked list. Now when updating using the "--cloaked" flag from the root, the entire workspace is updated.
     
  • Cherry-picking updates in a cloaked directory structure does not work. Requesting anything that is not already on disk in the workspace results in the error that that path is not in a workspace. Ie. If you have a file in the path of "xlink/Assets/Props/thing.fbx" and try to update this file when "Assets" folder is cloaked, the operation will fail.

    I strongly feel this last point is serious weakness of PlasticSCM, certainly in the workflow I need. I need to maintain a contiguous folder structure between work in progress Art assets, and development, so these wip assets can interact with assets in the game engine in a sort of sandbox paradigm, without actually being part of the same repo.

    We obviously do not want to have to pull down the entire art repo when doing development, hence using the cloak feature.  This means I will need to pull down everything in the "xlink/Assets/Props" folders just to get my single file updated.

    The solution I think is that I will have to remove the "xlink/Assets" folder from the local workspace's "cloaked.conf", run my cherry-pick update, then add the "xlink/Assets" folder back to the "cloaked.conf". At least this should work to accomplish my workflow. I have some more dev to do to accomplish this, but in theory it is the work-around.

 

Share this post


Link to post
Share on other sites

Hi @karmakat!

thank you for the feedback. I'm interested in getting and solving the three issues you mentioned.

Are you available for a fast gotomeeting sessions this week? We are based in Europe.

Share this post


Link to post
Share on other sites

Great, thanks.

What about tomorrow at 10:00 AM (16:00 here)? I will be available the rest of the week same time as well.

Share this post


Link to post
Share on other sites

Hiya,

Following up on our chat and add some clarity to my post above and the workarounds...

There is a workflow issue wherein if you have a file nested within a cloaked directory, and the parent folders do not already exist in a local workspace, you cannot run an update using the command line tool and the "--cloaked" flag for a specific item path . It will result in a message like: "Could not find a part of the path to ...." .

Since Plastic is currently looking for the parent folders to exist upstream of the file location in the workspace, you would have to drill down folder by folder from the root, pulling down the entire contents of each of those folders.

The workaround is to use only a local workspace "cloaked.conf" and not a global one, and edit this cloaked.conf to remove all the folders that may be cloaked temporarily before running the update command. After running the update, you may add these folders back into the "cloaked.conf".

Ideally, PlasticSCM would implement a feature that out-of-box, you are able to update / getfile for any valid repo path, whether it is cloaked or not. It still makes sense that the "--cloaked" flag would be required for any file that is cloaked or is nested within cloaked directories.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×