Wim Coenen'in cevabını kullandım ve tüm revizyonların bir listesini oluşturmak için aşağıdaki komut dosyasını yazdım:
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
}
Neyse ki, iç içe geçmiş harici cihazım yok, bu yüzden bunu test etmem gerekmedi ve sanırım işe yaramayacak. Ancak buna ihtiyacınız varsa, muhtemelen bu işlevi yinelemeli olarak çağırmanız yeterlidir. Ayrıca, kaçması gereken dosya adlarını hiç test etmedim. O zaman muhtemelen işe yaramayacak.
SORUMLULUK REDDİ: Orijinal sorunun pencerelerle ilgili olduğunu biliyorum ve cygwin veya benzeri bir şey kullanmadığınız sürece kabuk betiği orada çalışmayacaktır.