예제 #1
0
파일: log.py 프로젝트: blix/pyrite
def run(cmd, args, flags, io, settings, repo):
    style = flags.get('style', None)
    template = flags.get('template', 'medium')
    limit = flags.get('limit', 10)
    show_patch = flags.has_key('patch')
    follow = flags.has_key('follow-renames')
    first = flags.get('revision-start', None)
    last = flags.get('revision-end', args and args.pop(0) or 'HEAD')
    if flags.has_key('all'):
        limit = -1

    if flags.has_key('style') and flags.has_key('template'):
        raise HelpError(cmd, _('"style" and "template" are redundant.'))

    if flags.has_key('limit') and flags.has_key('all'):
        raise HelpError(cmd, _('"limit" and "all" conflict.'))

    # massage start position to make git show it to us, not valid for
    # reflog queries
    if first and first[-1] != '}':
        first += '^'

    color = 'color' in flags or \
            pyrite.utils.io.affirmative(settings.get_option('pyrite.color'))
    data, template = get_template(style, template, color)

    if not show_patch and Commit.PATCH in data:
        data.remove(Commit.PATCH)
    output = Commit.get_raw_commits(repo, first, last, limit=limit,
                                    data=data, follow=follow, paths=args)

    stream = io.info_stream()
    for commit_data in output:
        show_commit(commit_data, template, stream, repo)
예제 #2
0
    def testCommitCommit(self):
        fn_name = self.whoami()

        self.doSimpleCommit(fn_name)
        c = Commit.get_raw_commits(
            self.repo, None, "HEAD", 1, [Commit.SUBJECT, Commit.ID, Commit.AUTHOR, Commit.AUTHOR_DATE]
        ).next()
        self.assertTrue(c)
        auth = c[Commit.AUTHOR]
        del c[Commit.AUTHOR]
        auth_date = c[Commit.AUTHOR_DATE]
        del c[Commit.AUTHOR_DATE]
        subj = c[Commit.SUBJECT]
        c[Commit.SUBJECT] = "should not be used"

        self.createAndAdd(fn_name + "2")
        self.repo.commit(c)
        c2 = Commit.get_raw_commits(
            self.repo, None, "HEAD", 1, [Commit.SUBJECT, Commit.ID, Commit.AUTHOR, Commit.AUTHOR_DATE]
        ).next()
        self.assertEqual(auth, c2[Commit.AUTHOR])
        self.assertEqual(auth_date, c2[Commit.AUTHOR_DATE])
        self.assertEqual(subj, c2[Commit.SUBJECT])
        self.assertNotEqual(c[Commit.ID], c2[Commit.ID])