Another feature proposal and implementation plan: --strip-prefix
Edwin Olson
eolson at MIT.EDU
Wed Apr 14 23:36:23 GMT 2004
Here's another feature I'd like to have:
Suppose you're copying a source file /a/b/c/d/e/f/g/h/myfile and you
want it stored on some other filesystem /backup, but you want the source
path to be truncated so that the file actually ends up as: /backup/h/myfile.
This comes up (in particular) when doing backups of windows machines via
cygwin; you end up with a phony base directory /cygdrive/. When users go
to see their backups, they become confused! This option would eliminate
this problem.
I'd like to add this behavior, similar to the patch -p option.
I'm uncertain whether the syntax should be
--strip-prefix=/a/b/c/d/e/f/g, or --strip-prefix=7. The former would
allow us to detect situations in which we were being asked to copy files
that did not have the expected prefix and to complain loudly (or
silently ignore the strip prefix directive for that file?) The latter
would be more like patch -p, but I think it's less safe. Perhaps
multiple --strip-prefix directives should be allowed so that a single
invocation of rsync can handle more complicated situations.
I think this can be relatively cleanly implemented in recv_files; in
fact, the line "fnamecmp=fname;" in reciever.c seems to be exactly the
hook required. Like my previous email, I would like to ask for advice
and suggestions so that my implementation will be most useful!
Thanks,
-Ed
More information about the rsync
mailing list