Mercurial > hg
annotate contrib/examples/fix.hgrc @ 47123:d8ac62374943
dirstate-tree: Make `DirstateMap` borrow from a bytes buffer
… that has the contents of the `.hg/dirstate` file.
This only applies to the tree-based flavor of `DirstateMap`.
For now only the entire `&[u8]` slice is stored, so this is not useful yet.
Adding a lifetime parameter to the `DirstateMap` struct (in hg-core) makes
Python bindings non-trivial because we keep that struct in a Python object
that has a dynamic lifetime tied to Python’s reference-counting and GC.
As long as we keep the `PyBytes` that owns the borrowed bytes buffer next to
the borrowing struct, the buffer will live long enough for the borrows to stay
valid. However this relationship cannot be expressed in safe Rust code in a
way that would statisfy they borrow-checker. We use `unsafe` code to erase
that lifetime parameter, and encapsulate it in a safe abstraction similar to
the owning-ref crate: https://docs.rs/owning_ref/
Differential Revision: https://phab.mercurial-scm.org/D10557
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Fri, 30 Apr 2021 18:24:54 +0200 |
parents | 3d32b9759047 |
children |
rev | line source |
---|---|
42965
5dfb57af1148
contrib: add new examples area and start it out with a config for `hg fix`
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 [fix] |
44008
ac72e17457e5
fix: correct the clang-format example hgrc so that it actually works
Kyle Lippincott <spectral@google.com>
parents:
43921
diff
changeset
|
2 clang-format:command = clang-format --style file |
ac72e17457e5
fix: correct the clang-format example hgrc so that it actually works
Kyle Lippincott <spectral@google.com>
parents:
43921
diff
changeset
|
3 clang-format:pattern = set:(**.c or **.cc or **.h) and not "include:contrib/clang-format-ignorelist" |
42966
f5ad85dd5f7e
examples: add sample fix integration for `rustfmt`
Augie Fackler <augie@google.com>
parents:
42965
diff
changeset
|
4 |
44103
2077ffede71f
examples: refer to nightly rustfmt in Windows-compatible way
Martin von Zweigbergk <martinvonz@google.com>
parents:
44069
diff
changeset
|
5 rustfmt:command = rustfmt +nightly |
45620
426294d06ddc
rust: move rustfmt.toml to repo root so it can be used by `hg fix`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44147
diff
changeset
|
6 rustfmt:pattern = set:"**.rs" - "mercurial/thirdparty/**" |
43065
31c1a5376745
examples: include a sample of how to use black with fix
Augie Fackler <augie@google.com>
parents:
42966
diff
changeset
|
7 |
46893
3d32b9759047
contrib: restore the `hg fix` configuration in the examples
Matt Harbison <matt_harbison@yahoo.com>
parents:
46774
diff
changeset
|
8 black:command = black --config=pyproject.toml - |
44147
5e84a96d865b
python-zstandard: blacken at 80 characters
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44103
diff
changeset
|
9 black:pattern = set:**.py - mercurial/thirdparty/** |
43921
b78795c2a294
examples: add an example configuration for go source files
Augie Fackler <augie@google.com>
parents:
43502
diff
changeset
|
10 |
b78795c2a294
examples: add an example configuration for go source files
Augie Fackler <augie@google.com>
parents:
43502
diff
changeset
|
11 # Mercurial doesn't have any Go code, but if we did this is how we |
b78795c2a294
examples: add an example configuration for go source files
Augie Fackler <augie@google.com>
parents:
43502
diff
changeset
|
12 # would configure `hg fix` for Go: |
b78795c2a294
examples: add an example configuration for go source files
Augie Fackler <augie@google.com>
parents:
43502
diff
changeset
|
13 go:command = gofmt |
b78795c2a294
examples: add an example configuration for go source files
Augie Fackler <augie@google.com>
parents:
43502
diff
changeset
|
14 go:pattern = set:**.go |