//Tips tagged svn
Latest tips by RSS
Click here to subscribe
Follow Shell-Fu on Twitter
Click here to follow
Follow Shell-Fu on identi.ca
Click here to follow
In bash (or anything using libreadline, such as mysql) press ALT+. to insert the last used parameter from the previous line.


$ vim some/file.c
$ svn commit

View Comments »

Resolve all your conflicted files. Use with caution!!

svn st|awk '/^C/{ print $2; }'|xargs svn resolved

View Comments »

vimdiff <(svn cat -r ##ver## foo) foo

will put you in the usual vimdiff output, but comparing between ##ver## and your current version of foo

View Comments »

Sometimes, you want to add a lot of files to SVN from the command line. This simple command will find all unversioned files in an SVN checkout and adds them to SVN versioning.

for i in `svn status | awk '{if ($1 == "?") print $2}'`; do svn add $i; done

View Comments »

CASE: You've relocated Subversion and Trac repositories to another machine/directories. You don't want to edit n+1 trac.ini files.

You have for example:



Change ALL trac.ini repository_dir settings:


#!/bin/bash TRACSPATH=$1 REPOPATH=$2 for i in $( find $TRACSPATH -maxdepth 1 -type d | grep -v "^$TRACSPATH\$" ); do BN=`basename $i` INIPATH=$i/conf/trac.ini TMP=$i/conf/trac.ini-temp # Replace repository_dir cat $INIPATH | perl -pe "s@repository_dir = .*@repository_dir = $REPOPATH/$BN@i" > $TMP mv $INIPATH $INIPATH-old && mv $TMP $INIPATH && rm $INIPATH-old done

./trac-mass-repodir-edit.sh /repos/trac-myprojects /repos/svn-myprojects

Then you want to resync and upgrade all existing Tracs:



for i in $( find $TRACSPATH -maxdepth 1 -type d | grep -v "^$TRACSPATH\$" ); do
  BN=`basename $i`
  # SVN directory exists
  if [ -d $REPOPATH/$BN ]; then
    echo "Processinc Trac: $BN.."
    trac-admin $i resync
    trac-admin $i upgrade

./trac-mass-upgrade.sh /repos/trac-myprojects /repos/svn-myprojects

Now you have everything in order.

View Comments »

Home Latest Browse Top 25 Random Hall Of Fame Contact Submit