好吧,現在我想出了一個創建相對路徑的bash腳本。 我對bash腳本沒有深入的瞭解,所以這有點難看。請原諒我。 但希望這可以激起一個想法。
svn_export.sh
#!/bin/sh
for var in "[email protected]"
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.
所以基本上,你只需要在sed
的參數中修改這個字符串file:\/\/\/usr\/share\/svn\/
,無論你的svn URL是什麼。
例子: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
希望這有助於!
我是一個PHP人,會說你可以用Phing來達到這個效果。 – Ankur