Hi,

I've patched 1.1.11 with manage.py and restore.py from yesterday
(2007-07-06) and recovery works now. :-)

But if a given backup does not exist, rdiff-backup prints out:
--------------------------------
$ rdiff-backup -r 5B --force /test/bar/ /test/recover/
Exception 'basis_file must be a (true) file' raised of class '<type
'exceptions.TypeError'>':
  File "/usr/lib/python2.5/site-packages/rdiff_backup/robust.py", line
32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
467, in get_fp
    Rdiff.write_patched_fp(current_fp, delta_fp, new_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Rdiff.py", line
73, in write_patched_fp
    rpath.copyfileobj(librsync.PatchedFile(basis_fp, delta_fp), out_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/librsync.py", line
156, in __init__
    raise TypeError("basis_file must be a (true) file")

Exception 'basis_file must be a (true) file' raised of class '<type
'exceptions.TypeError'>':
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
299, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
319, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
285, in take_action
    elif action == "restore-as-of": Restore(rps[0], rps[1], 1)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
497, in Restore
    inc_rpath, dest_rp, time)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
37, in Restore
    TargetS.patch(target, diff_iter)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
290, in patch
    for diff in rorpiter.FillInIter(diff_iter, target):
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rorpiter.py", line
177, in FillInIter
    for rp in rpiter:
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
246, in get_diffs_from_collated
    diff = cls.get_diff(mir_rorp, target_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
259, in get_diff
    file_fp = cls.rf_cache.get_fp(expanded_index, mir_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
353, in get_fp
    return rf.get_restore_fp()
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
487, in get_restore_fp
    return robust.check_common_error(error_handler, get_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/robust.py", line
32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
467, in get_fp
    Rdiff.write_patched_fp(current_fp, delta_fp, new_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Rdiff.py", line
73, in write_patched_fp
    rpath.copyfileobj(librsync.PatchedFile(basis_fp, delta_fp), out_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/librsync.py", line
156, in __init__
    raise TypeError("basis_file must be a (true) file")

Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 23, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
299, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
319, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
285, in take_action
    elif action == "restore-as-of": Restore(rps[0], rps[1], 1)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
497, in Restore
    inc_rpath, dest_rp, time)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
37, in Restore
    TargetS.patch(target, diff_iter)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
290, in patch
    for diff in rorpiter.FillInIter(diff_iter, target):
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rorpiter.py", line
177, in FillInIter
    for rp in rpiter:
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
246, in get_diffs_from_collated
    diff = cls.get_diff(mir_rorp, target_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
259, in get_diff
    file_fp = cls.rf_cache.get_fp(expanded_index, mir_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
353, in get_fp
    return rf.get_restore_fp()
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
487, in get_restore_fp
    return robust.check_common_error(error_handler, get_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/robust.py", line
32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
467, in get_fp
    Rdiff.write_patched_fp(current_fp, delta_fp, new_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Rdiff.py", line
73, in write_patched_fp
    rpath.copyfileobj(librsync.PatchedFile(basis_fp, delta_fp), out_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/librsync.py", line
156, in __init__
    raise TypeError("basis_file must be a (true) file")
TypeError: basis_file must be a (true) file
-------------------------------------------
IMO it would be better to print:
"The backup you've tried to recover does not exist."

ciao Ralph


_______________________________________________
rdiff-backup-users mailing list at [email protected]
http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users
Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki

Reply via email to