Example #1
0
 def run(self, flavor, repo_path, changes, kwargs, **info):
     lock_key = hashlib.sha1("%s#%s#%s" %
                             (flavor, repo_path, kwargs['branch']))
     backend = load_backend(flavor, repo_path)
     backend.changes = changes
     commit = backend.do_commit(**kwargs)
     return commit.revision
Example #2
0
    def run(self, flavor, repo_path, data):
        backend = load_backend(flavor, repo_path, cache=False)
        out = StringIO()
        proto = ReceivableProtocol(StringIO(data).read, out.write)
        handler = _ReceivePackHandler(WebBackend(), [backend],
                                      proto,
                                      stateless_rpc=True)
        handler.handle()

        sync_tasks = []
        for oldrev, newrev, name in handler._good_refs:
            if name.startswith('refs/heads/'):
                branch = name[11:]
                sync_tasks.append(
                    subtask(SyncTask,
                            args=[
                                backend.flavor, backend.path, oldrev, newrev,
                                branch
                            ]))

        if sync_tasks:
            taskset = TaskSet(tasks=sync_tasks)
            taskset.apply_async().join()

        return out.getvalue(), handler._good_refs
Example #3
0
    def run(self, flavor, repo_path, oldrev, newrev, name):
        backend = load_backend(flavor, repo_path, cache=False)

        commit_map = {}
        for commit in backend.history(revision=newrev, since_revision=oldrev):
            print commit
            for path in commit.paths:
                commit_map.setdefault(path, commit)
        
        paths = commit_map.keys()
        print commit_map
        for adapter in iter_adapters(flavor=flavor):
            for obj in adapter.iter_objects(paths=paths):
                print "syncing object", obj
                a = adapter(obj)
                a.sync(commit_map[a.path])
Example #4
0
    def run(self, flavor, repo_path, oldrev, newrev, name):
        backend = load_backend(flavor, repo_path, cache=False)

        commit_map = {}
        for commit in backend.history(revision=newrev, since_revision=oldrev):
            print commit
            for path in commit.paths:
                commit_map.setdefault(path, commit)

        paths = commit_map.keys()
        print commit_map
        for adapter in iter_adapters(flavor=flavor):
            for obj in adapter.iter_objects(paths=paths):
                print "syncing object", obj
                a = adapter(obj)
                a.sync(commit_map[a.path])
Example #5
0
 def run(self, flavor, repo_path, data):
     backend = load_backend(flavor, repo_path, cache=False)
     out = StringIO()
     proto = ReceivableProtocol(StringIO(data).read, out.write)
     handler = _ReceivePackHandler(WebBackend(), [backend], proto, stateless_rpc=True)
     handler.handle()
     
     sync_tasks = []
     for oldrev, newrev, name in handler._good_refs:
         if name.startswith('refs/heads/'):
             branch = name[11:]
             sync_tasks.append(subtask(SyncTask, args=[backend.flavor, backend.path, oldrev, newrev, branch]))
             
     if sync_tasks:
         taskset = TaskSet(tasks=sync_tasks)
         taskset.apply_async().join()
     
     return out.getvalue(), handler._good_refs
Example #6
0
File: tests.py Project: wil/vacuous
    def test_adapter(self):
        backend = load_backend('git', 'foo.git')
        backend.init_repo()
        
        backend.commit('initial commit', force=True)

        f0 = Foo.objects.create(path='test.txt', data='1234')
        backend.commit('test1')
        time.sleep(1)
        
        f1 = Foo.objects.create(path='foobar/test.txt', data='5678')
        
        f0.path = 'foobar/old.txt'
        f0.save()
        f1.data = '56789'
        f1.save()
        backend.commit('test2')
        time.sleep(1)
        
        f0.delete()
        f1.data = '56789\n01234'
        f1.save()
        backend.commit('test3')
        time.sleep(1)
        
        Foo.objects.all().delete()
        backend.commit('delete all')
        time.sleep(1)

        #for c in backend.history():
        #    print "==" * 30
        #    print c.message
        #    print c.udiff
        #    print
        
        backend.delete_repo()
