Show More
@@ -1313,7 +1313,8 class pulloperation(object): | |||
|
1313 | 1313 | """ |
|
1314 | 1314 | |
|
1315 | 1315 | def __init__(self, repo, remote, heads=None, force=False, bookmarks=(), |
|
1316 |
remotebookmarks=None, streamclonerequested=None |
|
|
1316 | remotebookmarks=None, streamclonerequested=None, | |
|
1317 | includepats=None, excludepats=None): | |
|
1317 | 1318 | # repo we pull into |
|
1318 | 1319 | self.repo = repo |
|
1319 | 1320 | # repo we pull from |
@@ -1343,6 +1344,10 class pulloperation(object): | |||
|
1343 | 1344 | self.stepsdone = set() |
|
1344 | 1345 | # Whether we attempted a clone from pre-generated bundles. |
|
1345 | 1346 | self.clonebundleattempted = False |
|
1347 | # Set of file patterns to include. | |
|
1348 | self.includepats = includepats | |
|
1349 | # Set of file patterns to exclude. | |
|
1350 | self.excludepats = excludepats | |
|
1346 | 1351 | |
|
1347 | 1352 | @util.propertycache |
|
1348 | 1353 | def pulledsubset(self): |
@@ -1447,7 +1452,7 def _fullpullbundle2(repo, pullop): | |||
|
1447 | 1452 | pullop.rheads = set(pullop.rheads) - pullop.common |
|
1448 | 1453 | |
|
1449 | 1454 | def pull(repo, remote, heads=None, force=False, bookmarks=(), opargs=None, |
|
1450 | streamclonerequested=None): | |
|
1455 | streamclonerequested=None, includepats=None, excludepats=None): | |
|
1451 | 1456 | """Fetch repository data from a remote. |
|
1452 | 1457 | |
|
1453 | 1458 | This is the main function used to retrieve data from a remote repository. |
@@ -1465,13 +1470,29 def pull(repo, remote, heads=None, force | |||
|
1465 | 1470 | of revlogs from the server. This only works when the local repository is |
|
1466 | 1471 | empty. The default value of ``None`` means to respect the server |
|
1467 | 1472 | configuration for preferring stream clones. |
|
1473 | ``includepats`` and ``excludepats`` define explicit file patterns to | |
|
1474 | include and exclude in storage, respectively. If not defined, narrow | |
|
1475 | patterns from the repo instance are used, if available. | |
|
1468 | 1476 | |
|
1469 | 1477 | Returns the ``pulloperation`` created for this pull. |
|
1470 | 1478 | """ |
|
1471 | 1479 | if opargs is None: |
|
1472 | 1480 | opargs = {} |
|
1481 | ||
|
1482 | # We allow the narrow patterns to be passed in explicitly to provide more | |
|
1483 | # flexibility for API consumers. | |
|
1484 | if includepats or excludepats: | |
|
1485 | includepats = includepats or set() | |
|
1486 | excludepats = excludepats or set() | |
|
1487 | else: | |
|
1488 | includepats, excludepats = repo.narrowpats | |
|
1489 | ||
|
1490 | narrowspec.validatepatterns(includepats) | |
|
1491 | narrowspec.validatepatterns(excludepats) | |
|
1492 | ||
|
1473 | 1493 | pullop = pulloperation(repo, remote, heads, force, bookmarks=bookmarks, |
|
1474 | 1494 | streamclonerequested=streamclonerequested, |
|
1495 | includepats=includepats, excludepats=excludepats, | |
|
1475 | 1496 | **pycompat.strkwargs(opargs)) |
|
1476 | 1497 | |
|
1477 | 1498 | peerlocal = pullop.remote.local() |
@@ -749,7 +749,9 def clone(ui, peeropts, source, dest=Non | |||
|
749 | 749 | overrides = {('ui', 'quietbookmarkmove'): True} |
|
750 | 750 | with local.ui.configoverride(overrides, 'clone'): |
|
751 | 751 | exchange.pull(local, srcpeer, revs, |
|
752 |
streamclonerequested=stream |
|
|
752 | streamclonerequested=stream, | |
|
753 | includepats=storeincludepats, | |
|
754 | excludepats=storeexcludepats) | |
|
753 | 755 | elif srcrepo: |
|
754 | 756 | # TODO lift restriction once exchange.push() accepts narrow |
|
755 | 757 | # push. |
General Comments 0
You need to be logged in to leave comments.
Login now