Как проверить только часть внешних файлов в svn-репо?

У меня есть svn repo, и где-то есть некоторые внешние ссылки на некоторые папки в одном и том же репо. когда я проверяю эту папку, содержащую внешние, svn также извлекает внешние элементы, но я понял, что для фактической фазы нужны только некоторые из них.

Я знаю, что выполнение svn co urlA myFolder --depth empty, а затем 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. Больше, я хотел бы только некоторые файлы в ext. Является ли это возможным? Я что-то упускаю? Может кто-нибудь помочь мне, пожалуйста?

Ответ 1

После некоторых исследований я выяснил, как заставить его работать. Я сделал bash script, который проверяет только нужные файлы:

#!/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