From bb018e909c523a182a07f7ea1aaf7050c0ac57dc Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Fri, 29 Aug 2025 08:40:49 -0700 Subject: [PATCH] dfgitutil: don't initialize ref from checksum Initializing ref from checksum has unexpected side effects: - Short checksum can't be used for fetching - Default branch would be missing when fetching with keep-git-dir Signed-off-by: Tonis Tiigi --- frontend/dockerfile/dfgitutil/git_ref.go | 3 --- frontend/dockerfile/dockerfile_addgit_test.go | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/frontend/dockerfile/dfgitutil/git_ref.go b/frontend/dockerfile/dfgitutil/git_ref.go index 54fb775750e1..d856f313b35e 100644 --- a/frontend/dockerfile/dfgitutil/git_ref.go +++ b/frontend/dockerfile/dfgitutil/git_ref.go @@ -176,8 +176,5 @@ func (gf *GitRef) loadQuery(query url.Values) error { } gf.Ref = branch } - if gf.Checksum != "" && gf.Ref == "" { - gf.Ref = gf.Checksum - } return nil } diff --git a/frontend/dockerfile/dockerfile_addgit_test.go b/frontend/dockerfile/dockerfile_addgit_test.go index 1c7dc1c30b1f..c9fbc53b9f39 100644 --- a/frontend/dockerfile/dockerfile_addgit_test.go +++ b/frontend/dockerfile/dockerfile_addgit_test.go @@ -472,11 +472,26 @@ COPY foo out url: serverURL + "/.git?commit=" + commitHashV2, expectOut: "v0.0.2\n", }, + { + name: "v2 by commit (wrong short)", + url: serverURL + "/.git?commit=" + commitHashV2[:8], + expectErr: "expected checksum to match", + }, + { + name: "v2 by commit (short)", + url: serverURL + "/.git?commit=" + commitHashLatest[:8], + expectOut: "latest\n", + }, { name: "v2 ref by commit", url: serverURL + "/.git?ref=" + commitHashV2, expectOut: "v0.0.2\n", }, + { + name: "v2 ref by commit (short)", + url: serverURL + "/.git?ref=" + commitHashV2[:8], + expectErr: "repository does not contain ref", + }, { name: "tag with commit", url: serverURL + "/.git?tag=v0.0.2&commit=" + commitHashV2,