why git-reset needed after "cp -a" of a git repo?
- From
- Erez Zadok <ezk@cs.sunysb.edu>
- Date
- Aug 22, 2007, 18:57 UTC
- Message-ID
- <200708221857.l7MIv5tD011053@agora.fsl.cs.sunysb.edu>
Apologies if this had been discussed before: I wasn't able to find this in the ML archives.
Sometimes I copy a whole git archive using cp -a, for experimental reasons, or otherwise; sometimes I rsync several git repos between remote and local computers to make access faster (it's often faster to rsync two git repos than to re-clone or deal with merge conflicts).
However, I noticed that after I copy a git repo (using v1.5.2.2), the index entries are all out of sync, and I need to run git-reset. Why? What's in the index file that changes after a cp -a or rsync that git depends on? Is it atime's and if so, aren't they copied by cp -a or rsync? If it depends on atime's, what happens if I mount my filesystem with noatime? Or does git's index depends on inode numbers which change after a cp -a? (BTW, I tried a variety of rsync options and none helped.) I also briefly looked at the source code and wasn't able to find the answer.
So, is there a way to efficiently copy a git repo on a local or remote host w/o having to rerun git-reset afterwards?
Thanks, Erez.