Bagaimana cara memeriksa apakah suatu direktori berada di bawah kendali versi svn?


3

Dari skrip bash linux, bagaimana saya bisa memverifikasi jika beberapa direktori berada di bawah kontrol versi svn? Saya menggunakan svn versi 1.7.9.

Ketika saya coba yang berikut ini

pushd ${WD}; svn info; popd

dan periksa kode kesalahan saya selalu mendapatkan nol, karena popdberhasil, bahkan jika svn infomengembalikan kesalahan. Bagaimana cara melakukan pemeriksaan pada direktori dengan cara berikut?

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

Jawaban:


5

Simpan kode balik dari svnperintah dalam variabel dan uji itu-:

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

0

Subversion menggunakan direktori tersembunyi yang disebut .svn(seperti .gituntuk Git).

Pertama, direktori yang tidak di bawah kendali SVN:

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

Selanjutnya, direktori yang berada di bawah kendali SVN ( Crypto ++ use SVN ):

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

Dan:

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
...

Saya telah memperbarui pertanyaan karena saran Anda tidak berfungsi; Saya tidak punya .svndirektori. Mungkin ini tergantung pada versinya?
Alex

3
Subdirektori di SVN 1.6.x dan sebelumnya semuanya memiliki .svn dan dapat digunakan seperti salinan yang berfungsi sendiri. Pada 1.7 dan lebih tinggi, hanya root copy pekerjaan yang memiliki direktori seperti itu.
Ben
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.