さて、相対パスを作成するbashスクリプトを思いつきました。私はbashスクリプトについての深い知識がないので、これはちょっと醜いです。私を許してください。しかし、うまくいけば、これはアイデアをかき立てます。
svn_export.sh
#!/bin/sh
for var in "$@"
do
svnArg1=$var;
svnArg2=`echo "$svnArg1" | sed -e 's/file:\/\/\/usr\/share\/svn\///'`;
tempDir=`dirname $svnArg2`;
tempFile=`basename $svnArg2`;
if [ -n "$tempFile" ]; then
if [ ! -d "$tempDir" ]; then
echo "mkdir -p $tempDir";
echo `mkdir -p $tempDir`;
fi
echo "svn export $svnArg1 $svnArg2";
echo `svn export $svnArg1 $svnArg2`;
fi
done
exit 0;
使用法:
sudo svn diff -r 1:HEAD --summarize file:///usr/share/svn/TestRepository/ | awk '{print $2}' | xargs ./svn_export.sh
出力
A TestRepository/trunk/test2.txt Export complete.
A TestRepository/trunk/test3.txt Export complete.
A TestRepository/trunk/test.txt Export complete.
file:\/\/\/usr\/share\/svn\/
したがって、基本的には、引数のこの文字列をsvnURLに変更するだけでsed
済みます。
例:svn:\/\/127.0.0.1\/svn\/project1\/branches\/
したがって、使用法は次のようになります。
svn diff -r 1540:HEAD --summarize svn://172.0.0.1/svn/project1/branches/branch1 | awk '{print $2}' | xargs ./svn_export.sh
お役に立てれば!