Show More
@@ -603,21 +603,19 def _test_sync_point_walk_2(repo): | |||
|
603 | 603 | """a function for synchronisation during tests""" |
|
604 | 604 | |
|
605 | 605 | |
|
606 |
def |
|
|
607 | """Emit content for version 2 of a streaming clone. | |
|
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) | |
|
608 | 612 | |
|
609 | the data stream consists the following entries: | |
|
610 | 1) A char representing the file destination (eg: store or cache) | |
|
611 | 2) A varint containing the length of the filename | |
|
612 | 3) A varint containing the length of file data | |
|
613 | 4) N bytes containing the filename (the internal, store-agnostic form) | |
|
614 | 5) N bytes containing the file data | |
|
615 | ||
|
616 | Returns a 3-tuple of (file count, file size, data iterator). | |
|
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 | 617 | """ |
|
618 | ||
|
619 | with repo.lock(): | |
|
620 | ||
|
618 | assert repo._currentlock(repo._lockref) is not None | |
|
621 | 619 |
|
|
622 | 620 |
|
|
623 | 621 | |
@@ -625,7 +623,6 def generatev2(repo, includes, excludes, | |||
|
625 | 623 |
|
|
626 | 624 |
|
|
627 | 625 | |
|
628 | repo.ui.debug(b'scanning\n') | |
|
629 | 626 |
|
|
630 | 627 |
|
|
631 | 628 |
|
@@ -644,6 +641,32 def generatev2(repo, includes, excludes, | |||
|
644 | 641 |
|
|
645 | 642 |
|
|
646 | 643 |
|
|
644 | return entries, totalfilesize | |
|
645 | ||
|
646 | ||
|
647 | def generatev2(repo, includes, excludes, includeobsmarkers): | |
|
648 | """Emit content for version 2 of a streaming clone. | |
|
649 | ||
|
650 | the data stream consists the following entries: | |
|
651 | 1) A char representing the file destination (eg: store or cache) | |
|
652 | 2) A varint containing the length of the filename | |
|
653 | 3) A varint containing the length of file data | |
|
654 | 4) N bytes containing the filename (the internal, store-agnostic form) | |
|
655 | 5) N bytes containing the file data | |
|
656 | ||
|
657 | Returns a 3-tuple of (file count, file size, data iterator). | |
|
658 | """ | |
|
659 | ||
|
660 | with repo.lock(): | |
|
661 | ||
|
662 | repo.ui.debug(b'scanning\n') | |
|
663 | ||
|
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