# HG changeset patch
# User Georges Racinet <georges.racinet@octobus.net>
# Date 1686150675 -7200
#      Wed Jun 07 17:11:15 2023 +0200
# Branch stable
# Node ID 744ee924c13554a6b5bd815b624aeafe5b22208e
# Parent  3c6b018d3924495530554ac84edf69a509b37915
CommitService.FindCommit: fix discrepancy with Gitaly on null Node

diff --git a/hgitaly/service/commit.py b/hgitaly/service/commit.py
--- a/hgitaly/service/commit.py
+++ b/hgitaly/service/commit.py
@@ -112,6 +112,7 @@
 
 base_logger = logging.getLogger(__name__)
 
+NULL_REV = nodemod.nullrev
 PSEUDO_REVS = (nodemod.wdirrev, nodemod.nullrev)
 PSEUDO_REVLOG_NODES = {
     nodemod.nullid,
@@ -494,6 +495,9 @@
                            revision)
             return FindCommitResponse()
 
+        if ctx.rev() == NULL_REV:
+            return FindCommitResponse()
+
         commit = message.commit(ctx)
         return FindCommitResponse(commit=commit)
 
diff --git a/hgitaly/service/tests/test_commit.py b/hgitaly/service/tests/test_commit.py
--- a/hgitaly/service/tests/test_commit.py
+++ b/hgitaly/service/tests/test_commit.py
@@ -269,6 +269,9 @@
     assert not find_commit(b'f' * 39).HasField('commit')
     assert not find_commit(b'f' * 40).HasField('commit')
 
+    # null revision
+    assert not find_commit(b'0' * 40).HasField('commit')
+
 
 def test_find_commits(commit_fixture_empty_repo):
     fixture = commit_fixture_empty_repo
diff --git a/tests_with_gitaly/test_commit.py b/tests_with_gitaly/test_commit.py
--- a/tests_with_gitaly/test_commit.py
+++ b/tests_with_gitaly/test_commit.py
@@ -225,6 +225,7 @@
     mr_ref_path, _ = fixture.write_special_ref(b'merge-requests/2/train',
                                                ctx1.hex())
 
+    assert_compare(revision=b"0000" * 10)
     assert_compare(revision=ctx0.hex())
     assert_compare(revision=b'branch/default')
     assert_compare(revision=b'refs/heads/branch/default')