#!/bin/bash # changes username in local svn repository if [ -f .svn/entries ]; then # are we in an svn dir? if [ -n "$1" ]; then # username arg given? echo $1 | grep -q @ contains_at=$? echo $1 | grep -q / contains_slash=$? if [ contains_at -o contains_slash ]; then # @s and /s break # reversibility echo "username must not contain @ or / signs" exit 1 fi olduser=`cat .svn/entries | grep '^svn+ssh://.*@' | cut -d / -f3 | cut -d @ -f1 | head -1` oldurl=`cat .svn/entries | grep '^svn+ssh://.*@' | head -1` newurl=`echo $oldurl | sed "s/^svn+ssh:\/\/$olduser@/svn+ssh:\/\/$1@/"` echo "Changing local svn user from $olduser to $1" svn switch --relocate $oldurl $newurl && echo done && exit 0 else echo "usage: $0 " exit 1 fi else echo "$PWD doesn't seem to be an svn directory" exit 1 fi