On 8/4/2006, at 3:40, Quinn Comendant wrote:
As recommended, I've svn co'ed the bundles into my ~/Library TM directory
The official recommendation is actually to checkout to /Library :p
in anticipation of using svn to merge updates into my custom stuff (bundle items).
I assume ‘recommendation’ then refers to one of the suggestions in the recent “how do you manage customizations”-thread!?!
However, I already *have* tons of custom stuff, so I tried merging my old stuff into the svn working directory using rsync -au. I followed this with some diff-ing to merge the language files and other conflicts.
rsync will not work, because when TM saves a new file, it uses a filename based on the name of the item. But when later updating the file, it preserves the filename.
This means that a lot of the default bundle items have older names on- disk, but when you customize one, it will get an updated name in ~/ Library. So the filenames will not (always) be the same.
[...] Some stuff isn't showing up in the bundle editor (for example, both files exist: "PHP if( ).plist" and "if .. (if).plist", but the latter file is not available.
Because they have the same UUID. That’s the only thing TM cares about.
Any suggestions how to cleanly merge my old stuff into the svn co?
It’s not straight-forward. You would need to generate a map of UUID => filename from scanning all the default bundles.
Then iterate over your custom stuff, lookup the UUID in this map, and rename it to that filename. First then, will you be able to use rsync.
So the essence is that your custom stuff do not have the original filenames, so they must be renamed to take the place of the files in svn, and the original filename can be found by checking the UUID of the item, and finding out which original file has that UUID.
[...] (I've already tried deleting the bundle Info.plist files, but the missing stuff doesn't appear...just everything goes out of order.)
The Info.plist is only used to set the ordering of items (and by marking default items as deleted, as they can’t be removed from disk). So in practice this file plays no vital role at all.