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)
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])