I was migrating my existing repository to git lfs and it seems like somehow I managed to create a perfect storm.
There are currently two machines: A and B.
Machine A is missing the contents of the file X. I get an error when calling git lfs fetch --all origin
. The machine B is missing the contents for file Y.
I try calling git lfs push --all origin
on both. It doesn't work on machine A because it doesn't have file X. It doesn't work on machine B, because it doesn't have file Y.
How can I possibly resolve this situation. I have no idea how this happened or even could possibly happen.
Output of git lfs push
on one of the machines:
Git LFS: (0 of 982 files, 1300 skipped) 0 B / 1.73 GB, 1.09 GB skipped
d8d0edd8e03f523ab08de27e72a17272ddd24170764e0a9f836c8ba95cf73006 does not
exist in .git/lfs/objects. Tried
Assets/weapons/models/at_mine/textures/1k/at_mine__normal_1k.bmp, which
matches d8d0edd8e03f523ab08de27e72a17272ddd24170764e0a9f836c8ba95cf73006.
Output of git lfs fetch
on one of the machines:
git lfs fetch --all
Scanning for all 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
does not exist on the server: [404] Object does not exist on the server
[df1dbb12f35f5392c157beebbc3613f70993c691a68f4cc65033ade528de3418] Object
does not exist on the server: [404] Object does not exist on the server
[edaf4f6721fb14ce4d38d3adddc86aaaf6fbf0c7db11da451022a4f74af97f30] Object does not exist on the server: [404] Object does not exist on the server
... and so on and so on
I was performing the migration to LFS using bfg repo cleaner.
** EDIT **
The steps I performed:
- Git clone of the entire repo in its old form (from before the conversion) to Machine A.
- I run BFG on Machine A that essentially rewrote the history of the master branch (no other branches kept remotely).
- I run
git push origin master --force
as you are supposed to replace the old version of master with a new version of master. - I run
git fetch
on Machine B to get all the files. - There were some commits on Machine B, in master that didn't get sent to the server yet - because they would cause the repo to exceed the quota. Therefore I run
git rebase --onto origin/master HEAD~3 HEAD
to move the unsent new commits to the new version of master. - I run
git push origin master
on Machine B.
This is where I am at now.