Skip to contentSkip to conversation

integrity of linux copy of a git repo

DISCUSSION Neal Kreitzinger 2 participants 2 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

If I make a recursive linux copy, "cp -rfp", of a git repo working tree is the resulting copy interchangeable with the original?

e.g.
/orig-wk-tree was created via git-clone with the file:/// url and therefore is a "full copy"
cp -rfp /orig-wk-tree /orig-wk-tree-copy
(do some stuff that breaks /orig-wk-tree)
rm -rf /orig-wk-tree
mv /orig-wk-tree-copy /orig-wk-tree

Have I truly recovered the full integrity of the original, or have I unwittingly introduced some sort of corruption?

v/r,
Neal

#1 lore raw

Hi Neal,

Quoted 2 lines · Neal Kreitzinger

If I make a recursive linux copy, "cp -rfp", of a git repo working tree is the resulting copy interchangeable with the original?

Yes, the git metadata does not hardcode the path to the repo anywhere. See gitrepository-layout(7) for perhaps more detail than you wanted.

You might want to use "git add --refresh ." (or even just "git diff") to update the cached stat() information before starting work with the new worktree, but that only matters if you are going to use very low-level commands.

Quoted 6 lines

cp -rfp /orig-wk-tree /orig-wk-tree-copy
(do some stuff that breaks /orig-wk-tree)
rm -rf /orig-wk-tree
mv /orig-wk-tree-copy /orig-wk-tree

Have I truly recovered the full integrity of the original

Sure, that's a good way to do experiments.

Hope that helps,
Jonathan