mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-06 08:54:04 +01:00
fix(ubicloud): keep pack's ignored-subdirectory behavior as reviewed in pass 1 (the whole-directory fallback could ship ignored files)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
8577fbc5f4
commit
7b587de6e5
2 files changed
+6
-10
No files matched your search
@@ -1116,14 +1116,11 @@ cmd_down() {
|
||||
# subdirectory of a work tree ships the same file set without a .git: git's
|
||||
# local transport fetches only from a repository's root, and the whole
|
||||
# repository's .git would show the VM every file outside the subdirectory as
|
||||
# deleted (GST-935). A directory git ignores has no such file set and is
|
||||
# taken whole, like a non-git directory.
|
||||
# deleted (GST-935).
|
||||
cmd_pack() {
|
||||
local src tmp gitdir branch head entry
|
||||
src=$(cd "${1:-.}" && pwd)
|
||||
if ! git -C "$src" rev-parse --is-inside-work-tree >/dev/null 2>&1 || git -C "$src" check-ignore -q .; then
|
||||
COPYFILE_DISABLE=1 tar -C "$src" -czf - .
|
||||
elif [ -n "$(git -C "$src" rev-parse --show-prefix)" ]; then
|
||||
if git -C "$src" rev-parse --is-inside-work-tree >/dev/null 2>&1 && [ -n "$(git -C "$src" rev-parse --show-prefix)" ]; then
|
||||
(
|
||||
cd "$src"
|
||||
export COPYFILE_DISABLE=1
|
||||
@@ -1134,7 +1131,7 @@ cmd_pack() {
|
||||
| tar --null -T - -cf - \
|
||||
| gzip -c
|
||||
)
|
||||
else
|
||||
elif git -C "$src" rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
head=$(git -C "$src" rev-parse --verify -q HEAD) || die "pack: $src has no commits; the VM needs a HEAD to fingerprint"
|
||||
branch=$(git -C "$src" symbolic-ref -q --short HEAD || true)
|
||||
tmp=$(mktemp -d)
|
||||
@@ -1185,6 +1182,8 @@ cmd_pack() {
|
||||
&& gzip -c "$tmp/files.tar"
|
||||
)
|
||||
rm -rf "$tmp"; trap - EXIT
|
||||
else
|
||||
COPYFILE_DISABLE=1 tar -C "$src" -czf - .
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user