##// END OF EJS Templates
stream-clone: introduce a _entries_walk...
marmoute -
r51408:06d580b8 default
parent child Browse files
Show More
@@ -659,6 +659,30 b' def _test_sync_point_walk_2(repo):'
659 """a function for synchronisation during tests"""
659 """a function for synchronisation during tests"""
660
660
661
661
662 def _entries_walk(repo, includes, excludes, includeobsmarkers):
663 """emit a seris of files information useful to clone a repo
664
665 return (vfs-key, entry) iterator
666
667 Where `entry` is StoreEntry. (used even for cache entries)
668 """
669 assert repo._currentlock(repo._lockref) is not None
670
671 matcher = None
672 if includes or excludes:
673 matcher = narrowspec.match(repo.root, includes, excludes)
674
675 phase = not repo.publishing()
676 entries = _walkstreamfiles(
677 repo,
678 matcher,
679 phase=phase,
680 obsolescence=includeobsmarkers,
681 )
682 for entry in entries:
683 yield (_srcstore, entry)
684
685
662 def _v2_walk(repo, includes, excludes, includeobsmarkers):
686 def _v2_walk(repo, includes, excludes, includeobsmarkers):
663 """emit a seris of files information useful to clone a repo
687 """emit a seris of files information useful to clone a repo
664
688
@@ -675,22 +699,17 b' def _v2_walk(repo, includes, excludes, i'
675 files = []
699 files = []
676 totalfilesize = 0
700 totalfilesize = 0
677
701
678 matcher = None
702 vfsmap = _makemap(repo)
679 if includes or excludes:
703 entries = _entries_walk(repo, includes, excludes, includeobsmarkers)
680 matcher = narrowspec.match(repo.root, includes, excludes)
704 for vfs_key, entry in entries:
681
705 vfs = vfsmap[vfs_key]
682 phase = not repo.publishing()
683 entries = _walkstreamfiles(
684 repo, matcher, phase=phase, obsolescence=includeobsmarkers
685 )
686 for entry in entries:
687 for f in entry.files():
706 for f in entry.files():
688 file_size = f.file_size(repo.store.vfs)
707 file_size = f.file_size(vfs)
689 if file_size:
708 if file_size:
690 ft = _fileappend
709 ft = _fileappend
691 if f.is_volatile:
710 if f.is_volatile:
692 ft = _filefull
711 ft = _filefull
693 files.append((_srcstore, f.unencoded_path, ft, file_size))
712 files.append((vfs_key, f.unencoded_path, ft, file_size))
694 totalfilesize += file_size
713 totalfilesize += file_size
695 for name in cacheutil.cachetocopy(repo):
714 for name in cacheutil.cachetocopy(repo):
696 if repo.cachevfs.exists(name):
715 if repo.cachevfs.exists(name):
General Comments 0
You need to be logged in to leave comments. Login now