788
788
"""Be compatible with GitRepository."""
789
789
return (isinstance(source, RemoteGitRepository) and
790
790
isinstance(target, LocalGitRepository))
794
class InterLocalGitRemoteGitRepository(InterToGitRepository):
796
def fetch_refs(self, update_refs, lossy=False, overwrite=False):
797
"""Import the gist of the ancestry of a particular revision."""
799
raise LossyPushToSameVCS(self.source, self.target)
801
def git_update_refs(old_refs):
804
k: (v, None) for (k, v) in viewitems(old_refs)}
805
new_refs = update_refs(self.old_refs)
806
for name, (gitid, revid) in viewitems(new_refs):
808
gitid = self.source_store._lookup_revision_sha1(revid)
810
if remote_divergence(
811
old_refs.get(name), gitid, self.source_store):
812
raise DivergedBranches(self.source, self.target)
815
new_refs = self.target.send_pack(
817
self.source._git.generate_pack_data)
818
return None, self.old_refs, new_refs
821
def is_compatible(source, target):
822
return (isinstance(source, LocalGitRepository) and
823
isinstance(target, RemoteGitRepository))