Moving the Ant.tmbundle
February 10th, 2010
Initially I set out with the aim to switch from Subversion to Git before there was an official plan from the TextMate crew. This has now changed, and all bundles that show Github activity are being removed from the TextMate svn repository. Which means that the official bundles I mirrored now have a duplicate Github mirror, and one that is more central for TextMate users and should be the root of all development. The Apache bundle was easy to sort, as there were no forks I could simply delete my copy. The Ant bundle wasn’t so straightforward.
Theoretically there’s no reason why two mirrored repositories couldn’t be used as each can be
added as a remote. But because of their independent initialisation against the
svn repo their histories aren’t identical this doesn’t work correctly in practice. Even though the file contents are identical at each commit git still recognises separate commits because git-svn appends unique metadata. So you end up with a lot of messy duplication in the history tree.
The fastest solution is to rebase one mirror into the other. Public rebasing
isn’t the done thing as it’s bad practice to be changing the repository history
when others could be working against it. However in this case we are looking to
retire one history completely. I think, given that there’s only a little work
in the forks, and the file content is the same it is the right solution.
So here are the steps I took to merge my mirror into the official one
- Forked and cloned the official bundle on github
cd‘d to the root of the clone- Added new remote using
git remote add old-origin git@github.com:simongregory/ant-tmbundle.git - Fetch the remote data
git fetch old-origin - Created old-master branch from the old-origin/master with
git br old-master old-origin/master - Checked out old-master
git co old-master - Rebased old-master onto master using
git rebase master - Switched back to master
git co master - Merged master with old-master
git merge old-master - Deleted the old-master branch
git br -D old-master - Created new sg branch
git co -b sg - Cherry picked the one commit I needed
git cherry-pick 91f598 - Pushed the branch
git push origin sg - Removed the old-origin remote using
git remote rm old-origin
Then to linked to the official TextMate remote using
- git remote add tm git@github.com:textmate/ant.tmbundle.git
- Fetched the remote data
git fetch tm - Checked master out
git co master - Synced master branches by pushing
git push tm(only possible if you have write access)
One extra thing to note is the change from the old naming convention using a hyphen to a period.
There’s likely to be a better way of achieving this, but this is what worked for me. It won’t work if you have any private branches as you wouldn’t be able to pull them across. In this case I’d look at inverting the process and adding the new fork as a remote to the existing repository and merging from there.
HelvectorLight Theme
December 23rd, 2007
I’ve just updated the ActionScript 3 Bundle to include an ASDoc language definition. This is essentially a scope change of Luke Daley’s JavaDoc language definition. The result is that the following scopes within the documentation blocks are brought under new colour jurisdictions.
keyword.other
entity.name.tag
punctuation.definition.tag
For me, using my favourite theme – Twilight – the extra colour where I was so used to seeing grey wasn’t working. To combat it, and get things greyscale again, I added 3 new theme elements and applied them to the following scopes:
comment.block.documentation keyword.other
comment.block.documentation entity.name.tag
comment.block.documentation punctuation.definition.tag
The results are the HelvectorLight.tmTheme which calms things down again.
TextMate ActionScript 3 and Flex Bundles
October 30th, 2007
As a Flash developer who’s been working with Flex and ActionScript 3 since late last year I found I couldn’t settle down and use the Flex Builder Eclipse plug-in. Previously I had acquired the habit of editing ActionScript using TextMate and compiled using the lightning fast MTASC, and although there were alternatives (FDT, Sepy), I’ve always preferred the lightweight flexibility and crisp feel that TextMate has. As a result I’m responsible for TextMate’s ActionScript 3 and Flex bundles.
At the moment the bundles are in the review section of the TextMate Repository. Once installed the bundle help covers how to set up (primarily to download the flex sdk) and outlines the non-obvious commands.
The main highlights of the bundles are:
- MXMLC and FCSH Build Commands.
- Function, Tag, Import Auto Completion.
- ActionScript 3 and Flex documentation search.
- Drag and Drop of imports, includes, embed assets, css, xml.
- ASDoc Support.
- MXML Validation.
- Manifest Generation.
- Class and Component Templates.
- Flex Builder compatible project creation.
- Unused Import statement removal.
- Shortcut Key Super Class, Code Behind and Import file opening.
Thanks to the following people who have all had a hand, although they may not know it, in the creation of the bundles:
- Daniel Parnell
- Theo Hultberg
- Mark Llobrera
- Joachim
- ChromaticRain
- Thomas Aylott
For those of you who don’t use subversion the following zip’s can be downloaded, but they won’t necessarily be the latest version :

