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
svn
コマンドからの戻りコードを変数に格納し、それをテストします-:
pushd $PWD
svn info
ERR=$?
popd
if [ $ERR -ne 0 ];then
echo "Directory ${WD} not under version control"
fi
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
...