Show More
@@ -88,7 +88,9 b' 3. remotefilelog only works with ssh bas' | |||||
88 |
|
88 | |||
89 | 4. Tags are not supported in completely shallow repos. If you use tags in your repo you will have to specify `excludepattern=.hgtags` in your client configuration to ensure that file is downloaded. The include/excludepattern settings are experimental at the moment and have yet to be deployed in a production environment. |
|
89 | 4. Tags are not supported in completely shallow repos. If you use tags in your repo you will have to specify `excludepattern=.hgtags` in your client configuration to ensure that file is downloaded. The include/excludepattern settings are experimental at the moment and have yet to be deployed in a production environment. | |
90 |
|
90 | |||
91 | 5. A few commands will be slower. `hg log <filename>` will be much slower since it has to walk the entire commit history instead of just the filelog. Use `hg log -f <filename>` instead, which remains very fast. |
|
91 | 5. Similarly, subrepositories should not be used with completely shallow repos. Use `excludepattern=.hgsub*` in your client configuration to ensure that the files are downloaded. | |
|
92 | ||||
|
93 | 6. A few commands will be slower. `hg log <filename>` will be much slower since it has to walk the entire commit history instead of just the filelog. Use `hg log -f <filename>` instead, which remains very fast. | |||
92 |
|
94 | |||
93 | Contributing |
|
95 | Contributing | |
94 | ============ |
|
96 | ============ |
@@ -244,11 +244,11 b' class remotefilelog(object):' | |||||
244 | __bool__ = __nonzero__ |
|
244 | __bool__ = __nonzero__ | |
245 |
|
245 | |||
246 | def __len__(self): |
|
246 | def __len__(self): | |
247 |
if self.filename |
|
247 | if self.filename in (b'.hgtags', b'.hgsub', b'.hgsubstate'): | |
248 | # The length of .hgtags is used to fast path tag checking. |
|
248 | # Global tag and subrepository support require access to the | |
249 | # remotefilelog doesn't support .hgtags since the entire .hgtags |
|
249 | # file history for various performance sensitive operations. | |
250 | # history is needed. Use the excludepattern setting to make |
|
250 | # excludepattern should be used for repositories depending on | |
251 |
# |
|
251 | # those features to fallback to regular filelog. | |
252 | return 0 |
|
252 | return 0 | |
253 |
|
253 | |||
254 | raise RuntimeError(b"len not supported") |
|
254 | raise RuntimeError(b"len not supported") |
@@ -521,8 +521,16 b' def _pushdiscovery(pushop):' | |||||
521 |
|
521 | |||
522 | def _checksubrepostate(pushop): |
|
522 | def _checksubrepostate(pushop): | |
523 | """Ensure all outgoing referenced subrepo revisions are present locally""" |
|
523 | """Ensure all outgoing referenced subrepo revisions are present locally""" | |
|
524 | ||||
|
525 | repo = pushop.repo | |||
|
526 | ||||
|
527 | # If the repository does not use subrepos, skip the expensive | |||
|
528 | # manifest checks. | |||
|
529 | if not len(repo.file(b'.hgsub')) or not len(repo.file(b'.hgsubstate')): | |||
|
530 | return | |||
|
531 | ||||
524 | for n in pushop.outgoing.missing: |
|
532 | for n in pushop.outgoing.missing: | |
525 |
ctx = |
|
533 | ctx = repo[n] | |
526 |
|
534 | |||
527 | if b'.hgsub' in ctx.manifest() and b'.hgsubstate' in ctx.files(): |
|
535 | if b'.hgsub' in ctx.manifest() and b'.hgsubstate' in ctx.files(): | |
528 | for subpath in sorted(ctx.substate): |
|
536 | for subpath in sorted(ctx.substate): |
@@ -15,6 +15,8 b' The `--no-check` and `--no-merge` now pr' | |||||
15 |
|
15 | |||
16 | == Backwards Compatibility Changes == |
|
16 | == Backwards Compatibility Changes == | |
17 |
|
17 | |||
|
18 | The remotefilelog extension now requires an appropiate excludepattern | |||
|
19 | for subrepositories. | |||
18 |
|
20 | |||
19 | == Internal API Changes == |
|
21 | == Internal API Changes == | |
20 |
|
22 |
General Comments 0
You need to be logged in to leave comments.
Login now