Saya menggunakan jawaban Wim Coenen dan menulis skrip berikut untuk membuat daftar semua revisi:
getSvnRevs() {
cd "$1"
wcver="$(svnversion)"
[ -n "$wcver" ] || panic "Unable to get version for $wcdir"
echo "$1: $wcver"
svn propget svn:externals -R | while read a b c d e; do
[ -n "$a" ] || continue
if [ "$b" = "-" ]; then
wcparent="$a"
wcdir="$wcparent/$c"
[ -z "$e" ] || panic "Invalid format #1"
else
[ -n "$wcparent" ] || panic "Invalid format #2"
wcdir="$wcparent/$a"
[ -z "$c" ] || panic "Invalid format #3"
fi
[ -d "$wcdir" ] || panic "Invalid directory: $wcdir"
wcver="$(svnversion "$wcdir")"
[ -n "$wcver" ] || panic "Unable to get version for $wcdir"
echo "$1/$wcdir: $wcver"
done
}
Untungnya, saya tidak memiliki eksternal bersarang, jadi saya tidak perlu menguji ini dan saya rasa itu tidak akan berhasil. Tetapi jika Anda membutuhkan ini, mungkin cukup memanggil fungsi ini secara rekursif. Juga, saya tidak pernah menguji dengan nama file yang perlu keluar. Sepertinya tidak akan berhasil.
PENOLAKAN: Saya tahu pertanyaan aslinya adalah tentang windows, dan skrip shell tidak akan berfungsi di sana kecuali Anda menggunakan cygwin atau serupa.