Universal OSX Subversion 1.5.0 Binaries Available

Well, I dropped the ball. I packaged the Universal OSX Subversion 1.5.0 Binary over a week ago but I forgot to spread the news. I have gone back to my previous packaging, removing the CollabNet Subversion packaging approach used during the Subversion 1.5.0 release candidates. For those of you new to my Universal OSX Subversion offering, here are the highlights:

  • All Subversion server modules. (Apache modules and svnserve.)
  • All Subversion repository back-ends. (Both Berkeley DB and FSFS.)
  • All Subversion network layers. (file, http, https, svn and svn+ssh.)
  • All Subversion language bindings. (Java, Perl, Python and Ruby.)
  • All OSX CPU architectures. (ppc, i386, ppc64 and x86_64.)
  • All OSX CPU instruction sets. (32-bit and 64-bit.)
  • OSX packaging complete with GUI installer.

As usual, this package installs on anything OSX 10.4.x+ and does not interfere with any of your previously existing Subversion installations, including the Subversion 1.4.4 version installed with Leopard.

I'm sure you guys are probably tired of the mundane posts but I've just been so busy recently. Not only have I been working feverishly to get AnkhSVN 2.0 out the door but I've also switched positions at CollabNet. A lot is going on and soon enough, which means when AnkhSVN 2.0 finally comes out, I'll be able to start posting good materials again. Thanks for being patient.

Subversion 1.5.0 RC8 for OSX Released (Client Only)

In an effort to keep pace with the rampant release of Subversion 1.5.0 release candidates, I have published the Universal OSX Subversion 1.5.0 RC8 binary on openCollabNet. This release is a Client-Only release. When Subversion 1.5.0 final is released, you can expect a full offering like what is offered with the latest Universal OSX Subversion 1.4.6 offering.

The release candidates are offered to give you early access to the pending Subversion 1.5.0 final release. In the event that you have issues with the release candidates, please post your comments/concerns/issues in either the openCollabNet Merge Tracking Forum or the Subversion Users Mailing List.

Sorry to be so brief, and blogging so little lately, but I have to finish getting AnkhSVN 2.0 release out the door. Expect more after AnkhSVN 2.0 releases, which will occur either the 13th of June or within a few days of the Subversion 1.5.0 final release.

New Subversion 1.4.6 Release for OSX Adds 64-bit Support

As many of you know, I'm the maintainer of the Universal Subversion binary for OSX hosted on openCollabNet. When I released the last version of the binary, I quickly found out that the Subversion Apache modules wouldn't load under the default Leopard installation of Apache. The reason for this is that Apache on Leopard is a 4-way universal binary and when ran on a 64-bit CPU, Apache would run as a 64-bit application and would attempt to load a 32-bit Subversion module. The result was an error about an unsuitable image. As soon as I found out about the issue, I began devising a plan to fix the issue but I did not have access to a 64-bit installation of OSX. Well, due to the success of the OSX binary on openCollabNet, CollabNet decided to hook me up with a new MacBook and my problem was solved. Within a few weeks, since I do this on my own time, I had a new Subversion 1.4.6 build for OSX that is a genuine 4-way universal binary. This means that the new binary works on 32-bit and 64-bit version so of both Tiger and Leopard. This happens to be the only real "feature of the new binary, since the binary already includes everything Subversion has to offer. If you are new to the binary, or just need to know more about the binary before you download it, please see the original release. This link also has the download location as well. Enjoy and please remember to send feedback and/or requests to me at facilitators@svnbinaries.open.collab.net.

Subversion 1.5.0 RC4 for OSX Released (Client Only)

Well, for the first time in the Subversion 1.5.0 RC phase, I've managed to get a build up on time. The purpose of the Universal OSX Subversion 1.5.0 RC4 Client binary was to get Subversion 1.5.0 out in front of the community for those of use lucky enough to be running OSX. One of the major things you'll notice about the 1.5.0 RC4 release is that it is CLIENT-ONLY. This means no bindings, no server modules and not even svnserve. (The reason for this is that CollabNet asked me to do it this way.) Another thing you'll notice is that this release of Subversion is a 4-way universal build supporting both 32-bit and 64-bit instruction sets on both the PPC and x86 CPUs. This will mean more to you if/when the server stuff is delivered, since right now the 1.4.6 build I have out does not work with Leopard's Apache. All is not lost though. The plan is for me to rerelease the 1.4.6 binary with 32-bit and 64-bit support along with all the other goodies it usually comes with. Keep checking in as I will post here when the new 1.4.6 binary is ready for download.

Please feel free to comment on the new CollabNet packaging of the Universal Subversion Binary here.

SharpSvn: A Powerful C# Client Binding for Subversion

