git: make changelog.tiprev() return int instead of tuple (
issue6510)
Differential Revision: https://phab.mercurial-scm.org/D10522
--- a/hgext/git/gitlog.py Tue Apr 27 00:26:12 2021 -0400
+++ b/hgext/git/gitlog.py Tue Apr 27 12:31:30 2021 -0400
@@ -159,8 +159,11 @@
def tiprev(self):
t = self._db.execute(
'SELECT rev FROM changelog ' 'ORDER BY REV DESC ' 'LIMIT 1'
- )
- return next(t)
+ ).fetchone()
+
+ if t is not None:
+ return t[0]
+ return -1
def _partialmatch(self, id):
if wdirhex.startswith(id):
--- a/tests/test-git-interop.t Tue Apr 27 00:26:12 2021 -0400
+++ b/tests/test-git-interop.t Tue Apr 27 12:31:30 2021 -0400
@@ -49,6 +49,16 @@
> log-index-cache-miss = yes
> EOF
+Test some edge cases around a commitless repo first
+ $ mkdir empty
+ $ cd empty
+ $ git init
+ Initialized empty Git repository in $TESTTMP/empty/.git/
+ $ hg init --git
+ $ hg heads
+ [1]
+ $ cd ..
+
Make a new repo with git:
$ mkdir foo
$ cd foo
@@ -377,3 +387,24 @@
$ hg rm beta
$ hg ci -m 'remove beta'
+This covers changelog.tiprev() (issue6510)
+ $ hg log -r '(.^^):'
+ heads mismatch, rebuilding dagcache
+ changeset: 5:ae1ab744f95b
+ user: test <test>
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: Introduce file a/mu
+
+ changeset: 6:80adc61cf57e
+ user: test <test>
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: test interactive commit
+
+ changeset: 7:116aee5ecdff
+ bookmark: master
+ tag: tip
+ user: test <test>
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: remove beta
+
+