diff --git a/git-brisect b/git-brisect index 11f2f99..4bd8e0e 100755 --- a/git-brisect +++ b/git-brisect @@ -108,8 +108,8 @@ class RevRange: return cls(exclude=exclude, include=include[0]) def __repr__(self): - return "RevRange([%s %s] %d commits)" % ( - describe(self.include), " ".join("^" + describe(e) for e in self.exclude), len(self.commits())) + exclude_str = f" {' '.join('^' + e for e in sorted(self.exclude))}" if self.exclude else "" + return f"RevRange({self.include}{exclude_str})" def _get_commits(self): if self._commits is not None: @@ -215,7 +215,7 @@ class WorkerPool: def enqueue(self, rev): with self._cond: self._in_q.append(rev_parse(rev)) - logger.debug(f"Enqueued {describe(rev)}, new queue depth {len(self._in_q)}") + logger.debug("Enqueued %s, new queue depth %d", rev, len(self._in_q)) self._cond.notify_all() def num_pending(self): diff --git a/git_brisect_test.py b/git_brisect_test.py index 8ce3491..7a22834 100644 --- a/git_brisect_test.py +++ b/git_brisect_test.py @@ -338,6 +338,13 @@ def test_dot_dot(self): with self.assertRaises(git_brisect.BadRangeError): _ = git_brisect.RevRange.from_string("foo..bar baz") + def test_repr(self): + r = git_brisect.RevRange(exclude=["bar", "baz"], include="foo") + self.assertEqual(repr(r), "RevRange(foo ^bar ^baz)") + + r = git_brisect.RevRange(exclude=[], include="foo") + self.assertEqual(repr(r), "RevRange(foo)") + @dataclasses.dataclass class DagNode: