Changeset 4477
- Timestamp:
- 10/13/08 10:57:09 (1 month ago)
- Files:
-
- svnsyncplugin/0.11/setup.py (modified) (1 diff)
- svnsyncplugin/0.11/svnsyncplugin/svnsyncplugin.py (modified) (1 diff)
- svnsyncplugin/0.11/svnsyncplugin/svnsync.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
svnsyncplugin/0.11/setup.py
r4076 r4477 1 1 from setuptools import find_packages, setup 2 2 3 version='0.1. 1'3 version='0.1.2' 4 4 5 5 setup(name='svnsyncplugin', svnsyncplugin/0.11/svnsyncplugin/svnsyncplugin.py
r3750 r4477 33 33 # sync the repository 34 34 directory = self.env.config.get('trac', 'repository_dir') 35 svnsync.sync(directory, self.repository_url )35 svnsync.sync(directory, self.repository_url, logger=self.env.log.info) 36 36 37 37 repos = SubversionRepository(repos_dir, None, self.log) svnsyncplugin/0.11/svnsyncplugin/svnsync.py
r4339 r4477 15 15 """execute command line arguments. return stdout, stderr, returncode""" 16 16 command = ' '.join(args) 17 verbose = kw.get('verbose', True)18 if verbose:19 print '> %s' % str(command)17 logger = kw.get('logger', None) # should be a function taking a string 18 if logger: 19 logger(str(command)) 20 20 try: 21 21 process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) … … 34 34 return uri 35 35 36 def create(directory, repository, username='svnsync' ):36 def create(directory, repository, username='svnsync', logger=None): 37 37 """create a mirror of remote repository at directory""" 38 38 39 39 ### create the repository 40 if logger: 41 logger("Creating repository: mirroring %s at %s" % (repository, directory)) 40 42 41 sh('svnadmin', 'create', directory )43 sh('svnadmin', 'create', directory, logger=logger) 42 44 43 45 filename = 'pre-revprop-change' … … 56 58 57 59 return sh('svnsync', 'init', '--username', username, 58 file_uri(directory), repository )60 file_uri(directory), repository, logger=logger) 59 61 60 def sync(directory, repository, username='svnsync' ):62 def sync(directory, repository, username='svnsync', logger=None): 61 63 62 64 # create the mirror if it doesn't exist 63 65 if not os.path.exists(directory): 64 retval = create(directory, repository, username )66 retval = create(directory, repository, username, logger=logger) 65 67 if retval[-1] != 0: 66 68 return retval … … 69 71 70 72 # ensure that the repository is pointed at the right place 71 propget = sh('svn', 'propget', 'svn:sync-from-url', '--revprop', '-r', '0', repo )73 propget = sh('svn', 'propget', 'svn:sync-from-url', '--revprop', '-r', '0', repo, logger=logger) 72 74 73 75 url = propget[0].strip() 74 76 if url != repository.rstrip('/'): 75 print '>>> repository changed! %s -> %s' % (url, repository.strip()) 76 print '> resyncing to new repository' 77 if logger: 78 logger('repository changed! %s -> %s' % (url, repository.strip())) 79 logger('resyncing to new repository') 77 80 import shutil 78 81 shutil.rmtree(directory) 79 sync(directory, repository, username )82 sync(directory, repository, username, logger=logger) 80 83 81 return sh('svnsync', 'sync', repo )84 return sh('svnsync', 'sync', repo, logger=logger) 82 85 83 86 if __name__ == '__main__': 84 87 import optparse 85 88 import sys 89 90 logger = sys.stdout.write # log to command line 86 91 87 92 # parse command line options … … 100 105 101 106 # sync the repository, setting up if necessary 102 result = sync(options.directory, options.repository, options.username )107 result = sync(options.directory, options.repository, options.username, logger=logger) 103 108 104 109 if result[2] != 0:
