Mercurial > hg
annotate mercurial/cacheutil.py @ 44805:02bf61bb4a70
copy: to find copy source, walk parent of revision we're marking copies in
As shown in the previous patch, `hg cp --after --at-rev . src dst`
fails if `src` is not in `.`. It seems obvious that you should always
walk the *parent* of the revision you're marking copies in, but that's
not how it was done for the working copy, and I didn't think to change
it when marking copies in a non-working-copy commit.
This patch fixes that by walking the parent commit instead, but only
if we're marking copies for a non-working-copy commit. We need to
leave the working-copy code unchanged because it depends on the weird
behavior of `workingctx.walk()`. With these changes, there's very
little overlap between the working-copy version and the
non-working-copy version of `walkpats()`, but I've refrained from
cleaning that up on the stable branch.
Differential Revision: https://phab.mercurial-scm.org/D8494
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 06 May 2020 10:33:56 -0700 |
parents | 687b865b95ad |
children | d4ba4d51f85f |
rev | line source |
---|---|
35766
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
1 # scmutil.py - Mercurial core utility functions |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
2 # |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
3 # Copyright Matt Mackall <mpm@selenic.com> and other |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
4 # |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
7 from __future__ import absolute_import |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
8 |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
9 from . import repoview |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
10 |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
35766
diff
changeset
|
11 |
35766
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
12 def cachetocopy(srcrepo): |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
13 """return the list of cache file valuable to copy during a clone""" |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
14 # In local clones we're copying all nodes, not just served |
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
15 # ones. Therefore copy all branch caches over. |
43077
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
16 cachefiles = [b'branch2'] |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
17 cachefiles += [b'branch2-%s' % f for f in repoview.filtertable] |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
18 cachefiles += [b'rbc-names-v1', b'rbc-revs-v1'] |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
19 cachefiles += [b'tags2'] |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
20 cachefiles += [b'tags2-%s' % f for f in repoview.filtertable] |
687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Augie Fackler <augie@google.com>
parents:
43075
diff
changeset
|
21 cachefiles += [b'hgtagsfnodes1'] |
35766
72fdd99eb526
caches: make 'cachetocopy' available in scmutil
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
22 return cachefiles |