##// END OF EJS Templates
rust-pyo3: simplified API to get core Index references...
rust-pyo3: simplified API to get core Index references Given the amount of conversion and arcane internal detail, it is easier for the caller and makes a better separation of concerns to just introduce a new unsafe helper. It is actually possible that it would be safe, and we can decide about that later. Actually the reason given in the `cpython` crate for unsafety of the `try_borrow()` method is the following: ``` // try_borrow() and try_borrow_mut() are unsafe because self.data may // have a function returning the inner &'static reference. // If T is &'static U, its lifetime can be easily coerced to &'a U, but // how could we do that for Whatever<'static> in general? ``` Given that we coerce the Index reference to the GIL lifetime and that it is unlikely that the inner data would contain a function returning the a `'static` reference, it is possible that it is actually even safe.

File last commit:

r52858:145f66ea default
r53311:23370710 default
Show More
cacheutil.py
25 lines | 931 B | text/x-python | PythonLexer
Boris Feld
caches: make 'cachetocopy' available in scmutil...
r35784 # scmutil.py - Mercurial core utility functions
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright Olivia Mackall <olivia@selenic.com> and other
Boris Feld
caches: make 'cachetocopy' available in scmutil...
r35784 #
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
Matt Harbison
typing: add `from __future__ import annotations` to most files...
r52756 from __future__ import annotations
Boris Feld
caches: make 'cachetocopy' available in scmutil...
r35784 from . import repoview
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345
Boris Feld
caches: make 'cachetocopy' available in scmutil...
r35784 def cachetocopy(srcrepo):
"""return the list of cache file valuable to copy during a clone"""
# In local clones we're copying all nodes, not just served
# ones. Therefore copy all branch caches over.
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 cachefiles = [b'branch2']
cachefiles += [b'branch2-%s' % f for f in repoview.filtertable]
branchmap: use the proper experimental name in cacheutil...
r52858 cachefiles += [b'branch3-exp']
cachefiles += [b'branch3-exp-%s' % f for f in repoview.filtertable]
rev-branch-cache: increment the version to "v2"...
r52799 cachefiles += [b'rbc-names-v2', b'rbc-revs-v2']
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 cachefiles += [b'tags2']
cachefiles += [b'tags2-%s' % f for f in repoview.filtertable]
cachefiles += [b'hgtagsfnodes1']
Boris Feld
caches: make 'cachetocopy' available in scmutil...
r35784 return cachefiles