Perforce Submit issue with files not in repo

Hey guys,
we are having a little problem with our Perforce integration and the Submit command. The problem happens when someone is working in UE and is out of sync with the depot, if the Submit their changes, all files that were recently renamed/moved/deleted from the depot appear in the Submit list as checked, grayed-out entries with an exclamation mark and we can’t un-check them, so UE decides to add them to source control and check them in and there’s nothing we can do about it (other then syncing with latest before submitting or course).

Is there a way to change this behavior?

Thanks for your time!

I’m not entirely clear on what you are describing here. Are users somehow concurrently working on the same files? This is the only way I can see that a file can be out of sync with the depot (which is what the exclamation icon means) but also need to be submitted/added.

It would be really helpful if you could you run through the process by which these conflicts can occur step-by-step, with screenshots of the dialogs you see. It’s not clear whether you are referring to the ‘submit’ or the ‘check out’ dialogs and which users are performing what actions in the process you describe.

Thanks for the more detailed explanation. I see what is happening now.

The fact that these files are disabled means that they are in a conflicted state (I was confused at first when you mentioned the exclamation mark, assuming that they were simply out-of-date).

In that case, there are a number of ways forward but all will involve some modifications to the engine. I wonder if you have any comments on what method you would prefer?

  1. Prevent submission of any files when there are conflicts present in the list. Conflicts would need to be resolved using P4V/TortoiseSVN etc.
  2. Default the conflicted files to ‘unchecked’ (but still disabled as they cannot be checked in without a resolve).
  3. Allow the check-in to fail (and allow the checkboxes to be checked/unchecked by the user), providing some useful error message.

Sorry if I was unclear!

Let’s pretend we have the following folder structure:
Content>Textures>MyFiles
Content>Textures>OtherFiles

So let’s say I got latest on the depot this morning, then opened up UE and started working on my own files in Content>Textures>MyFiles, which only I am working on. At this point, if I submit my changes and nothing changed in the depot, only MyFiles will show up in the submit dialog and everything is good to go.

Now if my co-worker, who was working in Content>Textures>OtherFiles, decided to delete all textures files within that directory and submitted his changes - thus deleting all files within MyFiles from the depot - if I submit my work without getting latest first, UE will see that I still have all the texture files in Content>Textures>OtherFiles on my hard drive, and because they don’t exist in the depot anymore, UE will assume I want to add those file to source control and will add them to my submit list, grayed-out and selected for check-in, and there’s no way for me to un-check them. So the only solution is to either Sync within UE before submitting my changes, or close UE, get latest in Perforce, re-open UE and then submit from within UE.

Now I understand what is happening and how to work around it, but I wish UE would let ME decide whether or not to add and submit files which are not under source control anymore.

My question is, is there any way to turn off that behavior?

Thanks!

I think solution 3 would be best since it would give the user the most freedom :slight_smile:

Great - for a workaround for the moment you can modify FSubmitItem::IsEnabled (line 60 of Engine\Source\Editor\SourceControlWindows\Private\SSourceControlSubmit.h) to remove the check for !Item->IsConflicted(). I have added an issue (UE-32659) to get this addressed properly with error messaging etc.