Return to Digital Photography Articles
IMatch Versioning - ManageVersions Script
As there is currently no native support for versioning in IMatch, I have written the Manage Versions script to work around this.
How to add Multi-Version support to IMatch
As most digital photographers typically perform some degree of post-processing or editing of the images after importing, one often ends up with several file versions of the same image in the catalog. Generally, the original image is left intact, and multiple copies are generated.
Unfortunately, most catalog programs treat each file as a seperate image, and do not recognize multiple files as being spawned from a single original. The net result is that when tags are applied to the multiple versions, the tags are associated with each file individually. This means that if the user wanted to apply a tag, such as location, to the photo, the location tag would have to be applied manually to all versions of the same photo. This can result in a lot of headaches.
It is fairly well accepted that the "next" version of IMatch (this feature has been promised for years!) will probably offer some sort of solution to the "versioning" issue. But until that version is released, it is worth using a script to automate some of this task.
I wrote the following script to automatically synchronize all categories and properties between an original image and the "edited" (derived) versions of the same iamge. This is done by careful use of file naming conventions.
Manage Versions IMatch Script
Please see the documentation included in the ZIP file below.
Download Manage Versions 2.3.4 (505 downloads).
See the Documentation for IMatch Manage Versions script here.
Version History
- ManageVersions 2.3.4 [07/22/2007]
- Updated for IMatch 3.6
- Minor error checks added
- ManageVersions 2.3.3 [01/10/2007]
- Fixed property copying in forced mode.
- ManageVersions 2.3.1 [10/24/2006]
- More robust handling of offline images for interactive mode.
- ManageVersions 2.3 [10/15/2006]
- Marking originals can occur anywhere in database. Even if original is not included in the selection and selection mode is used, the originals will still be tagged.
- Marking of originals is only done if derived version exists.
- Edit category is excluded from category comparison.
- Browse dialog for report file location.
Find Versions IMatch Script
Note that this is a beta, and so the documentation is currently very limited!
Find Versions is designed to quickly locate all original and derived versions of an image within your database. Simply select an image, run the script and then the original & derived images will all be bookmarked for easy location (simply go to "Selection" View and then "My Bookmarks". If you have changed your suffix character (from -), then open up the script and change SUFFIX_CH). This script is primarily useful for those who do not keep the original and derived versions of a photo in the same folder.
Download Find Versions 0.1.1 (217 downloads). (Released 03/03/2006)
Reader's Comments:
Please leave your comments or suggestions below!Does the script support raw on DiskA and modified on
DiskB using "Search and Replace" where the directory structure below the root is the same on both disks? I want to store the raw files on a separate disk so it can fill without saving space on it for modified files. Once the raw disk is filled I would no longer need to retrieve the off-site backup disks to sync them. Your examples only show root files on the same disk.
Thanks
any plans for the new version of the script? Syncing XMP would be great... :-)
Nobody mentions anything but the problems with the script, but the latest version seems to work perfectly. This is a real asset to the IMatch community. I really appreciate the effort you've made to address this feature, long promised and well overdue by the IMatch developer.
Warmest regards,
- Arved
thanks! But unfortunately it doesn't work. It seems to me, that IMatch 3.6.40 somehow isn't able to expand/interpret "ScriptFolder", but that's just a hunch. Problem is, that I'm not able to calculate any value for "Application.GetApplicationVariable("ScriptFolder")", not just a wrong value (e.g. that "ScriptFolder" points to the wrong directory).
The same error occurs even on a freshly installed machine. Fresh Win XP and no previous IMatch version but 3.6.40.
I'm not really a programmer, but I figure, that a new script which contains nothing but the following two lines should display a message box with a path name, right?
1 Const zzz as string = Application.GetApplicationVariable("ScriptFolder")
2 Msgbox zzz
Unfortunately it doesn't, but the script stops at line 1 with an error.
Do you have another idea as to what might cause this error or should I take this to the IMatch User Forum since it appears to be not specific to your "Manage Versions"?
Thanks again!
Alex
I have now uploaded Manage Versions 2.3.4, which should correct any issues for IMatch version 3.6.
is there an IMatch 3.6x compatible Version of your excellent versioning script? On my computer "Manage Versions 2.3.3" stops at the following line: "Const THUMBNAIL_NAME As String = Application.GetApplicationVariable("ScriptFolder") & "thumbnailtemp.bmp""
Let me know if that fixes it for you.
many, many thanks for sharing it (long overdue!).
scott.
Thank you!
what can I do?
Thanks in advance,
Carlos.
In the meantime, this is easy to fix. The problem is that your configuration file currently has a bad setting in it (probably an empty PREFIX_LEN, when it should have a number). When you start the ManageVersions script it automatically tries to load your last configuration first, and this is why you are getting the error.
The fix should be easy: simply open up your ManageVersions configuration file (probably located in your IMatch Presets directory), named ManageVersions_Config.txt.
Look for the line that says:
PREFIX_LEN=
Enter a number after the equal sign, for example:
PREFIX_LEN=8
Resave the file and everything should be fine!
how to use Photools. Your instructions were crystal clear. The dry run logs helped me straighten out some naming issues created by an application I don't use any more. Now my versions are in synch with my originals. You are wonderful and your script is wonderful. Thank you so very very much for making the script available.
By the way, I use Photools in large part based on information from your website. My naming strategy is also drawn from your website. Thank you so much for helping me organize my photographs before they got totally out of control.
Elle
Congratulations for your really usefull job !!!
I'm using your naming conventions( slightly adapted) they are really usefull,
I have a small issue:
- I have one category with my original ( .cr2 or .jpg without raw).
- When I shoot in RAW+JPEG, the jpeg is considered as derived.
- I have contents related categories ( places, persons,...)
- Before running your script, I would like to tag the original with content related categories but I would prefer not seeing the derived jpeg...
The question:
In IMatch, howcan I filter out all the derived images to only see the original when doing my tagging ???
Kind regards, and thanks in advance for your answer
If you do use this method, you may want to consider using a script that marks an original (with a different color) if it has derived versions. This way you can see if other versions exist even when the filter is applied. However, in your case shooting in RAW+JPEG mode will mean that everything has a derived version, so it may not be as useful.
As another completely different alternative, BenAW from the forum posted his approach, called VersionFinder.
Good luck!
This is a category that exist in my IMatch database. It work well with other scripts, but not in Manage Versions. Thank for your help.
I have a problem with Manage Versions. I believe that it does not recognize the category “Andalucía Barroca 2007”. There are some limitation by the use of special characters (" í " in "Andalucía")?
I am trying to use ManageVersions 2.2 to tag originals, for which I have jpeg versions, with a category titled 'Has JPG'.
I select my .jpg versions and run the script with 'tag original image' enabled, and the desired category specified, but no tag is made. The report says that all originals are being found but no tag of the original is being made (and in fact none is made)
I have tried this with copy categories enabled and disabled and, when enabled, the original categories are copied to the jpeg version, but the 'has jpeg' tag is not made either way.
All I am seeking to do is tag the originals with this 'Has JPG' category, I do not want to copy any other properties or categories.
What am I doing wrong?
Thanks for the help,
Joe.
Since you have the (version 2.2) script running in "Selection" mode, it was only going to change/update files that were included in the selection. The biggest clue to this is if the logfile entries listed with "Name=" (in Verbose mode) don't include your original files.
So, while the category copying may be configured to search the entire database (with Anywhere in Database) and it successfully locates the originals, because they are not included in the set that is allowed to undergo modifications by the script, no tagging is performed.
Since it would be awkward to manually include the originals in your selection prior to running the script, I have now rewritten the Mark Originals logic.
ManageVersions 2.3 can now be downloaded on this page.
The script can now modify the originals (adding the original category), even though they are not in your selection and you are running in "Selection" mode.
The intention of "Selection Mode" was to restrict the set of images that could be touched by the script, but this is a case where I think it would be more intuitive to add an exception for the marking of originals.
Thanks for the great feature request!
Thanks
Huh! I'm also a Cal married to a Sharon!
After trying several other approaches, I am implementing iMatch to manage my image files. I've tried your excellent versioning script and, although I'm almost there, it's not quite working as expected.
I use your naming conventions, for example: yyyymmdd-ImageName-001_v1.jpg. Typical folder arrangement is:
The script is identifying 20050810-Test-001.jpg as the original and ignoring the .crw and .psd files.
I'm using MODE_FIND=3 and EXTENSIONS="crw,cr2,psd,jpg"
Thanks for you excellent contributions to the field. Also enjoyed you photos!
... Cal (also)
Hi Cal -- Quite a coincidence :)
I am going to have a closer look in the next couple days. I am in the process of reformatting and reinstalling everything so I won't be able to recreate it for another two days. I'll post here and email back when I've had a chance. Thx.
Hello,
I have been using iMatch haphazardly (to learn it), but I am now planning my conventions and strategy for importing and then managing my collection.
Thank you for your comprehensive discussions on impulseadventure ? most helpful.
I like your naming conventions. In my case, it makes sense to have multiple suffixes. I'm thinking of d (developed from raw), e (general editing, normally without resizing), s (resizing/editing for web or email or digital displays), p (resizing/editing for print). This lends itself to multiple suffixes, like:
[original].cr2
[original]-d.tiff
[orignial]-d2.tiff
[original]-d2-e.tiff
[original]-d2-e-s2.jpg
My question is does your management script anticipate this? For example, this would (I think) require that the suffix in the last example be found as -d2-e-s2 and not -s2.
Thanks.
Thanks for the comments...
I realize that I should clarify my description file so that it indicates how the extensions are actually used. The Manage Versions script doesn't actually care what the suffix is, but rather whether or not one exists. It merely tries to determine if a file is an original (ie. it does not have a suffix) or an edited version (ie. it does have a suffix).
So, in your case, you're free to use just -s2 if you want (or -sd2, etc.). I have now made a slight modification to the script (for version 1.3.1) which allows you to use suffixes that indicate edit history (eg. -d2-e-s2) which is probably what you're after.
Hope that helps!