diff -uNr duplicity-bzr/duplicity/commandline.py duplicity-bzr-patched/duplicity/commandline.py --- duplicity-bzr/duplicity/commandline.py 2011-08-10 17:24:47.000000000 +0200 +++ duplicity-bzr-patched/duplicity/commandline.py 2011-08-10 17:25:43.000000000 +0200 @@ -378,6 +378,9 @@ # --num-retries parser.add_option("--num-retries", type="int", metavar=_("number")) + # File owner uid keeps number from tar file. Like same option in GNU tar. + parser.add_option("--numeric-owner", action="store_true") + # Whether the old filename format is in effect. parser.add_option("--old-filenames", action="callback", dest="old_filenames", diff -uNr duplicity-bzr/duplicity/globals.py duplicity-bzr-patched/duplicity/globals.py --- duplicity-bzr/duplicity/globals.py 2011-08-10 17:24:47.000000000 +0200 +++ duplicity-bzr-patched/duplicity/globals.py 2011-08-10 17:25:43.000000000 +0200 @@ -156,6 +156,9 @@ # support european for now). s3_european_buckets = False +# File owner uid keeps number from tar file. Like same option in GNU tar. +numeric_owner = False + # Whether to use plain HTTP (without SSL) to send data to S3 # See . s3_unencrypted_connection = False diff -uNr duplicity-bzr/duplicity/path.py duplicity-bzr-patched/duplicity/path.py --- duplicity-bzr/duplicity/path.py 2011-08-10 17:24:47.000000000 +0200 +++ duplicity-bzr-patched/duplicity/path.py 2011-08-10 17:25:43.000000000 +0200 @@ -200,10 +200,14 @@ # Set user and group id try: + if globals.numeric_owner: + raise KeyError self.stat.st_uid = tarfile.uname2uid(tarinfo.uname) except KeyError: self.stat.st_uid = tarinfo.uid try: + if globals.numeric_owner: + raise KeyError self.stat.st_gid = tarfile.gname2gid(tarinfo.gname) except KeyError: self.stat.st_gid = tarinfo.gid