User Tools

Site Tools


Sidebar

software:subvesion

Subversion

pysvn-workbench

I sometimes use GUI's on my development workstation. For Linux, the best I've found so far is a very old one named pysvn-workbench, which is sufficient for my needs. However, some of the documentation is lacking.

Configuration File

The configuration for pysvn-workbench is in ~/.WorkBench/WorkBench.xml. It contains some global preferences, then a list of all projects with their configurations. When preferences are changed, the file is renamed with a .old suffix, then recreated.

In that directory is also a log file for actions (WorkBench.log) and the most recently used log message (log_message.txt).

The WorkBench.log file appears to be rotated every 100k, ie it will rename the old log file to WorkBench.log.1, then start a new one.

Using Templates

Templates sound like a great idea, but figuring out how to set them up is pretty much undocumented. I finally started looking at the source and found the following:

  1. Create a directory
    1. in that directory, place one or more files with the suffix .template
  2. Open PySVN
    1. Select a project
    2. Open Project | Settings from the main menu
    3. Under New Template File Folder, enter the directory you created.
  3. In the future, every time you create a new file, you can use one of the templates.

Note I have not been able to figure out a way to set one template folder for all projects. You have to set the template folder for each one.

Set up standard layout

  1. Create the new repository (aka project)
  2. Check out the project
  3. Create the following directories
    1. branches
    2. tags
    3. trunk
  4. Check the project back in
  5. check out the project again, but with the url/trunk
  6. Always work in trunk, unless you're working on a branch. tags is for when you want to create a check point.

Using the Caret (^)

As of Subversion 1.6, from a working copy, you can use the caret (^) as a substitute for the root URL of the project. Thus, if your you are in your working copy someplace, the following are equivilent. Note that even if you only checked out trunk, the tags are still accessible since it is the URL that is substituted for the caret. This can greatly reduce typing.

http://svn.example.com/project/trunk/subdir1
^/trunk/subdir1
http://svn.example.com/project/tags/v1.5.0
^/tags/v1.5.0

Creating a tag

svn copy http://svn.example.com/project/trunk  http://svn.example.com/project/tags/1.0 -m "Release 1.0"

OR

cd /path/to/project
svn copy ^/trunk ^/tags/1.0 -m "Release 1.0"

Maintaining a "stable" tag

I've always been intrigued with people who use subversion with a tag that always points to the most recent stable version. Never figured out how they do it, but thanks to one of my associates, came up with this simple action when a new version has become your most recent stable version</.

  1. Create a new tag. I usually use a version number
  2. Delete the old stable tag if it exists. Be sure and use recursion.
  3. recreate the stable tag from the new version
svn ls -v ^/tags
svn delete http://svn.example.com/project/tags/stable -m "Changing latest stable version"
svn copy http://svn.example.com/project/tags/v1.0 http://svn.example.com/project/tags/stable -m "Making v1.0 the most recent stable copy"

Unfortunately, I did not record the exact steps when I did this the last time, so this is pretty bogus. However, I'll be doing it again in the near future and will update this then. Do Not blindly follow this. It is some notes for me so I'll try to remember the next time I have to do it.

software/subvesion.txt · Last modified: 2019/12/07 15:28 by rodolico