3

Как проверить, находится ли какой-либо каталог под управлением версий SVN из сценария Linux bash? Я использую SVN версии 1.7.9.

Когда я попробую следующее

pushd ${WD}; svn info; popd

и проверяю код ошибки, я всегда получаю ноль, потому что popd успешно, даже если svn info вернула ошибку. Как выполнить проверку каталога следующим образом?

if [ ... ]; then
    echo "Directory ${WD} not under version control"
fi

2 ответа2

5

Сохраните код возврата из команды svn в переменной и проверьте, что:

pushd $PWD
svn info
ERR=$?
popd 
if [ $ERR -ne 0 ];then
    echo "Directory ${WD} not under version control"
fi
0

Subversion использует скрытый каталог с именем .svn (так же, как .git для Git).

Во-первых, каталог не находится под контролем SVN:

riemann$ if [ ! -d ".svn" ]; then echo "Directory not under version control"; fi;
Directory not under version control
riemann$

Затем каталог, находящийся под контролем SVN (Crypto++ использует SVN):

riemann::cryptopp$ if [ ! -d ".svn" ]; then echo "Directory not under version control"; fi;
riemann::cryptopp$

А также:

riemann::cryptopp$ ls -al .*
-rw-r--r--@ 1 jwalton  staff  6148 Jul 20 06:46 .DS_Store

.:
total 440904
drwx------  462 jwalton  staff     15708 Aug 10 16:00 .
drwx------   59 jwalton  staff      2006 Aug 10 15:50 ..
drwx------    7 jwalton  staff       238 Jul 17 07:41 .svn
...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .