We've got a pretty big repository with several branched trees.
So far we've had good luck hooking the DIFF process using a wrapper program, but we've got one snag that looks intractable.
In our situation, we sometimes need to bring-down a second file (a companion structure), generate the source, and DIFF the result.
We're using the Vault Command Line to GET or GETVERSION files from Vault. So far it's all cool (if unconventional) except for the following problem:
PROBLEM: Not enough information is being passed in the %LEFT_LABEL%, %RIGHT_LABEL%, %LEFT_PATH%, and %RIGHT_PATH% tokens in some circumstances.
Example: Say I want to DIFF file Foo Version 5 in Project A with an arbitrary Working Version of Foo somewhere on disk. Our DIFF wrapper handles this EXCEPT the %LEFT_LABEL% of foo just says:
Code: Select all
%LEFT_LABEL%= "File: Foo Version: 5" <-- No Vault path
BUT when comparing the latest Repository Version of Foo, the label will say:
Code: Select all
%LEFT_LABEL%= "Repository version ($/MyProject/MyFolder/Foo)" <-- Note the Vault path
The Vault path of Foo ($/MyProject/MyFolder/Foo) is critical in fetching Foo's companion structure by our DIFF wrapper. Moreover different incarnations of Foo exist in various other trees so it's not like we can just parse the XML from a recursive LISTFOLDER call because Foo isn't singular. Foo can live in several projects.
QUESTION, therefore:
1) Are there other DIFF tokens we can use besides %LEFT_LABEL%, %LEFT_PATH%, %RIGHT_LABEL%, and %RIGHT_PATH% ?? Specifically looking for a token that tells us "$/MyProject/MyFolder/Foo" for an older (historical) version of Foo.
See, behind the scenes, our DIFF wrapper calls GETVERSION again if the file being fetched has a companion structure. For historical versions, %LEFT_LABEL% and %RIGHT_LABEL% don't tell us enough to infer where that may be.
I'm considering a back-door kluge involving back-mapping the working folder to a Vault path, but gawd, there has to be a better way. I mean, c'mon
Thanks for any input you may have on this.