Ho usato la risposta di Wim Coenen e scrisse il seguente script per creare una lista di tutte le revisioni:
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
}
Per fortuna, non ho esterni nidificati, quindi non ho dovuto provare questo e immagino che non funzionerebbe. Ma se ne hai bisogno, è probabilmente sufficiente chiamare questa funzione in modo ricorsivo. Inoltre, non ho mai provato i nomi dei file che devono essere salvati. Probabilmente non funzionerà allora.
NOTA BENE: So che la domanda iniziale riguardava Windows, e lo script di shell non funzionerà lì a meno che non si utilizzi cygwin o simili.
fonte
2015-05-13 11:52:22
questa domanda è anche presente a http://stackoverflow.com/questions/5118320/find-paths-with-svnexternal-properties-with-certain-string –