def list_files(srcfile, lister): """ List the largest files from the dump file. @type srcfile: string @param srcfile: Source filename. @type dstfile: string @param dstfile: Destination filename. """ # SvnDumpFile classes for reading/writing dumps srcdmp = SvnDumpFile() # open source file srcdmp.open(srcfile) hasrev = srcdmp.read_next_rev() if hasrev: while hasrev: if srcdmp.get_node_count() > 0: for node in srcdmp.get_nodes_iter(): lister.process_node(srcdmp, node) hasrev = srcdmp.read_next_rev() else: print("no revisions in the source dump '%s' ???" % srcfile) lister.done(srcdmp) # cleanup srcdmp.close()
def apply(self): """ Applies the auto-props. """ try: self._read_config() inDump = SvnDumpFile() outDump = SvnDumpFile() inDump.open(self.inputfilename) inDump.read_next_rev() outDump.create_like(self.outputfilename, inDump) while inDump.has_revision(): print "revision %d" % inDump.get_rev_nr() outDump.add_rev(inDump.get_rev_props()) for index in range(0, inDump.get_node_count()): node = inDump.get_node(index) action = node.get_action() if action in ("add", "replace"): self._set_properties(node) elif action == "change" and node.has_properties(): self._set_properties(node) outDump.add_node(node) inDump.read_next_rev() inDump.close() outDump.close() except Exception, ex: print "Error:", ex return 1
def list_files( srcfile, lister ): """ List the largest files from the dump file. @type srcfile: string @param srcfile: Source filename. @type dstfile: string @param dstfile: Destination filename. """ # SvnDumpFile classes for reading/writing dumps srcdmp = SvnDumpFile() # open source file srcdmp.open( srcfile ) hasrev = srcdmp.read_next_rev() if hasrev: while hasrev: if srcdmp.get_node_count() > 0: for node in srcdmp.get_nodes_iter(): lister.process_node(srcdmp,node) hasrev = srcdmp.read_next_rev() else: print "no revisions in the source dump '%s' ???" % srcfile lister.done(srcdmp) # cleanup srcdmp.close()
def apply( self ): """ Applies the auto-props. """ try: self._read_config() inDump = SvnDumpFile() outDump = SvnDumpFile() inDump.open( self.inputfilename ) inDump.read_next_rev() outDump.create_like( self.outputfilename, inDump ) while inDump.has_revision(): print "revision %d" % inDump.get_rev_nr(); outDump.add_rev( inDump.get_rev_props() ) for index in range( 0, inDump.get_node_count() ): node = inDump.get_node( index ) action = node.get_action() if action in ( "add", "replace" ): self._set_properties( node ) elif action == "change" and node.has_properties(): self._set_properties( node ) outDump.add_node( node ) inDump.read_next_rev() inDump.close() outDump.close() except Exception, ex: print "Error:", ex return 1
def copy_without_empty_revs(srcfile, dstfile): """ Copy a dump file excluding all empty revisions. @type srcfile: string @param srcfile: Source filename. @type dstfile: string @param dstfile: Destination filename. """ # SvnDumpFile classes for reading/writing dumps srcdmp = SvnDumpFile() dstdmp = SvnDumpFile() # open source file srcdmp.open(srcfile) # used to ensure that copyfrom-revs are correct after the copy. If # there are any empty revision in the source dump file, the copyfrom-revs # could be affected. revmap = {} hasrev = srcdmp.read_next_rev() if hasrev: # create the dump file dstdmp.create_like(dstfile, srcdmp) # now copy all the revisions while hasrev: if srcdmp.get_node_count() > 0: for node in srcdmp.get_nodes_iter(): if node.has_copy_from(): node.set_copy_from(node.get_copy_from_path(), revmap[node.get_copy_from_rev()]) dstdmp.add_rev_from_dump(srcdmp) else: print("Dropping empty revision: %d." % srcdmp.get_rev_nr()) revmap[srcdmp.get_rev_nr()] = dstdmp.get_rev_nr() hasrev = srcdmp.read_next_rev() else: print("no revisions in the source dump '%s' ???" % srcfile) # cleanup srcdmp.close() dstdmp.close()
def copy_without_empty_revs( srcfile, dstfile ): """ Copy a dump file excluding all empty revisions. @type srcfile: string @param srcfile: Source filename. @type dstfile: string @param dstfile: Destination filename. """ # SvnDumpFile classes for reading/writing dumps srcdmp = SvnDumpFile() dstdmp = SvnDumpFile() # open source file srcdmp.open( srcfile ) # used to ensure that copyfrom-revs are correct after the copy. If # there are any empty revision in the source dump file, the copyfrom-revs # could be affected. revmap={} hasrev = srcdmp.read_next_rev() if hasrev: # create the dump file dstdmp.create_like( dstfile, srcdmp ) # now copy all the revisions while hasrev: if srcdmp.get_node_count() > 0: for node in srcdmp.get_nodes_iter(): if node.has_copy_from(): node.set_copy_from(node.get_copy_from_path(),revmap[node.get_copy_from_rev()]) dstdmp.add_rev_from_dump( srcdmp ) else: print "Dropping empty revision: %d." % srcdmp.get_rev_nr() revmap[srcdmp.get_rev_nr()] = dstdmp.get_rev_nr() hasrev = srcdmp.read_next_rev() else: print "no revisions in the source dump '%s' ???" % srcfile # cleanup srcdmp.close() dstdmp.close()