def describe_new_commits(self, max_commits=100, max_size=16000):
        """Return a string description of the new commits on the branch."""
        hashes = None
        previous = None
        latest = self._review_branch.remote_branch

        if self.is_new():
            previous = self._review_branch.remote_base
        else:
            previous = self._tracking_branch.remote_branch

        hashes = self._repo.get_range_hashes(previous, latest)
        hashes.reverse()
        revisions = self._repo.make_revisions_from_hashes(hashes)

        message = ""
        count = 0
        message_size = 0
        for r in revisions:
            new_message = r.abbrev_hash + " " + r.subject + "\n"
            count += 1
            message_size += len(new_message)
            if count > max_commits or message_size > max_size:
                message += "...{num_commits} commits not shown.\n".format(
                    num_commits=len(revisions) - count + 1)
                break
            else:
                message += new_message
        return phlsys_textconvert.ensure_ascii(message)
dataset/ETHPy150Open bloomberg/phabricator-tools/py/abd/abdt_branch.py/Branch.describe_new_commits/original