View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0005228 | NoesisGUI | Studio | public | 2026-09-30 00:25 | 2026-11-05 04:01 |
| Reporter | ianneufeld | Assigned To | jsantos | ||
| Priority | normal | Severity | minor | ||
| Status | assigned | Resolution | open | ||
| Product Version | 4.0 | ||||
| Target Version | 4.0.2 | ||||
| Summary | 0005228: Studio interop with P4V needs a few helpful changes | ||||
| Description | Perforce version control manages files by having them initially on disk as "read-only" until explicitly checked out by the user for edit. If a user has not yet checked out a file for edit, then attempting to save their changes in Studio will result in a failure due to the file being in a "read-only" state. It would be ideal if there was a delegate available on Noesis::Studio::Options structure which was invoked before Save operations occurred so that the tool could automatically check out the file that is about to be saved (as is standard for many P4 editor plugins). It would also be helpful to allow for intercepting the file move/rename/delete logic to allow it to be done using similar P4 commands. Having these available as delegates in the same place would also be useful. | ||||
| Platform | Any | ||||
|
Just to make sure we're aligned: you need something similar to what we already have, but triggered before the file action happens, right? |
|
|
I'm still working through the specific implementation details, so the shape of what's needed is in the process of being discovered. I noticed that opening the file while it's read-only offers limited option to edit it. We would probably also need to intercept the file open (not ideal, creates file checkouts on files we might not edit) or change the behaviour to allow you to start editing the contents of a read-only file without setting it to writeable (preferred). Hopefully more specific/complete details next week as I continue working through this. |
|
We will review this. As far as I understand the only different should be at saving time. |
|
|
Notes from the P4 integration:
|
|
There is already a notification for move operations. If we also trigger this notification before the operation takes place, would that resolve your issues? |
|
|
It looks like if the event was raised out of Project::MoveProjectItem() and we performed the move before it got to FileExt::Move some important logic wouldn't execute. |
|
|
Yes, I see what you mean now. I'll first investigate what APIs Unity and similar platforms expose to address this specific problem. |
|
|
So, it seems that in Unity (https://docs.unity3d.com/6000.6/Documentation/ScriptReference/VersionControl.Provider.html), the client is responsible for performing move operations. The same applies to delete operations, which must also be executed by the client. I think we need a different approach here: expose functionality for moving, deleting, and creating files, and provide a default implementation in Studio that operates directly on the filesystem. |
|
This should now be fixed with r18290. User is able to edit a file with read-only attribute, and when they try to save their changes, they'll get a popup with options to try to "Overwrite", "Save as" or "Revert" the changes. |
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-09-30 00:25 | ianneufeld | New Issue | |
| 2026-09-30 00:25 | ianneufeld | Description Updated | |
| 2026-09-30 11:35 | sfernandez | Assigned To | => jsantos |
| 2026-09-30 11:35 | sfernandez | Status | new => assigned |
| 2026-09-30 11:35 | sfernandez | Target Version | => 4.0.1 |
| 2026-09-30 13:14 | jsantos | Note Added: 0012675 | |
| 2026-09-30 13:14 | jsantos | Status | assigned => feedback |
| 2026-10-01 19:08 | ianneufeld | Note Added: 0012688 | |
| 2026-10-01 19:08 | ianneufeld | Status | feedback => assigned |
| 2026-10-05 18:26 | jsantos | Note Added: 0012705 | |
| 2026-10-07 23:04 | ianneufeld | Note Added: 0012731 | |
| 2026-10-08 17:34 | jsantos | Note Added: 0012735 | |
| 2026-10-08 17:34 | jsantos | Status | assigned => feedback |
| 2026-10-08 19:53 | ianneufeld | Note Added: 0012739 | |
| 2026-10-08 19:53 | ianneufeld | Status | feedback => assigned |
| 2026-10-09 11:34 | jsantos | Note Added: 0012743 | |
| 2026-10-09 11:35 | jsantos | Note Added: 0012744 | |
| 2026-10-09 11:40 | jsantos | Note Edited: 0012744 | |
| 2026-10-09 11:40 | jsantos | Note Edited: 0012744 | |
| 2026-10-09 11:41 | jsantos | Note Edited: 0012744 | |
| 2026-10-16 12:18 | jsantos | Target Version | 4.0.1 => 4.0.2 |
| 2026-11-05 04:01 | dfranjic | Note Added: 0012870 |