We were testing this build as part of starting our 5.7 testing and noticed this perforce integration issue that we wanted to report.
In editor we have no option to submit to perforce when connected to revision control, “check out the modified files” is still there though. We are working around by submitting via p4v. Secondary issue is that Switchboard never shows the nodes as on the up to date CL, the text stays shown in red. We don’t see anything useful in the logs.
Hi Martin,
First, regarding the editor Revision Control menu, this appears to have been a deliberate change to the UX:
Change 39510441 by wouter.burgers on 2025/01/28 07:16:14
SourceControl: Remove 'Submit Content' button (and it's 'Sync Content' counterpart).
The 'submit content' action does not do any data validation and its usage is therefore discouraged (and is already hidden on multiple projects).
I have been told that the intended replacement workflow is now to open “View Changes” and submit from there.
Secondly, regarding Switchboard sync: What is supposed to happen as of UE 5.7 is that syncing via Switchboard writes a file, `.sblsync.json`, to the project directory, which contains the synced changelist number and the timestamp of the sync operation. If for some reason this step was failing, that might partially explain what you’re seeing. Would you be able to verify the presence and contents of that file in your project directory following a sync operation via Switchboard?
The other thing that might help narrow this down is that, upon (re)connecting to SwitchboardListener, Switchboard will run a `syncstatus` command that attempts to read this file. If it’s not present, Switchboard falls back to the method of determining the workspace changelist used in previous versions (`p4 cstat …#have`). This `syncstatus` operation will produce a log file, `sbl_helper.log`, also in the project directory with some details about the process. Note that this log file will be overwritten each time you either reconnect OR run a sync operation, so depending on whether your last action was to connect to the device or to sync it, its contents will be different. However, both logs may be instructive here.
Once you have had a chance to take a look at the aforementioned files, let me know what you find, and we can proceed from there.
Best,
Zach
Hi Zach,
We don’t see a submit button on the view changes dialog see the ‘nosubmit’ screenshot.
For the switchboard component, i looked through and the mechanism of updating the json file seems to work, but switchboard shows the nodes in red. i’ll upload the logs as well as a screenshot
Martin
Copy that on the context sensitive submit / seems to work.
I will attach the switchboard log after reconnecting node V01C01 as well as the requested screenshot.
Hi Zach, thanks for the detailed update, this is not a blocker for us we are only in early 5.7 testing, will retest behavior after the next 5.7 hotfix - Martin
Just to close the loop on this: A prospective fix has been committed for the UE 5.7.1 hotfix, and is about to go into QA. You can find the change on GitHub here: https://github.com/EpicGames/UnrealEngine/commit/344019733c28f87636c304aab59a86ad38983546
I’m going to go ahead and mark this complete for now, but please don’t hesitate to reach out if anything else comes up.
Best,
Zach
There is no dedicated top level button, but you can access many operations through the changelist and file context menus (screenshots attached).
Thank you for attaching the log that shows the sync process was able to write the .sblsync.json file correctly. Could you please also disconnect from the device and reconnect to it in Switchboard, and attach the new sbl_helper.log file that’s generated? The act of connecting to the Listener is what attempts to query the current state of that file, which will write out a different log to the same location. It would also help if you could hover over the red changelist indicator on the device and include a screenshot of the tooltip that’s displayed.
[Image Removed]
[Image Removed]
Thanks Martin.
I will note that this screenshot is subtly different from the previous screenshots; this one shows an asterisk next to the CL number. This is intended to convey that the workspace may be “unclean”; this could be due to local changes, or files synced to different revisions… Do you happen to know if one of these situations applies? It might explain at least some of what you’re seeing.
Best,
Zach
The screenshots I sent are accurate. The asterisk appears when you first connect to a node, and then disappears when you hit sync changelist hence the difference. What p4 commands is it running to ascertain if the whole workspace is clean? We run one big workspace per node and utilize streams for projects and engines which is different to how I’ve seen Epic do it next door. Running a p4 clean -n on the whole workspace is going to take a while so doesn’t look like that’s what it is doing, let me know what associated command you are using and I can run it to see output.
Have you tested this for the case where someone is syncing just the project directory rather than project and engine with switchboard?
Martin
Hi Martin,
Thanks for your patience. In general, you can see the p4 commands that Switchboard is running in the log files you’ve attached above. It constructs a list of paths it believes are relevant to your Switchboard configuration, then does a `p4 sync -n` to the specified changelist, expecting it to be a no-op in the case of a “clean” workspace.
I believe I’ve tracked down the root cause of the behavior you’re seeing. While we do test with the engine outside of Perforce (i.e. a binary build installed via the Epic Games Launcher), it seems we may have a gap in testing around this case where the engine is also in Perforce, but the user opts not to sync it via Switchboard.
The syncstatus command is incorrectly receiving the engine path even when the engine sync setting is “Use Existing,” and subsequently incorrectly considering it even though it’s (correctly) excluded from the sync. There is additionally a more subtle bug where even if you do not specify the engine directory via command line argument, it may nonetheless automatically discover and include it under some circumstances. I have logged a ticket for this, UE-350732. I’ll be testing and landing a fix soon in Main, and will ask for it to be included in an upcoming hotfix release.
Best,
Zach