Como verificar se um diretório está sob controle de versão do svn?

3

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
    
por Alex 19.08.2014 / 08:23

2 respostas

5

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
    
por 19.08.2014 / 11:25
0

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
...
    
por 19.08.2014 / 08:48

Tags