আমি উইম কোয়েনের উত্তর ব্যবহার করেছি এবং সমস্ত সংশোধনীর একটি তালিকা তৈরি করতে নিম্নলিখিত স্ক্রিপ্টটি লিখেছি:
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
}
ভাগ্যক্রমে, আমি বাহ্যিক নেস্টাল করিনি, সুতরাং আমাকে এটি পরীক্ষা করতে হবে না এবং আমি অনুমান করি এটি কার্যকর হবে না। তবে আপনার যদি এটির প্রয়োজন হয় তবে কেবল এই ফাংশনটিকে পুনরাবৃত্তভাবে কল করার পক্ষে এটি যথেষ্ট। এছাড়াও, আমি কখনও ফাইল নামগুলির সাথে পরীক্ষা করিনি যা পালানোর দরকার হয়। এটি সম্ভবত কাজ করবে না।
অস্বীকৃতি: আমি জানি যে আসল প্রশ্নটি উইন্ডোজ সম্পর্কে ছিল এবং আপনি সাইগউইন বা অনুরূপ ব্যবহার না করে শেল স্ক্রিপ্ট সেখানে কাজ করবে না।