Merge pull request #104714 from codedownio/tree-hashes
fetchgit: support passing tree hashes as "rev"
This commit is contained in:
commit
a964d7094a
@ -149,7 +149,19 @@ checkout_hash(){
|
||||
fi
|
||||
|
||||
clean_git fetch -t ${builder:+--progress} origin || return 1
|
||||
clean_git checkout -b "$branchName" "$hash" || return 1
|
||||
|
||||
local object_type=$(git cat-file -t "$hash")
|
||||
if [[ "$object_type" == "commit" ]]; then
|
||||
clean_git checkout -b "$branchName" "$hash" || return 1
|
||||
elif [[ "$object_type" == "tree" ]]; then
|
||||
clean_git config user.email "nix-prefetch-git@localhost"
|
||||
clean_git config user.name "nix-prefetch-git"
|
||||
local commit_id=$(git commit-tree "$hash" -m "Commit created from tree hash $hash")
|
||||
clean_git checkout -b "$branchName" "$commit_id" || return 1
|
||||
else
|
||||
echo "Unrecognized git object type: $object_type"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Fetch only a branch/tag and checkout it.
|
||||
|
Loading…
Reference in New Issue
Block a user