Specific event names and Perforce

TL;DR: How do you identify the right event in P4V?

When using Perforce, the filenames for most types of files (events, effect presets, folders, groups, etc) only appear in P4V as the GUID, which is not human readable in terms of identifying which item in FMOD Studio they correspond to. As far as I can tell, this means that if I need to perform a specific Perforce operation on a specific file, like submitting or reverting a specific event, or moving only some of them to a different changelist, it seems next to impossible to find the right files to do that with.

We are using the Perforce integration for FMOD, but that doesn’t really seem to add anything that is helpful. The only UI change I have noticed with the integration is the addition of a Perforce submenu in the right click menu, but that doesn’t have anything I need in it. Nearly everything in that submenu doesn’t exist in Perforce as far as I know, or is using terminology that Perforce doesn’t use (might be Git jargon, but I’m not sure).

Regardless of the lingo, even if those do refer to operations I’m used to using, that menu still doesn’t contain the operations I need. And even if that menu did have what I need in it, I still always want to use P4V for any version control operations rather than doing them in the software I use to edit those files regardless of whether that’s a game engine editor, audio middleware, or an IDE.

So altogether, currently the only way I know how to, for example, move a specific event from one changelist to another is to:

  • In FMOD, right click the event and choose Copy GUID
  • In P4V, go to the find panel and paste the GUID into the search bar
  • Right click the event in the search results and choose “show in>Pending changelist”
  • Right click the highlighted event in the change list and select “Move to Another Changelist”
  • Select the destination changelist and click OK

That isn’t the end of the world for a single file, but it’s common to have to do something to multiple files at a time, and since “Show in>Pending Changelist” selects the item, it has to be done one at a time for every file you need to do something with. Obviously that doesn’t scale very well for using Perforce all day long every day.

Anyway, my point is just that other people use Perforce with FMOD plenty, so there must be some alternative to this, right? What’s the intended workflow for doing something like moving half of the FMOD events in a changelist to another changelist (specific events, not an arbitrary half of the changelist)? Or for reverting specific events in a changelist with many others?

Basically just how do I find the right events in P4V?

Sorry for the delayed response

The Studio source control integrations are admittedly somewhat simple, which makes it difficult to perform some of the more complex tasks you may want to do. such as moving many changes across changelists. The Studio scripting API is available for you to make some of this simpler by creating scripts that retrieve/process data from your project, and/or running the p4 executable directly from a script. This was the basis for the script-based source control integrations that shipped with previous major versions of FMOD Studio (2.02 and prior), the script for which I have attached here:

Perforce.sc.js.txt (38.3 KB)

I’ve noted your interest in more comprehensive/advanced source control options on our feature tracker, but for now, I’d recommend using the scripting API alongside the p4 executable to create scripts to suit your needs.

No, I’m not trying to use any part of the FMOD Perforce integration to do that. Really the only thing I’m trying to do is be able to tell which file is which when I’m looking at them in P4V. What I was saying is that the only way I know how to do that is by copying the GUID from FMOD and searching for it in P4V, but the only thing I’m really asking about is a better way to do that; just to know which file is which.

I appreciate the script, but really I’m just trying to do basic operations in P4V. I don’t think moving files from one changelist to another is an advanced operation, and I’m hoping I can figure out how to do that without writing code or using the console.

Here’s a good example of why I’m asking. I just got latest, and I have these two conflict. I have a bunch of files checked out, so it’s not obvious which files these are, but now I need to locate them in my changelist to do anything with them in P4V.

So if I want to submit my changelist, which I can’t do if those files are included in it, my options are:

  • Use commands in the console

Or

  • Copy GUID
  • Search Perforce
  • Click Show in changelist
  • Move to different changelist or revert, etc

Or

  • Match the GUID from the log with a file in the changelist by eye
  • Move/revert/etc

And at least the last two options can only be done for one file at a time.

Is that correct?

Unfortunately, Studio metadata file names aren’t designed to be human readable, so there currently isn’t any way to simplify the process of identifying them.

Your other option would be to create a Studio script, a custom p4v tool, or use p4vc to help you process the metadata files. I do agree that some kind of feature or p4v integration to make this easier would be worthwhile, so I’ve also added this to our feature tracker. Apologies that I can’t be of any more help in this situation.