如果我做了一些小改动,让我们说五个不同的文件,并将这些文件提交给Subversion,我怎样才能准确检查原始文件夹结构中的这些文件,以便稍后在FTP服务器上传和覆盖?
如果我尝试检查HEAD非递归,我只得到index.php和一些与上次更改没有任何共同点的不同文件。
附加解决方案: 我做了一个小脚本 - 不是很优雅,但它有效...
#!/bin/bash
URL='http://svn ...';
TARGET='./ftp';
read -p "Please enter start revision: " VERSION1
read -p "Please enter ending revision: " VERSION2
read -p "Remove old? [yes] " remove
# getting changes
svn diff $URL --summarize -r$VERSION1:$VERSION2 > changes
# checkout complete revision
svn checkout $URL -r HEAD
# remove previous
if [ $remove = 'yes'] ; then
if [ -d $TARGET ] ; then
rm -r $TARGET
else
mkdir $TARGET
fi
fi
for entry in `cat changes`; do
e=${entry#*$URL/}
item=$TARGET'/'$e;
DIR=${item%/*}
# create directory
if [ -d $DIR ] ; then
echo '';
else
mkdir -p $DIR
fi
cp './trunk/'$e $DIR
echo $e
done
echo "Done ..."
read any
它检出完整的主干并提取在给定修订范围内更改的文件。
答案 0 :(得分:0)
如果您完全控制了服务器,则可以svn checkout
目标服务器上的特定repo路径,然后运行svn update
以根据需要获取最新文件。
答案 1 :(得分:0)
在现有工作副本的根目录
svn diff --summarize -rN:M
并使用第二列