[TxMt] merging UUIDs

Allan Odgaard throw-away-1 at macromates.com
Sun Apr 9 02:09:44 UTC 2006


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.





More information about the textmate mailing list