diff --git a/swh/web/browse/utils.py b/swh/web/browse/utils.py --- a/swh/web/browse/utils.py +++ b/swh/web/browse/utils.py @@ -333,7 +333,10 @@ if snapshot_context["release"]: query_params["release"] = snapshot_context["release"] - elif snapshot_context["branch"] and snapshot_context["branch"] != "HEAD": + elif snapshot_context["branch"] and snapshot_context["branch"] not in ( + "HEAD", + snapshot_context["revision_id"], + ): query_params["branch"] = snapshot_context["branch"] elif snapshot_context["revision_id"]: query_params["revision"] = snapshot_context["revision_id"] diff --git a/swh/web/browse/views/revision.py b/swh/web/browse/views/revision.py --- a/swh/web/browse/views/revision.py +++ b/swh/web/browse/views/revision.py @@ -342,7 +342,7 @@ visit_id=visit_id, branch_name=request.GET.get("branch"), release_name=request.GET.get("release"), - revision_id=request.GET.get("revision"), + revision_id=sha1_git, ) except NotFoundExc as e: raw_rev_url = reverse( diff --git a/swh/web/tests/browse/views/test_revision.py b/swh/web/tests/browse/views/test_revision.py --- a/swh/web/tests/browse/views/test_revision.py +++ b/swh/web/tests/browse/views/test_revision.py @@ -3,6 +3,7 @@ # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information +import random import textwrap from django.utils.html import escape @@ -31,6 +32,9 @@ client, archive_data, revision, origin_url=origin["url"], snapshot=snapshot, ) + revision = random.choice(archive_data.revision_log(revision))["id"] + _revision_browse_checks(client, archive_data, revision, origin_url=origin["url"]) + @given(revision()) def test_revision_log_browse(client, archive_data, revision):