Hi,
I’m encountering a critical issue with path permissions in Plastic SCM, and I’m hoping to get some guidance here.
Scenario Overview
We have a Unity project with the following file structure:
Assets/Textures/background.png
Assets/Core/CoreSystem.cs
Our team consists of two members:
- John: Programmer and administrator.
- Dale: Artist.
Permissions Setup
We want Dale to have check-in permissions only for art assets, specifically anything under the Assets/Textures/
directory. To enforce this, we’ve set up path permissions in Plastic SCM so that Dale cannot modify or check in changes to code files like CoreSystem.cs
under Assets/Core/
.
The Issue in Detail
-
Branch Workflows
- Dale is working on his own branch:
main/task-new-background
. - John commits a critical fix to
CoreSystem.cs
in the main branch.
- Dale is working on his own branch:
-
Need for Updates
- Dale needs the latest changes from the main branch to continue his work, as the game won’t run properly without John’s fix.
-
Attempting to Merge
- Dale attempts to merge the main branch into his branch (
main/task-new-background
) to get the latest updates. - The merge includes the changes to
CoreSystem.cs
made by John.
- Dale attempts to merge the main branch into his branch (
-
Encountering Errors
- There are no merge conflicts.
- When Dale tries to check in the merge result, Plastic SCM throws an error:
You don't have permission to check in changes under Assets/Core/
- Dale cannot complete the merge because he lacks check-in permissions for
Assets/Core/CoreSystem.cs
.
Understanding the Problem
- Dale isn’t trying to modify
CoreSystem.cs
; he’s only trying to incorporate the latest changes from the main branch. - Due to the path permissions, any merge that includes updates to restricted files blocks Dale from checking in, even if he hasn’t made changes to those files himself.
- This issue prevents team members with restricted permissions from keeping their branches up to date with the main branch, hindering collaboration and workflow.
Why This Is Critical
- We have multiple team members with different roles and permissions (artists, testers, programmers).
- We need to restrict certain users from modifying core code files to maintain code integrity.
- However, the current permission setup disrupts the workflow by preventing necessary merges.
Questions
-
Is there a way to allow users to merge changes from the main branch without granting them check-in permissions for restricted paths?
- Essentially, can users like Dale merge updates that include changes to restricted files, as long as they don’t modify those files themselves?
-
Are we misconfiguring our permissions or missing a feature in Plastic SCM that accommodates this scenario?
-
What is the recommended workflow in Plastic SCM for teams with role-based path permissions to ensure smooth collaboration?
Has anyone faced a similar issue with path permissions in Plastic SCM? How did you resolve it?