Jump to content

Plastic SCM, Gluon Required Merges on Binary Files


Donald Newlands

Recommended Posts

Hi,

We use Plastic SCM and Gluon with mostly binary Unreal Engine files: one machine in the studio runs SCM and the rest run Gluon. Several times we've had the same problem come up: SCM will claim that a merge (or branch) is required when checking in files, even when the changed files are not in any of the chagesets in the repository:

On Monday, Machine A and machine B were in sync.
On Tuesday, Machine A checks in a new version of file X using Gluon. 
On Wednesday, Machine B attempts to check in new versions of files Y and Z in SCM and we get a message that we need to merge files or make a new branch before we can check in!

I have resorted to manually copying the changed files out of the project on the machine running SCM, doing an "undo", syncing the project and then copying the files back into the project!???

It seems inexplicable that Plastic SCM does not say which files are causing the conflicts when these message pop up or offer a simple way to resolve them (when in doubt, the files on machine B should take precedence, etc) -- I must be missing something obvious.  

Why would SCM be requiring a merge when there are no files in conflict as far as we know? (it would be super great if, when the "merge?" prompt comes up, Plastic listed the files that it thinks are out of sync. The last time I clicked "merge" to see what happens, it was super slow (binary files), file by file (no "skip all", etc) and gave me no better idea of why the merge was required in the first place.

When it happened this evening, I made a new branch, which might be fine except now everyone in the studio using Gluon has to find the branch or I need to figure out how to make the merge work before they get to work...  What is the recommended workflow for binary files in conflict?  Should we branch and then merge the branch using "cherry pick"?

Thanks for your help!

-Donald Newlands

Link to comment
Share on other sites

Hello Donald,

We have a few resources where we explain this scenario and how and why Plastic is handling it this way:

- "Conflicts during checkin – working on a single branch" section where we explain detail what is an update-merge operation in Plastic: https://www.plasticscm.com/book/#_conflicts_during_checkin_working_on_a_single_branch

- Why checkin asks to update first? --> In this blog post, we start explaining what is merge tracking and why Plastic uses by default per-changeset merge tracking. It's very important you review the "Conflicts on main – why does new files come to my workspace?" section to properly understand this behavior

 http://blog.plasticscm.com/2018/02/why-checkin-asks-to-update-first.html

Note that is blog post is a bit old and still mentions that Gluon is not able to handle merges. Please avoid this part as some months ago we improved Gluon to solve file conflicts.

- What is the recommended workflow for binary files in conflict? If you are using Gluon, we recommend using locks. This way, you can avoid conflicts with not mergeable files (binary).

https://www.plasticscm.com/documentation/administration/plastic-scm-version-control-administrator-guide#Chapter7:Configuringexclusivecheckout(Lock)

I know that some of these Plastic concepts are not trivial and I would like to offer you a GoToMeeting session where we can review and focus on your specific cases. You can reach us at support@codicesoftware.com to schedule it.

Regards,

Carlos.

 

 

Link to comment
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
×
×
  • Create New...