Example #7
0
File: base.py Project: wil/vacuous
 def get_backend(self, cached=True):
     if not self.flavor or not self.path:
         return None
     return load_backend(self.flavor, self.repo)
Example #8
0
 def get_backend(self, cached=True):
     if not self.flavor or not self.path:
         return None
     return load_backend(self.flavor, self.repo)
Example #9
0
File: tests.py Project: wil/vacuous
    def test_basics(self):
        backend = load_backend('git', self.TEST_REPO)
        backend.init_repo()
        
        r0text = u"v1äöü"
        backend.write('test.txt', r0text)
        r0 = backend.commit('initial commit')
        time.sleep(1)
        
        r1text = u"v2ß@œ"
        backend.write('test.txt', r1text)
        r1 = backend.commit('second commit')
        time.sleep(1)
        
        self.assertEqual(backend.read('test.txt'), r1text)
        
        self.assertEqual(backend.read('test.txt', revision=r0), r0text)
        
        self.assertEqual(backend.read('test.txt', revision=r1), r1text)
        
        backend.rename('test.txt', 'foo/bar.txt')
        r2 = backend.commit('third commit')
        time.sleep(1)
        
        self.assertEqual(backend.read('foo/bar.txt'), r1text)
        self.assertRaises(FileDoesNotExist, backend.read, 'test.txt')
        
        self.assertEqual(backend.read('test.txt', revision=r1), r1text)
        
        backend.create_branch('v1')
        backend.write('foo/bar.txt', r0text)
        backend.commit('revert')
        time.sleep(1)

        self.assertEqual(backend.read('foo/bar.txt'), r0text)
        self.assertEqual(backend.read('foo/bar.txt', branch='v1'), r1text)
        
        backend.write('foo/bar.txt', u"test")
        backend.commit('change v1', branch='v1')
        time.sleep(1)

        self.assertEqual(backend.read('foo/bar.txt'), r0text)

        history = backend.history()
        self.assertEqual(len(history), 4)
        #for c in history:
        #    break
        #    print "--" * 30
        #    print "%s: %s %s" % (c.revision, c.commit_time, c.message)
        #    print c.committer, c.commit_time, c.author, c.author_time
        #    print ", ".join(c.paths)
        #    print c.udiff

        history = backend.history('foo/bar.txt')
        self.assertEqual(len(history), 2)
        self.assertEqual(['revert', 'third commit'], [c.message for c in history])
        
        self.assertEqual(backend.read('foo/bar.txt', branch='v1'), u"test")
        
        backend.rename_branch('v1', 'v2')
        
        self.assertEqual(backend.read('foo/bar.txt', branch='v2'), u"test")
        
        self.assertFalse(backend.has_branch('v1'))
        self.assertTrue(backend.has_branch('v2'))

        backend.delete_branch('v2')
        self.assertFalse(backend.has_branch('v2'))

        backend.delete_repo()
        self.assertFalse(os.path.exists(self.TEST_REPO))
        
        
Example #10
0
 def get_backend_or_404(self, request, **kwargs):
     return load_backend(settings.VACUOUS_WIKI_REPO_FLAVOR,
                         settings.VACUOUS_WIKI_REPO_PATH)
Example #11
0
 def get_backend_or_404(self, request, **kwargs):
     return load_backend(settings.VACUOUS_WIKI_REPO_FLAVOR, settings.VACUOUS_WIKI_REPO_PATH)
Example #12
0
 def run(self, flavor, repo_path, changes, kwargs, **info):
     lock_key = hashlib.sha1("%s#%s#%s" % (flavor, repo_path, kwargs['branch']))
     backend = load_backend(flavor, repo_path)
     backend.changes = changes
     commit = backend.do_commit(**kwargs)
     return commit.revision