A few months ago I got involved with AnkhSVN and as part of working on AnkhSVN, I was introduced to SharpSvn. SharpSvn is a C# implementation of the Subversion client API that has become the core of AnkhSvn. To be brief, I am very impressed with the completeness of SharpSvn, its design and well written/documented source code. To learn get more acquainted with SharpSvn, I decided to write a little Subversion Log Viewer using SharpSvn but to keep from reinventing the wheel, let me point you to my CollabNet blog entry: SharpSvn Brings Subversion to .NET. This blog entry describes my impression of SharpSvn, has a documented code snippet outlining how SharpSvn was used and also reference to the downloadable SharpSvn-based Subversion Log Viewer source code.

Clone Remote Subversion Repositories With svnsync

Have you ever needed to easily create a backup/clone of a remote Subversion repository? It sure would be simple if it were local because you could just create a filesystem copy and go about your business. What makes the story worse is when you don't have physical access to the server where the repository is located. This problem usually means filing issues, making support calls, talking to operations or whatever steps you have to take to get the powers that be to create a dump file, or an archive of the filesystem, and post it somewhere to download it. Sometimes this is not a big deal but for others, it can be quite difficult. Well, Subversion actually ships with a nifty little utility to give you the ability to backup/clone any remote repository that you can read.

svnsync became part of the standard Subversion distribution back when 1.4 was released. Designed to easily create and automate the management of mirror repositories, svnsync became a staple for those wanting easy, automatic and readily-available off-site backup. Using svnsync, you could populate all repository changes, as they occur, to a fully-configured Subversion server at a different location ready for a failure. With svnsync, companies were able to make Subversion failover a non-issue. But our focus on svnsync today is for a different purpose.

If you look closely at svnsync's usage patterns, it operates on urls. This means there is no requirement reason that you have to have physical access to the repository to run svnsync against it. Reading this should make a light bulb go off in your head because, "Yes", that means you can run svnsync to create a duplicate of any remote repository to which you have read access. No more filing internal tickets to get your repository clone. No more having to work through your hosting company's support lines to get a duplicate so you can test some new Subversion log parsing tool. The reasons behind needing/wanting a clone of a repository are endless. For a simple list of steps to utilize this information, please look below:

* Create your local repository: svnadmin create PATH
* Create an empty pre-revprop-change hook script: echo "#!/bin/bash" > PATH/hooks/pre-revprop-change
* Make the pre-revprop-change hook script executable: chmod +x PATH/hooks/pre-revprop-change
* Initialize svnsync: svnsync init file:⁄⁄⁄PATH URL_TO_REPO_ROOT_TO_CLONE
* Synchronize: svnsync sync DEST_URL

(Note: "DEST_URL" is the url to the Subversion repository you created in step 1.)

It's that simple. While I know I'm not the first to come up with this usage scenario for svnsync, I do find it quite fascinating and can only imagine how many times it would had saved me time in the past had I only remembered to use it. Now when you need a "dump file" and you do not have physical access to the Subversion server to create one yourself, use the steps above to create a repository clone locally and create your own dump file.

  • (Updated 04/07/2009: Updated the syntax to reflect the new svnsync usage pattern.)
  • (Updated 04/14/2009: Updated typo.)

Getting Things Done With Tracks

Due to my busy schedule, I am constantly forgetting things. I tried using a calendar but it's usually more work and doesn't allow me to prioritize or categorize my thoughts. I also tried more archaic approaches like sticky notes and such but no matter what I did, I constantly forgot things. If I focused on work, I'd forget personal stuff and vice versa. So I looked around on Google and that is when I found Tracks.

Tracks is a web-based applications loosely incorporating David Allen's Getting Things Done (GTD) methodology. While I've never read David's book and I've barely read the Wikipedia reference, I installed Tracks to give it a shot. (By the way, being a glutton for punishment I attempted to install Tracks on a shared GoDaddy hosting account and it actually worked. For a good reference as to how to do this, look here.)

Tracks installation is actually trivial when you have direct access to the box you're installing it on and once it's installed, it is so simple a caveman could use it. Within a few minutes I had setup a few projects, a few contexts and I was already adding tasks to Tracks. I was literally able to install, configure and use Tracks within minutes. Now, before I tell my person opinion of how Tracks helps me get things done, let me just shed some light on what makes Tracks so appealing.

Once you install Tracks and you login, you're welcomed with a very intuitive Web-2.0 user interface. Without reading a shred of documentation I was able to hit the ground running with Tracks. The UI itself is a feature I'd say since it has the ability to quickly add tasks and if your task references a project or context that doesn't exist yet, that's okay because Tracks will add one for you if your inputted project and/or context isn't already a predefined one. This has saved me a lot of time because in the short amount of time I had to configure Tracks initially, I didn't think of all necessary projects or contexts. You also have the ability to do inline editing of your tasks from your dashboard. Instead of being redirected to another page and losing visibility into your tasks, you are simply presented with a form to modify your task. With the Tracks Web-2.0 UI you also get other things like nice validation, field assistance, etc.

