forked from Mirrors/flatpak-builder
Fix checkout of shallow repo.
Some manifest (cx.ring.RingGnome) had a git commit id that was only tip of a non-branch ref (refs/changes/51/8051/8), which was not cloned by a regular clone, so we need to switch to a clone --mirror. Closes: #50 Approved by: alexlarssontingping/wmclass
parent
9453867333
commit
15f3582e40
|
@ -658,14 +658,24 @@ builder_git_checkout (const char *repo_location,
|
||||||
g_autoptr(GFile) mirror_dir = NULL;
|
g_autoptr(GFile) mirror_dir = NULL;
|
||||||
g_autofree char *mirror_dir_path = NULL;
|
g_autofree char *mirror_dir_path = NULL;
|
||||||
g_autofree char *dest_path = NULL;
|
g_autofree char *dest_path = NULL;
|
||||||
|
g_autofree char *dest_path_git = NULL;
|
||||||
|
|
||||||
mirror_dir = git_get_mirror_dir (repo_location, context);
|
mirror_dir = git_get_mirror_dir (repo_location, context);
|
||||||
|
|
||||||
mirror_dir_path = g_file_get_path (mirror_dir);
|
mirror_dir_path = g_file_get_path (mirror_dir);
|
||||||
dest_path = g_file_get_path (dest);
|
dest_path = g_file_get_path (dest);
|
||||||
|
dest_path_git = g_build_filename (dest_path, ".git", NULL);
|
||||||
|
|
||||||
|
/* We need to clone with --mirror so that we get all refs, including non-branch/tags */
|
||||||
if (!git (NULL, NULL, 0, error,
|
if (!git (NULL, NULL, 0, error,
|
||||||
"clone", mirror_dir_path, dest_path, NULL))
|
"clone",
|
||||||
|
"--mirror",
|
||||||
|
mirror_dir_path, dest_path_git, NULL))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
/* Then we need to convert to regular */
|
||||||
|
if (!git (dest, NULL, 0, error,
|
||||||
|
"config", "--bool", "core.bare", "false", NULL))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (!git (dest, NULL, 0, error,
|
if (!git (dest, NULL, 0, error,
|
||||||
|
|
Loading…
Reference in New Issue