Armazene o código de retorno do comando svn
em uma variável e teste isso -:
pushd $PWD
svn info
ERR=$?
popd
if [ $ERR -ne 0 ];then
echo "Directory ${WD} not under version control"
fi
De um script bash do Linux, como posso verificar se algum diretório está sob controle de versão do svn? Eu estou usando o svn versão 1.7.9.
Quando tento o seguinte
pushd ${WD}; svn info; popd
e verifique o código de erro Eu sempre recebo um zero, porque popd
foi bem-sucedido, mesmo se svn info
retornou um erro. Como realizar uma verificação em um diretório da seguinte maneira?
if [ ... ]; then
echo "Directory ${WD} not under version control"
fi
O Subversion usa um diretório oculto chamado .svn
(como .git
para o Git).
Primeiro, um diretório não sob o controle SVN:
riemann$ if [ ! -d ".svn" ]; then echo "Directory not under version control"; fi;
Directory not under version control
riemann$
Em seguida, um diretório que está sob controle SVN ( Crypto ++ usa SVN ):
riemann::cryptopp$ if [ ! -d ".svn" ]; then echo "Directory not under version control"; fi;
riemann::cryptopp$
E:
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
...