Home > svnstash

svnstash

Svnstash is a project mainly written in PYTHON and SHELL, it's free.

A stash extension for subversion, for when you just _have_ to use subversion and can't live without stashing.

svnstash

An svn extension that adds stashing to the repository.

Installation

  1. Copy the file "svnstash" to a directory in your path (ie. ~/bin), make it executable.
  2. It should just work (provided you have subversion installed and in your path).
  3. If you want access to some extra features, svnstash dependencies will tell you what you need to install.

Features

  • Stashes working directory to repository level so you'll never lose it.
  • Tracks moved files (only using svn mv) from when you create a stash to when you apply it.

Prospective Features

I'm working on a way to handle these cases correctly, but for now, they don't work.

  • If you svn mv a file in a working copy, then stash it, it will not be tracked correctly. svn diff doesn't handle this right.
  • If you svn mv a file and then modify it, it will not be tracked correctly, either. Patch doesn't like patching files that don't exist.

Workaround

If you move a file and then commit it, it will be tracked correctly.

Commands

Run svnstash help for details on the commands.

  • apply - apply a stash
  • dependencies - show all svnstash dependencies and if they are met
  • list - list all stashes
  • pop - apply and delete a stash
  • push - stash (save) all changes and revert working directory
  • remove - delete a stash
  • save - save a stash without reverting
  • show - show the details of a stash (in other words, dump the diff)

Bash Autocompletion

Source the svnstash.bash file to get some autocompletion. It's pretty rough for now, but will be better later.