You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Tim Moloney <mo...@mrsl.com> on 2002/05/02 12:01:12 UTC

Patch to hot-backup.py

I don't know Python but I was able to modify hot-backup.py to accept
the name of the repository to backup.  Hopefully, others will find it
useful.

--- hot-backup.py.orig Thu Apr 11 13:56:18 2002
+++ hot-backup.py       Thu May  2 07:51:31 2002
@@ -1,8 +1,12 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
  #
  #  hot-backup.py: perform a "hot" backup of a Berkeley DB repository.
  #                 (and clean old logfiles after backup completes.)
  #
+#  Modifications from version distributed with Subversion:
+#    - accept a command line argument to specify which repository
+#      to backup
+#
  #  Subversion is a tool for revision control.
  #  See http://subversion.tigris.org for more information.
  #
@@ -22,18 +26,18 @@

  ######################################################################

-import os, shutil, string
+import sys, os, shutil, string

  ######################################################################
  # Global Settings

  # Path to repository
-repo_dir = "/usr/www/repositories/svn"
+base_repo_dir = "/var/svn"

  # Where to store the repository backup.  The backup will be placed in
  # a *subdirectory* of this location, named after the youngest
  # revision.
-backup_dir = "/usr/backup"
+backup_dir = "/var/backup/svn"

  # Path to svnadmin utility
  svnadmin = "/usr/local/bin/svnadmin"
@@ -46,8 +50,18 @@

  ######################################################################

-print "Beginning hot backup of '"+ repo_dir + "'."
+if len(sys.argv) < 2:
+  print "usage:  svn-backup <repo>"
+  sys.exit(0)
+
+repo = sys.argv[1]
+
+repo_dir = os.path.join(base_repo_dir, repo)
+if not os.path.exists(repo_dir):
+  print "repository does not exist:", repo_dir
+  sys.exit(0)

+print "Beginning hot backup of '"+ repo_dir + "'."

  # Step 1:  get the youngest revision.

@@ -64,7 +78,7 @@

  # Step 2:  copy the whole repository structure.

-backup_subdir = os.path.join(backup_dir, "repo-bkp-" + youngest)
+backup_subdir = os.path.join(backup_dir, repo + "-" + youngest)
  print "Backing up repository to '" + backup_subdir + "'..."
  shutil.copytree(repo_dir, backup_subdir)
  print "Done."

-- 
Tim Moloney
ManTech Real-time Systems Laboratory
2015 Cattlemen Road                             \     /
Sarasota, FL  34232                     .________\(O)/________.
(941) 377-6775 x208                        '  '  O(.)O  '  '


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org