Long story short, my team recently discovered the existence of “attributes” in Perforce. This is a currently-undocumented feature allowing you to attach arbitrary metadata (name/value pairs) to a revision of a file.
We had been developing a system for attaching metadata to version-controlled files via SQL, but faced a lot of complications when handling failure cases. Like when the P4 submit works, but the SQL update fails, or vice versa. It’s solvable stuff, but keeping those actions truly atomic and reliable was making the system quite complex.
The Perforce attribute feature renders that SQL layer and failure handling unnecessary, letting us stick the metadata right into the P4 revisions.
Although it’s undocumented, we’ve been told several “big customers” are using attributes, and Perforce plans to keep them.
You can get the basic info on using attributes with the “p4 -help undoc” command (which is itself undocumented :):).