Highlighting the nautilussvn shell script

Posted in Miscellaneous on January 29th, 2009 by Adam Plumb – Be the first to comment

At some point in the past few weeks I decided that I want to be able to access the v0.12 NautilusSvn UI elements from the command line. So I wrote a simple executable python script called “nautilussvn” which calls the UI element of your choice as well as passes through any other arguments you give it. I simply put a copy of the script in my PATH (mine is at /usr/local/bin/nautilussvn) and call it any time I want from the command line.

Here’s an example of what I’d do if I was in the base directory of some working copy and I wanted to commit the code with svn:

#$ svn commit -m "MESSAGE GOES HERE"

With the nautilussvn script, It’s just about as easy, and you get all the UI goodies you’ve come to love…

#$ nautilussvn commit

Or to specify a path:

#$ nautilussvn commit ~/Development/thiswc

If you want to see all the available modules, just enter “nautilussvn” and you’ll get something like the following:

#$ nautilussvn
usage: nautilussvn <module> [path1] [path2] …

Available Modules
about, add, blame, checkout, cleanup, commit, create, delete, export,
ignore, import, lock, log, merge, properties, relocate, rename,
resolve, revert, settings, switch, unlock, update, updateto

I tend to use the command line quite a lot for work already, so this gives me access to some of the UI features I love (like working with files in the commit dialog) without the hassle of having to open up nautilus.

Another intro and status update

Posted in Miscellaneous on January 27th, 2009 by Bruce van der Kooij – 1 Comment

Just as Adam did I too would like to introduce myself. My name is Bruce van der Kooij and I was born and raised in The Netherlands, am in my early twenties, recently graduated and currently work as a technical consultant for a local IT company.

I’ve been involved in the NautilusSvn project for quite a while already, at least since Juli 2007. I was one of the major reasons Jason migrated the project to Google Code in June of 2008 (prior to that it was solely being distributed as a tarball through Jason’s personal website). However, up untill recently my contributions to the project consisted of a few minor patches here and there (one liners) and janitorial work (helping people on the mailing list, triaging bugs, updating the website etc.).

Largely thanks to Adam all that changed last Christmas. I felt that the time of the year people normally celebrate with their family was the ideal time to start hacking away on NautilusSvn. And hacking away I did. I worked some 8 days non-stop (8 to 16 hours a day) on implementing some major parts of the extension.

The core functionality, status checking and emblem handling was significantly improved. Though as Adam indicated there are still some kinks to work out. Another major feature was the implementation of submenus, an implementation I’m quite proud of myself.

In the process we have to work around several limitations in the Nautilus extension API (libnautilus-extension). One example of this is that the update_file_info function tells us about changes to items (directories and files) but not about items that aren’t visible in the current view, this is the major reason directory emblems are not kept up-to-date in v0.11 (and a manual refresh is required). We’ve worked around this particular issue by using inotify to keep track of modifications ourselves.

As Adam indicated in the previous post I’m currently working on finishing up the status checking code (mostly performance issues), I hope to do so somewhere in the coming days/weeks (but certainly not months ;-).

Intro and End of January Project Status

Posted in Status Update on January 26th, 2009 by Adam Plumb – 4 Comments

I’d like to introduce myself. My name is Plumb…Adam Plumb. I live in Northampton, Massachusetts, USA, am in my twenties, and work from home as a web developer. I recently created an online boggle clone game called Serpentine, which people have been having a lot of fun with. I’ve been a linux user for a few years now, and have strongly missed having a subversion extension for my file managers (I used TortoiseSVN in Windows). Queue to this autumn when I started learning the Python language and found out about the nautilus-python bindings. I decided to make a TortoiseSVN clone for Nautilus, and started working on my idea until I found the NautilusSvn project and joined forces with Bruce. Together, we decided to do a complete rewrite of NautilusSvn and transform it from a collection of scripts to a robust, well-engineered application.

We’ve been hard at work on the NautilusSvn v0.12 rewrite for well over two months now, and are getting quite close to an alpha (“feature-complete but expect breakage”) milestone. At this point, we’re only waiting for Bruce to finish up his status checking code before we can release an alpha snapshot and ask people to start testing. Indeed, Bruce has been very busy with work and “real life” lately, but the positive side to that is the “delay” has given me an opportunity to continue to polish the UI (which needs to be a bit more robust).

Once we release an alpha snapshot (hopefully within the next couple weeks), we’ll get to work fixing bugs and refactoring in order to get a really solid v0.12 final release.

Hello world!

Posted in Miscellaneous on January 26th, 2009 by Adam Plumb – 1 Comment

Hi everyone!

Welcome to the development blog for the NautilusSvn project.  Our project’s actual website is hosted on google code at http://code.google.com/p/nautilussvn.

What is NautilusSvn?
NautilusSvn is a Python extension for Nautilus which integrates a load of Subversion functionality into the GNOME Nautilus file manager, basically as a clone of the TortoiseSVN project on Windows.

What is the project’s current status?
The current “stable” version is v0.11, which provides a set of basic tools, including:

  • Checkout
  • Commit
  • Revert
  • Diff (using Meld or gvimdiff)
  • Log Viewer
  • Revision and SVN User as columns in Nautilus views
  • Emblems to show file status (though buggy)
  • SSL authentication (buggy)
  • Username and password entry dialog
  • Editing Properties

However, the next version, v0.12, is going to be a total rewrite, with some pretty awesome features and functionality.  Here is a list of what to expect for v0.12:

  • Complete rewrite of extension and user interface layer.
  • Improved status checking and emblem support. Manual status refresh no longer required.
  • An entirely new context menu in Nautilus including submenus.
  • New UIs: Add, Copy/Branch, Cleanup, Export, Import, Lock, Merge, Relocate, Revert, Rename, Settings, Switch, Unlock, Update-to-Revision.
  • Updated UIs: Checkout, Commit, Popup Dialogs, Log, Notifications, Properties.
  • Many UIs now have context menus.
  • Working packages and installation instructions for major distros (Ubuntu, Fedora)

We’re getting really close to an alpha (“feature-complete but expect breakage”) milestone, with beta and final milestones coming soon afterwards.

Keep your eyes peeled here for more news, updates, and developments on the NautilusSvn project.