Archive for the ‘Subversion’ Category

h1

Subversion’s Ignore List

January 8, 2010

The idea behind the Subversion ignore list is very simple: when adding (using svn add or svn import) files into a Subversion repository, any file that matches a pattern on the ignore list is skipped.

The ignore list is constructed from two sources:

  1. the client specific global-ignores list;
  2. any svn:ignore property associated with the directory into which the file is being added.

The global-ignores configuration parameter is set in the client’s config file and applies to all additions executed from that client (excluding those that specify the command line option –no-ignore). To this global-ignores list is added, on a directory by directory basis, any patterns associated with svn:ignore properties associated with directories.

The ignore list becomes a little more complicated when combined with wildcards in file names provided to the add commands. Rather than write a long post on the subject I have provided an extract from my Subversion training course (divided into two parts here because of YouTube length restrictions, it’s all one video in the course :) Oh, and WordPress, who host this blog, do not support embedded playlists. If you prefer to watch this as a playlist, go here).

If you watch these videos here I suggest you expand then to full screen otherwise they’re too small to read (again, this is a limitation of wordpress.com hosting).

Part 1

Part 2

h1

Creating Tags in Subversion

December 4, 2009

Subversion does not support labels as many version control tools do. Instead Subversion uses the svn copy command to create ‘tags’.
By convention a Subversion repository is often divided into three sub-directories;

  • trunk, where the main development is often (though not necessarily) done;
  • branches, where (unsurprisingly) we maintain branches that may be used for any number of reasons to isolate some sequence of changes from the trunk;
  • tags, where we maintain tagged sets of files and directories.

It is this last area tags that this post considers in more detail. Read the rest of this entry ?

h1

Allowing users to change their own password using svnserve and passwd

July 7, 2009

One recurring issue users bring up when using Subversion’s own svnserve server and its own internal authentication system (password-db) is that users cannot easily change their own passwords.

The problem is that, when using svnserve and the internal password-db, usernames and passwords are held in a plain text file, usually within the conf directory of the repository to which they apply. This file cannot be made read/writeable to all users because this would allow all users to both see and change one other’s passwords (which would be very silly).

The usual solution to this is for the administrator to issue passwords to users and whenever a user wishes to change their password they ask the administrator to do it for them.

Here is a method for allowing users to change their own passwords. In summary, this is a hook script that intercepts requests to delete a special file. When an attempt is made to delete this special file the script assumes that the log message is the new password to be set for the user who requests the deletion. It then changes the entry in the local Subversion password database and rejects the request to delete the file.

Full details are available on the Principia Subversion FAQ.

h1

Subversion Repository Quick Start

June 23, 2009

A very quick introduction to setting up a Subversion repository and protecting it with Subversion’s own server and built in authentication system.

You’ll want to watch this full screen and in HD to get the best view.

This video is part of the upcoming Subversion Guru training course.

h1

Installing Subversion on Windows

June 22, 2009

Installing Subversion on Windows could not be simpler. The CollabNet installer is demonstrated in this short presentation.

Reblog this post [with Zemanta]
h1

Permanently removing paths from a Subversion repository

June 20, 2009

This post is an extended discussion covering removal of paths from a Subversion repository, covered more succinctly in the Subversion FAQ.

Before you start removing paths from your repository consider this: Subversion was not designed to have paths removed. That is why you cannot remove paths using the standard client interface, in fact you need to be an administrator and have direct access to the repository’s physical file system. Removing paths from a repository is a last resort. (There is a suggestion for an svn obliterate feature to provide path removal through the standard client, for which a functional specification has been placed in the Subversion development notes, but until this is implemented the following is the only mechanism available for permanently removing paths from a repository.)

Why might you want to permanently remove a path from your repository? Legitimate reasons include:

  • Archive old material from a very large repository to save space.
  • Remove sensitive information from a repository (perhaps added accidentally)

Strictly speaking we do not actually remove paths from a repository, we build a completely new repository. To do this we use three commands; svnadmin dump, svndumpfilter, svnadmin load. Read the rest of this entry ?