ソースを参照

Merge remote-tracking branch 'jdchristensen/prune-docs-info'

Jonas Borgström 11 年 前
コミット
1b42da1fa5
3 ファイル変更24 行追加15 行削除
  1. 9 8
      attic/archiver.py
  2. 4 0
      attic/helpers.py
  3. 11 7
      docs/usage.rst

+ 9 - 8
attic/archiver.py

@@ -15,7 +15,7 @@ from attic.key import key_creator
 from attic.helpers import Error, location_validator, format_time, \
 from attic.helpers import Error, location_validator, format_time, \
     format_file_mode, ExcludePattern, exclude_path, adjust_patterns, to_localtime, \
     format_file_mode, ExcludePattern, exclude_path, adjust_patterns, to_localtime, \
     get_cache_dir, get_keys_dir, format_timedelta, prune_within, prune_split, \
     get_cache_dir, get_keys_dir, format_timedelta, prune_within, prune_split, \
-    Manifest, remove_surrogates, update_excludes
+    Manifest, remove_surrogates, update_excludes, format_archive
 from attic.remote import RepositoryServer, RemoteRepository
 from attic.remote import RepositoryServer, RemoteRepository
 
 
 
 
@@ -278,7 +278,7 @@ Type "Yes I am sure" if you understand this and want to continue.\n""")
                                                   remove_surrogates(item[b'path']), extra))
                                                   remove_surrogates(item[b'path']), extra))
         else:
         else:
             for archive in sorted(Archive.list_archives(repository, key, manifest), key=attrgetter('ts')):
             for archive in sorted(Archive.list_archives(repository, key, manifest), key=attrgetter('ts')):
-                print('%-20s %s' % (archive.metadata[b'name'], to_localtime(archive.ts).strftime('%c')))
+                print(format_archive(archive))
         return self.exit_code
         return self.exit_code
 
 
     def do_info(self, args):
     def do_info(self, args):
@@ -330,12 +330,12 @@ Type "Yes I am sure" if you understand this and want to continue.\n""")
         to_delete = [a for a in archives if a not in keep]
         to_delete = [a for a in archives if a not in keep]
 
 
         for archive in keep:
         for archive in keep:
-            self.print_verbose('Keeping archive "%s"' % archive.name)
+            self.print_verbose('Keeping archive: %s' % format_archive(archive))
         for archive in to_delete:
         for archive in to_delete:
             if args.dry_run:
             if args.dry_run:
-                self.print_verbose('Would prune     "%s"' % archive.name)
+                self.print_verbose('Would prune:     %s' % format_archive(archive))
             else:
             else:
-                self.print_verbose('Pruning archive "%s"' % archive.name)
+                self.print_verbose('Pruning archive: %s' % format_archive(archive))
                 archive.delete(cache)
                 archive.delete(cache)
         return self.exit_code
         return self.exit_code
 
 
@@ -549,11 +549,12 @@ Type "Yes I am sure" if you understand this and want to continue.\n""")
         backups. As an example, "-d 7" means to keep the latest backup on each day
         backups. As an example, "-d 7" means to keep the latest backup on each day
         for 7 days. Days without backups do not count towards the total. The rules
         for 7 days. Days without backups do not count towards the total. The rules
         are applied from hourly to yearly, and backups selected by previous rules do
         are applied from hourly to yearly, and backups selected by previous rules do
-        not count towards those of later rules. Dates and times are interpreted in
+        not count towards those of later rules. The time that each backup completes
+        is used for pruning purposes. Dates and times are interpreted in
         the local timezone, and weeks go from Monday to Sunday. Specifying a
         the local timezone, and weeks go from Monday to Sunday. Specifying a
         negative number of archives to keep means that there is no limit.
         negative number of archives to keep means that there is no limit.
-        The "--within" option takes an argument of the form "<int><char>",
-        where char is "H", "d", "w", "m", "y". For example, "--within 2d" means
+        The "--keep-within" option takes an argument of the form "<int><char>",
+        where char is "H", "d", "w", "m", "y". For example, "--keep-within 2d" means
         to keep all archives that were created within the past 48 hours.
         to keep all archives that were created within the past 48 hours.
         "1m" is taken to mean "31d". The archives kept with this option do not
         "1m" is taken to mean "31d". The archives kept with this option do not
         count towards the totals specified by any other options. If a
         count towards the totals specified by any other options. If a

+ 4 - 0
attic/helpers.py

@@ -288,6 +288,10 @@ def format_file_size(v):
         return '%d B' % v
         return '%d B' % v
 
 
 
 
+def format_archive(archive):
+    return '%-36s %s' % (archive.name, to_localtime(archive.ts).strftime('%c'))
+
+
 class IntegrityError(Error):
 class IntegrityError(Error):
     """Data integrity error"""
     """Data integrity error"""
 
 

+ 11 - 7
docs/usage.rst

@@ -131,15 +131,19 @@ Examples
 ~~~~~~~~
 ~~~~~~~~
 ::
 ::
 
 
-    # Keep 7 end of day and 4 additional end of week archives
-    $ attic prune /data/myrepo --daily=7 --weekly=4
+    # Keep 7 end of day and 4 additional end of week archives:
+    $ attic prune /data/myrepo --keep-daily=7 --keep-weekly=4
 
 
-    # Same as above but only apply to archive names starting with "foo"
-    $ attic prune /data/myrepo --daily=7 --weekly=4 --prefix=foo
+    # Same as above but only apply to archive names starting with "foo":
+    $ attic prune /data/myrepo --keep-daily=7 --keep-weekly=4 --prefix=foo
 
 
-    # Keep 7 end of day, 4 additional end of week archives, and an
-    # end of month archive for every month:
-    $ attic prune /data/myrepo --daily=7 --weekly=4 --monthly=-1
+    # Keep 7 end of day, 4 additional end of week archives,
+    # and an end of month archive for every month:
+    $ attic prune /data/myrepo --keep-daily=7 --keep-weekly=4 --monthly=-1
+
+    # Keep all backups in the last 10 days, 4 additional end of week archives,
+    # and an end of month archive for every month:
+    $ attic prune /data/myrepo --keep-within=10d --keep-weekly=4 --monthly=-1
 
 
 
 
 .. include:: usage/info.rst.inc
 .. include:: usage/info.rst.inc