我有一个svn repo,在某个地方,同一个仓库中的某些文件夹有一些外部。当我检查包含外部的文件夹时,svn也会获取外部,但我发现在实际阶段,只需要其中一部分。
我知道在svn co urlA myFolder --depth empty
(我看过here了解svn up fileA fileB
选项时,myFolder
然后--depth
仅执行这些文件)。但它似乎不适用于外部......
我已经这样做了(假设urlA有2个文件夹,一个是fld和ext,它有外部):
$ svn co urlA fldA --depth empty
U fldA
Checked out revision 115
$ svn up --set-depth empty fld ext
Updating 'fld':
A fld
Updated to revision 115.
Updating 'ext':
A External
Updated to revision 115.
Summary of updates:
Updated 'fld' to r115.
Updated 'ext' to r115.
$ svn up --set-depth immediates fld ext
Updating 'fld':
Restored 'fld'
Restored 'fld/header.h'
Restored 'fld/source.cpp'
At revision 115.
Updating 'ext':
Restored 'ext'
At revision 115.
Summary of updates:
Updated 'fld' to r115.
Updated 'ext' to r115.
即使我使用propget
之类的ext
,更新也不会检查 $response = $this->render("MarketplaceBundle:sitemap:sitemap.xml.twig", array(
'urls' => $urls
));
$response->headers->add(array('Content-Type' => 'application/xml'));
return $response;
中的文件和文件夹。更多,我想在分机中只有一些文件。可能吗?有什么我错过了吗?请有人帮帮我吗?
答案 0 :(得分:0)
经过一番研究,我找到了一种方法让它发挥作用。我做了一个bash脚本,只检查所需的文件:
#!/bin/bash
EXTERNALS=$(svn propget svn:externals .)
FILES=(header1.h source1.cpp header2.h source2.cpp header3.h header4.h source4.cpp)
IS_URL=true
for i in $EXTERNALS ; do
echo "=========="
if [ "$IS_URL" = true ] ; then
URL=$i
IS_URL=false
else
DIR=$i
IS_URL=true
svn co $URL $DIR --depth empty
LIST=$(svn list $DIR)
l2=" ${FILES[*]} "
for item in ${LIST[@]}; do
if [[ $l2 =~ " $item " ]] ; then
svn up $DIR/$item
fi
done
rm -rf $DIR/.svn
fi
done
exit 0