如何检查目录是否在 svn 版本控制之下?

如何检查目录是否在 svn 版本控制之下?

从 Linux Bash 脚本中,如何验证某个目录是否在 svn 版本控制之下?我正在使用 svn 版本 1.7.9。

当我尝试以下

pushd ${WD}; svn info; popd

并检查错误代码我总是得到零,因为popd成功了,即使svn info返回了错误。如何以以下方式对目录执行检查?

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

答案1

将命令的返回代码存储svn在变量中并测试:

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

答案2

Subversion 使用一个名为的隐藏目录.svn(就像.gitGit 一样)。

首先,一个目录不是在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
...

相关内容