diff -r cf69c9112d09 -r 5340239ff468 src/Pure/General/mercurial.scala --- a/src/Pure/General/mercurial.scala Mon Jun 13 11:35:00 2022 +0200 +++ b/src/Pure/General/mercurial.scala Mon Jun 13 11:48:46 2022 +0200 @@ -562,6 +562,7 @@ Scala_Project.here, { args => var filter: List[String] = Nil var root: Option[Path] = None + var protect_args = false var thorough = false var dry_run = false var rev = "" @@ -576,6 +577,8 @@ (e.g. "protect /foo" to avoid deletion) -R ROOT explicit repository root directory (default: implicit from current directory) + -S robust (but less portable) treatment of spaces in + file and directory names on the target -T thorough treatment of file content and directory times -n no changes: dry-run -r REV explicit revision (default: state of working directory) @@ -587,6 +590,7 @@ """, "F:" -> (arg => filter = filter ::: List(arg)), "R:" -> (arg => root = Some(Path.explode(arg))), + "S" -> (_ => protect_args = true), "T" -> (_ => thorough = true), "n" -> (_ => dry_run = true), "r:" -> (arg => rev = arg), @@ -606,7 +610,7 @@ case Some(dir) => repository(dir) case None => the_repository(Path.current) } - val context = Rsync.Context(progress, port = port) + val context = Rsync.Context(progress, port = port, protect_args = protect_args) hg.sync(context, target, verbose = verbose, thorough = thorough, dry_run = dry_run, filter = filter, rev = rev) }