Showing posts with label subversion. Show all posts
Showing posts with label subversion. Show all posts

Access Subversion from Emacs


Emacs is a feature-rich text editor, with perhaps, more editing commands than any other editor or word processor


There exists lots of documentation in Internet about this great editor, for example the following links are very useful:




Integration with Subversion


There exist several plugins for the integration of Emacs with Subversion
, but the best one is Svn Status Mode. It's work is based on previous plugins, like vc-svn and dsvn.



Installation


You can get the very latest version with any of the following commands:


  1. sudo svn export http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/psvn.el /usr/share/emacs/site-lisp/psvn.el

  2. sudo wget -O /usr/share/emacs/site-lisp/psvn.el http://www.xsteve.at/prg/emacs/psvn.el

  3. sudo wget -O /usr/share/emacs/site-lisp/psvn.el http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/psvn.el


Add the following line to your ~/.emacs


(require 'psvn)


How to use


From now on, you find a new menu entry Tools-->SVN Status in the XEmacs.


  • You can also launch the command Alt-x svn-status directory .

  • It opens a new buffer *svn-status* where you can see all files controlled by Subversion, with flags that indicate there state.

  • Inside the XEmacs you have a menu which gives you access to all kind of commands for commiting and more, if not, just have a look at the mentioned Wiki or issue the command Ctrl-h m.

subcommander

Recently, I discovered another graphical client for the subversion source control system.

subcommanderSubcommander is a cross platform (MacOSX, Windows & Linux) client with diff and merge tool and integrates very well into Ubuntu, and supports much better subversions trunk, branches and tags layout.

Screenshot
Compared to eSvn it can browse and work directly with repositories, and has all features from kdesvn.
See also my previously post about subversion GUIs.

It can be installed from Synaptic, aptitude or apt-get, but unfortunately doesn't create an entry in the applications menu.

GUI for subversion

First of all, I recommend all programmers to hold their sources, even personal stuff, in a source control system.
It makes things much easier if you have to perform some roll-back of parts of your code, or even have to find out bug regressions.

With subversion its so easy to have your own subversion repository and one day I'll talk about this.

To handle subversion from command line isn't very simple, especially if you want to compare what changed, if you have to resolve merge conflicts or you just want to investigate which projects are located inside a repository.

There are several implementations of GUIs out there for subversion.

Update: My latest recommendation is subcommander!

On KUbuntu the one I recommend is kdesvn that can be installed directly from the applications menu.
It permits to browse existing repositories and perform all possible operations like checkin/outs, merges, diffs, change properties, etc.
A very nice feature is its integration with the dot utility for painting Revision Graphs. You'll have to install the GraphViz package: sudo apt-get install graphviz

eSvn integrates better into Ubuntu than kdesvn, is almost equal, but has some limitations when browsing repositories (you can't see the log for a certain tag, for example). I still recommend it when you use Ubuntu. Another advantage: It's multi-platform, and is available for Windows also.

On Windows there is a very powerful tool called TortoiseSVN. Unfortunately, it hasn't been ported to Linux yet.
Tortoise has some special features for integration with issue tracking systems like Jira, integration into VisualStudio, aso.

Other applications

Previously, I recommended RapidSVN, but it doesn't support repository administration, nor it doesn't support double-clicking a file to see its content (you first have to checkout to a working folder).
On Ubuntu you find also SVN Workbench, but this tool doesn't support browsing existing repositories.