Source identity
| Field | Recorded value |
|---|---|
| Source type | archive member |
| Original record | push-to-checkout.sample |
| Date | Not specified in source |
| Path or archive member | archives/libsrc-1c3f88063121/NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__thataicharity__cb026434-ade6-4dd2-8128-95a84f61373d/source/charityOnMe.git/hooks/push-to-checkout.sample |
| Original SHA-256 | a53d0741798b287c6dd7afa64aee473f305e65d3f49463bb9d7408ec3b12bf5f |
| Reading-copy SHA-256 | a53d0741798b287c6dd7afa64aee473f305e65d3f49463bb9d7408ec3b12bf5f |
| Archive source | {"sourceId": "libsrc-1c3f88063121", "member": "NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__thataicharity__cb026434-ade6-4dd2-8128-95a84f61373d/source/charityOnMe.git/hooks/push-to-checkout.sample"} |
Every recorded occurrence
These 3 records contain identical original source bytes. Their paths and revisions remain part of the archive.
| Original record | Branch or archive | Revision / identifier | Original location |
|---|---|---|---|
| push-to-checkout.sample | {"sourceId": "libsrc-1c3f88063121", "member": "NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__thataicharity__cb026434-ade6-4dd2-8128-95a84f61373d/source/charityOnMe.git/hooks/push-to-checkout.sample"} | libsrc-64ed65825806 | archives/libsrc-1c3f88063121/NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__thataicharity__cb026434-ade6-4dd2-8128-95a84f61373d/source/charityOnMe.git/hooks/push-to-checkout.sample |
| push-to-checkout.sample | {"sourceId": "libsrc-1c3f88063121", "member": "NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__hive-agi-thataiguy-v2__647e6ba4-a5f9-4e51-8426-c8c4a569bdfe/source/thataiguy-org-website.git/hooks/push-to-checkout.sample"} | libsrc-239146c0b3f4 | archives/libsrc-1c3f88063121/NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__hive-agi-thataiguy-v2__647e6ba4-a5f9-4e51-8426-c8c4a569bdfe/source/thataiguy-org-website.git/hooks/push-to-checkout.sample |
| push-to-checkout.sample | {"sourceId": "libsrc-1c3f88063121", "member": "NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__hive-agi-thataiguy-v1__f4ea558a-14c1-4a71-babf-72a96517faec/source/thataiguy-org-website.git/hooks/push-to-checkout.sample"} | libsrc-76f290bc1378 | archives/libsrc-1c3f88063121/NETLIFY_AI_RECOVERY_2026-10-14_21-10-49/sites/janady13__hive-agi-thataiguy-v1__f4ea558a-14c1-4a71-babf-72a96517faec/source/thataiguy-org-website.git/hooks/push-to-checkout.sample |
Recovered source transcript
Download complete source text ↓79 lines · 2.7 KB
#!/bin/sh
# An example hook script to update a checked-out tree on a git push.
#
# This hook is invoked by git-receive-pack(1) when it reacts to git
# push and updates reference(s) in its repository, and when the push
# tries to update the branch that is currently checked out and the
# receive.denyCurrentBranch configuration variable is set to
# updateInstead.
#
# By default, such a push is refused if the working tree and the index
# of the remote repository has any difference from the currently
# checked out commit; when both the working tree and the index match
# the current commit, they are updated to match the newly pushed tip
# of the branch. This hook is to be used to override the default
# behaviour; however the code below reimplements the default behaviour
# as a starting point for convenient modification.
#
# The hook receives the commit with which the tip of the current
# branch is going to be updated:
commit=$1
# It can exit with a non-zero status to refuse the push (when it does
# so, it must not modify the index or the working tree).
die () {
echo >&2 "$*"
exit 1
}
# Or it can make any necessary changes to the working tree and to the
# index to bring them to the desired state when the tip of the current
# branch is updated to the new commit, and exit with a zero status.
#
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
# in order to emulate git fetch that is run in the reverse direction
# with git push, as the two-tree form of git read-tree -u -m is
# essentially the same as git switch or git checkout that switches
# branches while keeping the local changes in the working tree that do
# not interfere with the difference between the branches.
# The below is a more-or-less exact translation to shell of the C code
# for the default behaviour for git's push-to-checkout hook defined in
# the push_to_deploy() function in builtin/receive-pack.c.
#
# Note that the hook will be executed from the repository directory,
# not from the working tree, so if you want to perform operations on
# the working tree, you will have to adapt your code accordingly, e.g.
# by adding "cd .." or using relative paths.
if ! git update-index -q --ignore-submodules --refresh
then
die "Up-to-date check failed"
fi
if ! git diff-files --quiet --ignore-submodules --
then
die "Working directory has unstaged changes"
fi
# This is a rough translation of:
#
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
if git cat-file -e HEAD 2>/dev/null
then
head=HEAD
else
head=$(git hash-object -t tree --stdin </dev/null)
fi
if ! git diff-index --quiet --cached --ignore-submodules $head --
then
die "Working directory has staged changes"
fi
if ! git read-tree -u -m "$commit"
then
die "Could not update working tree to new HEAD"
fi