Exemplo n.º 1
0
class Repository():
    def __init__(self, directory = None, server_port = 10128):
        self._initialize_bazaar(directory, server_port)

    def _initialize_bazaar(self, directory, server_port):
        self._server_port = server_port
        if directory is None:
            directory = os.getcwd()
        self._working_tree = workingtree.WorkingTree.open(directory)
        self._initialize_bazaar_server(directory, server_port)

    def _initialize_bazaar_server(self, directory, server_port):
        from bzrlib import urlutils
        from bzrlib.transport import get_transport
        from bzrlib.transport.chroot import ChrootServer
        url = urlutils.local_path_to_url(directory)
        url = 'readonly+' + url
        print url
        chroot_server = ChrootServer(get_transport(url))
        chroot_server.setUp()
        t = get_transport(chroot_server.get_url())
        print chroot_server.get_url()
        self._bazaar_server = SmartTCPServer(
            t, 'localhost', server_port)
        self._bazaar_server.start_background_thread()

    def close(self):
        self._bazaar_server.stop_background_thread()

    def pull(self, pull_port):
        from bzrlib.branch import Branch
        other_branch = Branch.open(
            'bzr://localhost:'+str(pull_port)+'/')
        self._working_tree.merge_from_branch(other_branch)
        changes = self._working_tree.changes_from(
            self._working_tree.basis_tree())
        print "%s files modified, %s added, %s removed" % (
            len(changes.modified), len(changes.added), len(changes.removed))
Exemplo n.º 2
0
 def _initialize_bazaar_server(self, directory, server_port):
     from bzrlib import urlutils
     from bzrlib.transport import get_transport
     from bzrlib.transport.chroot import ChrootServer
     url = urlutils.local_path_to_url(directory)
     url = 'readonly+' + url
     print url
     chroot_server = ChrootServer(get_transport(url))
     chroot_server.setUp()
     t = get_transport(chroot_server.get_url())
     print chroot_server.get_url()
     self._bazaar_server = SmartTCPServer(
         t, 'localhost', server_port)
     self._bazaar_server.start_background_thread()