मैंने Wim Coenen के उत्तर का उपयोग किया और सभी संशोधनों की सूची बनाने के लिए निम्नलिखित स्क्रिप्ट लिखी:
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
}
सौभाग्य से, मेरे पास बाहरी घोंसले नहीं हैं, इसलिए मुझे यह परीक्षण नहीं करना पड़ा और मुझे लगता है कि यह काम नहीं करेगा। लेकिन अगर आपको इसकी आवश्यकता है, तो संभवतः यह फ़ंक्शन को पुनरावर्ती रूप से कॉल करने के लिए पर्याप्त है। इसके अलावा, मैंने कभी ऐसे फिल्मनामों के साथ परीक्षण नहीं किया, जिन्हें भागने की जरूरत है। यह तब काम नहीं करेगा।
अस्वीकरण: मुझे पता है कि मूल प्रश्न खिड़कियों के बारे में था, और शेल स्क्रिप्ट वहां काम नहीं करेगी जब तक कि आप साइबरविन या समान का उपयोग नहीं कर रहे हैं।