Now...what makes Tracks so important for me is the dashboard. It's the single most important page within Tracks. Not only does it display your tasks, broken down by context, but you seriously do not need to leave this page to use Tracks. From here you can view your tasks, your projects, your contexts and you can add/modify/delete your tasks from here without any redirections. Color coded statuses are in your face and you can filter your view to make things more palatable. Tracks even comes with RSS/iCal/Txt feeds that you can consume with other tools to put the dashboard, or filtered version of your dashboard, somewhere else like a Dashboard Widget, an iGoogle Widget or other consumer of said feeds. Want to know how you're doing? Click the Statistics tab and you're presented with nice graphs/charts of your Tracks usage. Tracks is a top notch system for managing your tasks.

Well, I've tried to give you a high-level overview of what Tracks brings to the table but nothing seems to provide real kudos like a user story so here it is. I've been using Tracks for a little over 2 weeks and I am glad that I found it. I have complete visibility to all of my tasks in a configurable way that makes me more productive. Not only has my productivity increased but I've also noticed that I'm more on time and I forget things less. I even have proof of this by looking at my statistics. Tracks has help my get my life in order and I appreciate the team's efforts.

P.S. - I'm working on a Tracks Dashboard Widget for OSX and iGoogle. If I get these done before someone else does, I'll let you know.

AnkhSVN 2.0 Roadmap

As an employee at CollabNet, I have the pleasure of working on open source software on the clock. I started working on AnkhSVN a few months ago and I have helped in formalizing the next release of AnkhSVN. I guess you can call me the Project Lead for CollabNet. Anyway, we've finally published our 2.0 Roadmap yesterday as a public announcement of what to expect when AnkhSVN 2.0 is released. Since the roadmap has all the necessary information to keep track of the progress, I'll just give you a high-level overview of what to expect from AnkhSVN 2.0.
AnkhSVN 2.0 will have many features that you'll notice when released:

  • Subversion 1.5 support
  • Merge and merge tracking support
  • Property management support
  • Visual Studio .NET 2008 compatibility
  • Enhanced log and blame support
  • ...

I'll let the roadmap give you the full list, and you might want to view the Issue Tracker list of 2.0 candidates not in the 2.0 roadmap. Other than the obvious benefit of the new features, architecture and package, AnkhSVN 2.0 is a huge step in the right direction to make AnkhSVN a more complete Subversion client with features that you'd expect to see within the Visual Studio IDE. Feel free to browse the AnkhSVN project for more information, more roadmap details and for information on how to get involved.

Initial Impressions of Drupal

Well...although the look and feel is like most other Drupal sites when they start, I have successfully migrated ThoughtSpark.org to Drupal. I have to say that Drupal has been a dream to work with. Thanks to this, I have been able to migrate ThoughtSpark.org in just a few hours. Here are a few topics I'd like to discuss about Drupal:

  • Installation: Installation was a breeze. On my test box, I just followed the instructions and in a few minutes, I was up and running. On my production site, I'm running on a shared GoDaddy.com hosting environment and installation of Drupal on GoDaddy.com was painless due to push-button installation.
  • Configuration: Configuration was painless as well. While I did follow the Drupal Single-User Blog article. Although the article made this process simple, the approach of Drupal would had made configuration a no-brainer even without such an article, not to take away the usefulness of the article. Since the administrative user interface is extremely intuitive, anyone could had taken an installation and ended up with what you see here.
  • Extensibility: Extending Drupal has been as easy as the items above. All of the third-party modules I've installed have been without error except for the GeSHi Filter Module, which gave me a nasty PHP error. (Note: The solution to this issue was found here.)
  • Appearance: Drupal comes out of the box looking like a sexy, enterprise-ready user experience. The default themes are very-well put together and are configurable as well. The problem with this is that the default looks so good that people use it forever meaning there are many sites which just scream "DRUPAL SITE". This isn't really a problem honestly but until I have more time, I guess I'll just scream "DRUPAL SITE" too.

That is all I have time for. Bottom line is that my departure from Joomla has been done without any regret. I've ran into no issues installing, configuring, extending or using Drupal for my CMS.

Migrating ThoughtSpark.org to Drupal

Well...I've decided to give Drupal a shot. While not completely dissatisfied by Joomla, I've been hearing a lot of great things about Drupal from respected colleagues. So here I am.

My plans with Drupal is to not only syndicate my own personal thoughts, views and such to you but also to use some of Drupal's more developer-centric tools to be able to manage my personal projects and such. It's the next best thing since I'm using GoDaddy.com's shared web hosting and I cannot install what I'd like, which is Trac for those of you that don't know me.

As for the site, you should see the content is as it was before but it will look completely different. I plan on massaging the look and feel of this site as time goes on. (Yes I know I'm using a standard Drupal theme but that is all I have time for right now.)

Anyway, wish me luck.

Syndicate content