Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > But of course that'll just give you the tips. You could then use `git > cat-file --batch-check` on both ends to see what commits from the other > they report knowing about, in case they have branches that are > ahead/behind the other. I am not sure how you are envisioning to use "cat-file --batch-check" here. Do you mean to take "rev-list --all" output from both and compare, or something? I am not sure how Konstantin defines "the most efficient", but if it is "with the smallest number of bits exchanged between the repositories", then the answer would probably be to find the root commit(s) in each repository and if they share any common root(s). If there isn't then there is no hope to share objects between them, of course.