git fast-export | git fast-import doesn't work
From: Ondrej Certik <hidden>
Date: 2016-06-15 22:45:41
Hi,
I would like to export our whole git repository to patches, and then
reconstruct it again from scratch. Following the man page of "git
fast-export":
$ git clone git://git.sympy.org/sympy-full-history-20081023.git
$ cd sympy-full-history-20081023
$ git fast-export --all --export-marks=marks > patches
$ cd ..
$ mkdir sympy-new
$ cd sympy-new
$ git init
$ git fast-import --export-marks=marks < ../sympy-full-history-20081023/patches
git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects: 25000
Total objects: 21355 ( 144 duplicates )
blobs : 8009 ( 0 duplicates 4529 deltas)
trees : 10627 ( 144 duplicates 9189 deltas)
commits: 2719 ( 0 duplicates 0 deltas)
tags : 0 ( 0 duplicates 0 deltas)
Total branches: 21 ( 26 loads )
marks: 1048576 ( 10728 unique )
atoms: 726
Memory total: 2880 KiB
pools: 2098 KiB
objects: 781 KiB
---------------------------------------------------------------------
pack_report: getpagesize() = 4096
pack_report: core.packedGitWindowSize = 33554432
pack_report: core.packedGitLimit = 268435456
pack_report: pack_used_ctr = 40706
pack_report: pack_mmap_calls = 2791
pack_report: pack_open_windows = 1 / 2
pack_report: pack_mapped = 26177739 / 35513414
---------------------------------------------------------------------
However, the repository is very different to the original one. It
contains only 191 patches:
$ git log --pretty=oneline | wc -l
191
and it only contains couple files. Compare this with the original repository:
$ git log --pretty=oneline | wc -l
2719
What am I doing wrong? Is there some other way to do it? I also tried
"git format-patch" and "git am" and that almost works, only it changes
hashes. Is there some way to tell "git am" to preserve the hash?
Thanks,
Ondrej