コード例 #1
0
ファイル: DBContentHandler.py プロジェクト: donalus/CVSAnalY
    def __add_new_file_and_link (self, file_name, parent_id, commit_id, file_path):
        dbfile = DBFile (None, file_name)
        dbfile.repository_id = self.repo_id
        self.cursor.execute (statement (DBFile.__insert__, self.db.place_holder), (dbfile.id, dbfile.file_name, dbfile.repository_id))
        
        dblink = DBFileLink (None, parent_id, dbfile.id, file_path)
        dblink.commit_id = commit_id
        self.cursor.execute (statement (DBFileLink.__insert__, self.db.place_holder), (dblink.id, dblink.parent, dblink.child, dblink.commit_id, dblink.file_path))

        return dbfile.id
コード例 #2
0
ファイル: DBContentHandler.py プロジェクト: apepper/cvsanaly
    def __action_rename(self, path, prefix, log, action, dbaction):
        """Process a renamed file"""
        new_parent_path = os.path.dirname(path)
        new_file_name = os.path.basename(path)

        from_commit_id = self.revision_cache.get(action.rev, None)

        if action.branch_f2:
            branch_f2_id = self.__get_branch(action.branch_f2)
            old_path = "%d://%s" % (branch_f2_id, action.f2)
        else:
            old_path = prefix + action.f2
        file_id, parent_id = self.__get_file_for_path(old_path,
                                            from_commit_id, True)

        dbfilecopy = DBFileCopy(None, file_id)
        dbfilecopy.action_id = dbaction.id
        dbfilecopy.from_commit = from_commit_id

        if not new_parent_path or new_parent_path == prefix.strip('/'):
            new_parent_id = -1
        else:
            new_parent_id = self.__get_file_for_path(new_parent_path,
                                                     log.id)[0]
        if new_parent_id != parent_id:
            # It's not a simple rename, but a move operation
            # we have to write down the new link
            parent_id = new_parent_id
            dblink = DBFileLink(None, parent_id, file_id)
            dblink.commit_id = log.id
            self.cursor.execute(statement(DBFileLink.__insert__,
                                 self.db.place_holder),
                                (dblink.id, dblink.parent, dblink.child,
                                 dblink.commit_id))
            self.moves_cache[path] = old_path

        self.file_cache[path] = (file_id, parent_id)

        # Move/rename is a special case of copy.  # There's not a
        # new file_id
        dbfilecopy.from_id = file_id
        dbfilecopy.new_file_name = new_file_name
        self.__add_new_copy(dbfilecopy)

        # Save also file_path
        self.__add_file_path(log.id, file_id, path)

        return file_id