web-dev-qa-db-ja.com

ディレクトリがsvnバージョン管理下にあるかどうかを確認する方法は?

Linuxのbashスクリプトから、一部のディレクトリがsvnバージョン管理下にあるかどうかを確認するにはどうすればよいですか?私はsvnバージョン1.7.9を使用しています。

次のことを試してみると

pushd ${WD}; svn info; popd

svn infoがエラーを返したとしても、popdが成功したため、エラーコードを確認すると常にゼロになります。次の方法でディレクトリのチェックを実行するにはどうすればよいですか?

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

svnコマンドからの戻りコードを変数に格納し、それをテストします-:

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

Subversionは、.svnと呼ばれる隠しディレクトリを使用します(Gitの.gitと同じように)。

まず、SVNの制御下にあるディレクトリnot

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

次に、SVNの制御下にあるディレクトリ( Crypto ++ use 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
...
0
jww