Show More
@@ -145,7 +145,7 b' def onetimesetup(ui):' | |||||
145 | ) |
|
145 | ) | |
146 |
|
146 | |||
147 | # don't clone filelogs to shallow clients |
|
147 | # don't clone filelogs to shallow clients | |
148 | def _walkstreamfiles(orig, repo, matcher=None): |
|
148 | def _walkstreamfiles(orig, repo, matcher=None, phase=False): | |
149 | if state.shallowremote: |
|
149 | if state.shallowremote: | |
150 | # if we are shallow ourselves, stream our local commits |
|
150 | # if we are shallow ourselves, stream our local commits | |
151 | if shallowutil.isenabled(repo): |
|
151 | if shallowutil.isenabled(repo): | |
@@ -200,7 +200,7 b' def onetimesetup(ui):' | |||||
200 | _(b"Cannot clone from a shallow repo to a full repo.") |
|
200 | _(b"Cannot clone from a shallow repo to a full repo.") | |
201 | ) |
|
201 | ) | |
202 | else: |
|
202 | else: | |
203 | for x in orig(repo, matcher): |
|
203 | for x in orig(repo, matcher, phase=phase): | |
204 | yield x |
|
204 | yield x | |
205 |
|
205 | |||
206 | extensions.wrapfunction(streamclone, b'_walkstreamfiles', _walkstreamfiles) |
|
206 | extensions.wrapfunction(streamclone, b'_walkstreamfiles', _walkstreamfiles) |
@@ -685,7 +685,7 b' class basicstore:' | |||||
685 | details=file_details, |
|
685 | details=file_details, | |
686 | ) |
|
686 | ) | |
687 |
|
687 | |||
688 | def top_entries(self) -> Generator[BaseStoreEntry, None, None]: |
|
688 | def top_entries(self, phase=False) -> Generator[BaseStoreEntry, None, None]: | |
689 | files = reversed(self._walk(b'', False)) |
|
689 | files = reversed(self._walk(b'', False)) | |
690 |
|
690 | |||
691 | changelogs = collections.defaultdict(dict) |
|
691 | changelogs = collections.defaultdict(dict) | |
@@ -725,11 +725,18 b' class basicstore:' | |||||
725 | target_id=b'', |
|
725 | target_id=b'', | |
726 | details=file_details, |
|
726 | details=file_details, | |
727 | ) |
|
727 | ) | |
|
728 | if phase and self.vfs.exists(b'phaseroots'): | |||
|
729 | yield SimpleStoreEntry( | |||
|
730 | entry_path=b'phaseroots', | |||
|
731 | is_volatile=True, | |||
|
732 | ) | |||
728 |
|
733 | |||
729 | def walk(self, matcher=None) -> Generator[BaseStoreEntry, None, None]: |
|
734 | def walk( | |
|
735 | self, matcher=None, phase=False | |||
|
736 | ) -> Generator[BaseStoreEntry, None, None]: | |||
730 | """return files related to data storage (ie: revlogs) |
|
737 | """return files related to data storage (ie: revlogs) | |
731 |
|
738 | |||
732 | yields (file_type, unencoded, size) |
|
739 | yields instance from BaseStoreEntry subclasses | |
733 |
|
740 | |||
734 | if a matcher is passed, storage files of only those tracked paths |
|
741 | if a matcher is passed, storage files of only those tracked paths | |
735 | are passed with matches the matcher |
|
742 | are passed with matches the matcher | |
@@ -737,7 +744,7 b' class basicstore:' | |||||
737 | # yield data files first |
|
744 | # yield data files first | |
738 | for x in self.data_entries(matcher): |
|
745 | for x in self.data_entries(matcher): | |
739 | yield x |
|
746 | yield x | |
740 | for x in self.top_entries(): |
|
747 | for x in self.top_entries(phase=phase): | |
741 | yield x |
|
748 | yield x | |
742 |
|
749 | |||
743 | def copylist(self): |
|
750 | def copylist(self): |
@@ -241,8 +241,8 b' def allowservergeneration(repo):' | |||||
241 |
|
241 | |||
242 |
|
242 | |||
243 | # This is it's own function so extensions can override it. |
|
243 | # This is it's own function so extensions can override it. | |
244 | def _walkstreamfiles(repo, matcher=None): |
|
244 | def _walkstreamfiles(repo, matcher=None, phase=False): | |
245 | return repo.store.walk(matcher) |
|
245 | return repo.store.walk(matcher, phase=phase) | |
246 |
|
246 | |||
247 |
|
247 | |||
248 | def generatev1(repo): |
|
248 | def generatev1(repo): | |
@@ -679,7 +679,8 b' def _v2_walk(repo, includes, excludes, i' | |||||
679 | if includes or excludes: |
|
679 | if includes or excludes: | |
680 | matcher = narrowspec.match(repo.root, includes, excludes) |
|
680 | matcher = narrowspec.match(repo.root, includes, excludes) | |
681 |
|
681 | |||
682 | for entry in _walkstreamfiles(repo, matcher): |
|
682 | phase = not repo.publishing() | |
|
683 | for entry in _walkstreamfiles(repo, matcher, phase=phase): | |||
683 | for f in entry.files(): |
|
684 | for f in entry.files(): | |
684 | file_size = f.file_size(repo.store.vfs) |
|
685 | file_size = f.file_size(repo.store.vfs) | |
685 | if file_size: |
|
686 | if file_size: | |
@@ -688,10 +689,6 b' def _v2_walk(repo, includes, excludes, i' | |||||
688 | ft = _filefull |
|
689 | ft = _filefull | |
689 | entries.append((_srcstore, f.unencoded_path, ft, file_size)) |
|
690 | entries.append((_srcstore, f.unencoded_path, ft, file_size)) | |
690 | totalfilesize += file_size |
|
691 | totalfilesize += file_size | |
691 | for name in _walkstreamfullstorefiles(repo): |
|
|||
692 | if repo.svfs.exists(name): |
|
|||
693 | totalfilesize += repo.svfs.lstat(name).st_size |
|
|||
694 | entries.append((_srcstore, name, _filefull, None)) |
|
|||
695 | if includeobsmarkers and repo.svfs.exists(b'obsstore'): |
|
692 | if includeobsmarkers and repo.svfs.exists(b'obsstore'): | |
696 | totalfilesize += repo.svfs.lstat(b'obsstore').st_size |
|
693 | totalfilesize += repo.svfs.lstat(b'obsstore').st_size | |
697 | entries.append((_srcstore, b'obsstore', _filefull, None)) |
|
694 | entries.append((_srcstore, b'obsstore', _filefull, None)) |
General Comments 0
You need to be logged in to leave comments.
Login now