Index: Tools/scripts/mfh =================================================================== --- Tools/scripts/mfh +++ Tools/scripts/mfh @@ -115,18 +115,22 @@ for f in $("${svn}" diff --summarize -c "r${rev}" "${svnserver}/ports/head"); do case ${f} in */*) ;; - *)continue;; + *) continue ;; esac f=${f#*/ports/head/} - f=${f%/*} - filelist="${filelist}${LF}${f}" + while :; do + case ${f} in + */*/*) f=${f%/*} ;; + *) break ;; + esac + done + filelist="${filelist}${f}${LF}" done "${svn}" log "-r${rev##-}" ${svnserver}/ports/head | sed '1,2d;$d;/^MFH:/d' \ | sed '$d' >> commit.txt done -filelist=$(printf '%s\n' "${filelist}" | sort -u) -"${svn}" up --parents $(printf '%s\n' $filelist \ - | sed "s}^}${branch}/}") +filelist=$(printf '%s' "${filelist}" | sort -u | sed "s}^}${branch}/}") +"${svn}" up --parents $(printf '%s\n' $filelist) "${svn}" up --quiet "${branch}" for rev in "$@" do @@ -134,11 +138,11 @@ "${svn}" merge -c "r${rev}" ^/head/ "${branch}" done "${svn}" up --quiet "${branch}" +printf '\nAll the merge work was done in %s:\n' "${dir}/${branch}" "${svn}" status "${branch}" "${svn}" diff "${branch}" -echo "All the merge work was done in ${dir}/${branch}" -ask "Do you want to commit? (no = start a shell)" || ( - echo "Dropping you to a shell so you can investigate. Exit the shell to resume this script." +( + echo "Dropping you to a shell so you can investigate. Please test. Exit the shell to resume this script." cd "${branch}" pwd su -m $(id -un) || :