Exemple #1
0
    def port_checkins(self):
        project = self.project
        pr = getToolByName(project, "portal_repository")
        cat = getToolByName(project, "portal_catalog")

        session = self.session
        db = self.db
        checkout = self.checkoutdir

        repo = BzrAccess(checkout, default_commit_message=" ")
        
        checkins = session.query(Checkin).order_by(Checkin.timestamp)
        filename_map = {}

        for checkin in checkins:
            pageId = str(checkin.wikipage)
            version = checkin.version

            logger.info("page: %s" % pageId)
            try:
                page = project.unrestrictedTraverse(pageId)
            except Exception, e:
                print e
                import pdb; pdb.set_trace()
                continue
        
            if version == -99: # it's the current version
                msg = None
                content = page.EditableBody()
                timestamp = zDateTime(page.ModificationDate()).timeTime()
                author = ILastModifiedAuthorId(page)

            else:
                version = pr.retrieve(page, checkin.version)
                object = version.object
                author = version.sys_metadata['principal']
                msg = version.comment
                content = object.EditableBody()
                timestamp = version.sys_metadata['timestamp']

            logger.info("page: %s\trev: %s" % (page, checkin.version))

            try:
                repo.write(pageId, content, msg=msg,
                           author=author,
                           committer=self.committer,
                           timestamp=timestamp)
                filename_map[pageId] = pageId
            except IOError, e:
                if e.errno == 36:
                    import md5
                    hashedId = md5.md5(pageId).hexdigest()
                    repo.write(hashedId,
                               content, msg=msg,
                               author=author,
                               committer=self.committer,
                               timestamp=timestamp)
                    filename_map[pageId] = hashedId
Exemple #2
0
 def write_page(self, path, contents, msg=None, username=None):
     repo = BzrAccess(self.repo_path)
     return repo.write(path, contents, msg=msg, author=username)
Exemple #3
0
 def write_pages(self, files, prefix='', msg=None, username=None):
     repo = BzrAccess(self.repo_path)
     for path, contents in files:
         repo.write("%s/%s" % (prefix, path),
                    contents, commit=False)
     return repo.commit(prefix, msg=msg, author=username)
Exemple #4
0
def write(dir, x, y, value):
    fs = BzrAccess(dir)
    bit_uri = os.path.join("bits", "%s-%s" % (y, x))
    fs.write(bit_uri, value)