Show More
@@ -603,6 +603,47 b' def _test_sync_point_walk_2(repo):' | |||
|
603 | 603 | """a function for synchronisation during tests""" |
|
604 | 604 | |
|
605 | 605 | |
|
606 | def _v2_walk(repo, includes, excludes, includeobsmarkers): | |
|
607 | """emit a seris of files information useful to clone a repo | |
|
608 | ||
|
609 | return (entries, totalfilesize) | |
|
610 | ||
|
611 | entries is a list of tuple (vfs-key, file-path, file-type, size) | |
|
612 | ||
|
613 | - `vfs-key`: is a key to the right vfs to write the file (see _makemap) | |
|
614 | - `name`: file path of the file to copy (to be feed to the vfss) | |
|
615 | - `file-type`: do this file need to be copied with the source lock ? | |
|
616 | - `size`: the size of the file (or None) | |
|
617 | """ | |
|
618 | assert repo._currentlock(repo._lockref) is not None | |
|
619 | entries = [] | |
|
620 | totalfilesize = 0 | |
|
621 | ||
|
622 | matcher = None | |
|
623 | if includes or excludes: | |
|
624 | matcher = narrowspec.match(repo.root, includes, excludes) | |
|
625 | ||
|
626 | for rl_type, name, ename, size in _walkstreamfiles(repo, matcher): | |
|
627 | if size: | |
|
628 | ft = _fileappend | |
|
629 | if rl_type & store.FILEFLAGS_VOLATILE: | |
|
630 | ft = _filefull | |
|
631 | entries.append((_srcstore, name, ft, size)) | |
|
632 | totalfilesize += size | |
|
633 | for name in _walkstreamfullstorefiles(repo): | |
|
634 | if repo.svfs.exists(name): | |
|
635 | totalfilesize += repo.svfs.lstat(name).st_size | |
|
636 | entries.append((_srcstore, name, _filefull, None)) | |
|
637 | if includeobsmarkers and repo.svfs.exists(b'obsstore'): | |
|
638 | totalfilesize += repo.svfs.lstat(b'obsstore').st_size | |
|
639 | entries.append((_srcstore, b'obsstore', _filefull, None)) | |
|
640 | for name in cacheutil.cachetocopy(repo): | |
|
641 | if repo.cachevfs.exists(name): | |
|
642 | totalfilesize += repo.cachevfs.lstat(name).st_size | |
|
643 | entries.append((_srccache, name, _filefull, None)) | |
|
644 | return entries, totalfilesize | |
|
645 | ||
|
646 | ||
|
606 | 647 | def generatev2(repo, includes, excludes, includeobsmarkers): |
|
607 | 648 | """Emit content for version 2 of a streaming clone. |
|
608 | 649 | |
@@ -618,32 +659,14 b' def generatev2(repo, includes, excludes,' | |||
|
618 | 659 | |
|
619 | 660 | with repo.lock(): |
|
620 | 661 | |
|
621 | entries = [] | |
|
622 | totalfilesize = 0 | |
|
623 | ||
|
624 | matcher = None | |
|
625 | if includes or excludes: | |
|
626 | matcher = narrowspec.match(repo.root, includes, excludes) | |
|
662 | repo.ui.debug(b'scanning\n') | |
|
627 | 663 | |
|
628 | repo.ui.debug(b'scanning\n') | |
|
629 | for rl_type, name, ename, size in _walkstreamfiles(repo, matcher): | |
|
630 |
i |
|
|
631 | ft = _fileappend | |
|
632 | if rl_type & store.FILEFLAGS_VOLATILE: | |
|
633 | ft = _filefull | |
|
634 | entries.append((_srcstore, name, ft, size)) | |
|
635 | totalfilesize += size | |
|
636 | for name in _walkstreamfullstorefiles(repo): | |
|
637 | if repo.svfs.exists(name): | |
|
638 | totalfilesize += repo.svfs.lstat(name).st_size | |
|
639 | entries.append((_srcstore, name, _filefull, None)) | |
|
640 | if includeobsmarkers and repo.svfs.exists(b'obsstore'): | |
|
641 | totalfilesize += repo.svfs.lstat(b'obsstore').st_size | |
|
642 | entries.append((_srcstore, b'obsstore', _filefull, None)) | |
|
643 | for name in cacheutil.cachetocopy(repo): | |
|
644 | if repo.cachevfs.exists(name): | |
|
645 | totalfilesize += repo.cachevfs.lstat(name).st_size | |
|
646 | entries.append((_srccache, name, _filefull, None)) | |
|
664 | entries, totalfilesize = _v2_walk( | |
|
665 | repo, | |
|
666 | includes=includes, | |
|
667 | excludes=excludes, | |
|
668 | includeobsmarkers=includeobsmarkers, | |
|
669 | ) | |
|
647 | 670 | |
|
648 | 671 | chunks = _emit2(repo, entries, totalfilesize) |
|
649 | 672 | first = next(chunks) |
General Comments 0
You need to be logged in to leave comments.
Login now