repository - Git LFS - fatal error different files missing on 2 different machines -
i migrating existing repository git lfs , seems somehow managed create perfect storm.
there 2 machines: , b.
machine missing contents of file x. error when calling git lfs fetch --all origin
. machine b missing contents file y.
i try calling git lfs push --all origin
on both. doesn't work on machine because doesn't have file x. doesn't work on machine b, because doesn't have file y.
how can possibly resolve situation. have no idea how happened or possibly happen.
output of git lfs push
on 1 of machines:
git lfs: (0 of 982 files, 1300 skipped) 0 b / 1.73 gb, 1.09 gb skipped d8d0edd8e03f523ab08de27e72a17272ddd24170764e0a9f836c8ba95cf73006 not exist in .git/lfs/objects. tried assets/weapons/models/at_mine/textures/1k/at_mine__normal_1k.bmp, matches d8d0edd8e03f523ab08de27e72a17272ddd24170764e0a9f836c8ba95cf73006.
output of git lfs fetch
on 1 of machines:
git lfs fetch --all scanning objects ever referenced... * 2319 objects found fetching objects... git lfs: (207 of 207 files, 722 skipped) 524.01 mb / 524.51 mb, 870.82 mb skipped [d8d0edd8e03f523ab08de27e72a17272ddd24170764e0a9f836c8ba95cf73006] object not exist on server: [404] object not exist on server [df1dbb12f35f5392c157beebbc3613f70993c691a68f4cc65033ade528de3418] object not exist on server: [404] object not exist on server [edaf4f6721fb14ce4d38d3adddc86aaaf6fbf0c7db11da451022a4f74af97f30] object not exist on server: [404] object not exist on server ... , on , on
i performing migration lfs using bfg repo cleaner.
** edit **
the steps performed:
- git clone of entire repo in old form (from before conversion) machine a.
- i run bfg on machine rewrote history of master branch (no other branches kept remotely).
- i run
git push origin master --force
supposed replace old version of master new version of master. - i run
git fetch
on machine b files. - there commits on machine b, in master didn't sent server yet - because cause repo exceed quota. therefore run
git rebase --onto origin/master head~3 head
move unsent new commits new version of master. - i run
git push origin master
on machine b.
this @ now.
so isn't related state of lfs objects, cause trouble clean-up attempt. rebase command show machine b leaves in awkward state. if you'd had
a --- b --- c --- d <--(master)
and fetched results of rewrite, giving
a --- b --- c --- d <--(master) a' --- b' <--(origin/master)
the rebase command specified, because listed head
ref rebase from, put in detached head state with
a --- b --- c --- d <--(master) a' --- b' <--(origin/master) \ c' --- d' <--(head)
so pushing master
should fail regardless of lfs troubles. if want keep track of d
post-cleanup validation of sort, tag it; , head
still @ d'
run
git branch -f master
to get
a --- b --- c --- d <--[old-master]) a' --- b' <--(origin/master) \ c' --- d' <--(master)
but said, if each machine missing lfs objects, not fix that. i'm assuming both machines configured git-lfs
. i've seen rather odd behavior if lfs install
hadn't been run when needed have been; unless doing obscure, it's unlikely lead are... so...
because lfs objects identified using sha-256, 2 files matching id same file ridiculously safe assumption. 1 thing can try find file missing machine b under .git/lfs/objects
on machine a, , manually copy it. (or vice versa.) if, between two, have complete set of lfs objects, situation can fixed in way.
to find object id d8d0edd8e03f523ab08de27e72a17272ddd24170764e0a9f836c8ba95cf73006 in .git/lfs/objects/d8/d0/d8d0edd8e03f523ab08de27e72a17272ddd24170764e0a9f836c8ba95cf73006
if object missing on both machines, can try figure out corresponding file original repo , add 1 of local lfs caches manually.
git lfs clean <original.file
Comments
Post a Comment