Mercurial > hg
graph
-
journal: show that we do not track deletionFri, 21 Jul 2023 15:28:52 +0200, by Pierre-Yves David
-
contrib: upgrade merge-lists from clap v3 to clap v4Fri, 21 Jul 2023 09:22:18 -0700, by Martin von Zweigbergk
-
compat: use cp -R in `test-revlog-delta-find.t` (issue6835) stableWed, 19 Jul 2023 21:45:39 +0200, by Pierre-Yves David
-
compat: use cp -R in `test-bundle-phase-internal.t` (issue6835) stableWed, 19 Jul 2023 17:42:33 +0200, by Pierre-Yves David
-
infinitepush: drop the extensionFri, 21 Jul 2023 03:56:28 +0200, by Pierre-Yves David
-
perf: display all timing by defaultFri, 23 Jun 2023 13:27:09 +0200, by Pierre-Yves David
-
wrapfunction: deprecated calling "wrapfunction" with bytesMon, 10 Jul 2023 10:53:12 +0200, by Pierre-Yves David
-
wrapfunction: deprecates calling `wrappedfunction` with bytesMon, 10 Jul 2023 15:39:19 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in various testsMon, 10 Jul 2023 19:34:04 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "exthelper"Mon, 10 Jul 2023 19:33:14 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "sqlitestore"Mon, 10 Jul 2023 15:38:53 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "share"Mon, 10 Jul 2023 19:32:17 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "perf"Mon, 10 Jul 2023 19:31:26 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "zeroconf"Fri, 03 Feb 2023 04:30:44 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "sqlitestore"Fri, 03 Feb 2023 04:27:17 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "sparse"Fri, 03 Feb 2023 04:26:18 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "schemes"Fri, 03 Feb 2023 04:25:57 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "remotenames"Fri, 03 Feb 2023 04:25:43 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "remotefilelog"Fri, 03 Feb 2023 04:25:07 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "pager"Fri, 03 Feb 2023 04:24:53 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "narrow"Fri, 03 Feb 2023 04:24:40 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "lfs"Fri, 03 Feb 2023 04:23:12 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "largefiles"Fri, 03 Feb 2023 04:22:41 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "keyword"Fri, 03 Feb 2023 04:22:28 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "journal"Fri, 03 Feb 2023 04:22:15 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "infinitepush"Fri, 03 Feb 2023 04:21:55 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "histedit"Fri, 03 Feb 2023 04:21:32 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "highlight"Fri, 03 Feb 2023 04:20:58 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in the "git" extensionMon, 10 Jul 2023 16:47:25 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "fsmonitor"Fri, 03 Feb 2023 04:19:06 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "fastannotate"Mon, 10 Jul 2023 16:12:33 +0200, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "clonebundles"Fri, 03 Feb 2023 04:10:22 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "bookflow"Fri, 03 Feb 2023 04:10:00 +0100, by Pierre-Yves David
-
wrapfunction: use sysstr instead of bytes as argument in "beautifygraph"Fri, 03 Feb 2023 04:09:49 +0100, by Pierre-Yves David
-
byteify-strings: passe sysstr to attr function and wrapperMon, 10 Jul 2023 15:59:04 +0200, by Pierre-Yves David
-
repoview: fix the filter created by `extrafilter` stableWed, 12 Jul 2023 12:47:08 +0200, by Pierre-Yves David
-
repoview: show `extrafilter` misbehave when other filtering is in play stableWed, 12 Jul 2023 12:46:58 +0200, by Pierre-Yves David
-
rust-config: add docstring to inner `get_parse` methodWed, 12 Jul 2023 10:59:19 +0200, by Raphaël Gomès
-
rust-config: add devel warning when using undeclared config itemsThu, 06 Jul 2023 11:44:30 +0200, by Raphaël Gomès
-
rhg: use default configitem in `cat`Thu, 06 Jul 2023 12:17:20 +0200, by Raphaël Gomès
-
rhg: add config defaults to configitems.tomlThu, 06 Jul 2023 11:47:41 +0200, by Raphaël Gomès
-
rust-blackbox: use `is_extension_enabled` config helperThu, 06 Jul 2023 11:17:55 +0200, by Raphaël Gomès
-
configitems: move blackbox's config items to the new configitems.tomlWed, 05 Jul 2023 23:59:22 +0200, by Raphaël Gomès
-
rust-config: add config getters that don't fall back to defaultsMon, 13 Feb 2023 18:11:48 +0100, by Raphaël Gomès
-
rust-config: add support for default config itemsThu, 06 Jul 2023 14:32:07 +0200, by Raphaël Gomès
-
configitems: declare items in a TOML fileMon, 23 Jan 2023 18:08:11 +0100, by Raphaël Gomès
-
thirdparty: vendor tomliMon, 23 Jan 2023 17:11:42 +0100, by Raphaël Gomès
-
configitems: add `documentation` fieldMon, 23 Jan 2023 18:52:05 +0100, by Raphaël Gomès
-
configitems: use standard "dynamicdefault" approach in edge caseMon, 23 Jan 2023 17:21:14 +0100, by Raphaël Gomès
-
configitems: fix typo in devel warning about extension overridesTue, 17 Jan 2023 14:53:18 +0100, by Raphaël Gomès
-
extensions: imp module is removed in Python 3.12 - use importlib to load files stableWed, 28 Jun 2023 14:23:13 +0200, by Mads Kiilerich
-
utils: imp module is removed in Python 3.12 - get is_frozen() from _imp stableTue, 27 Jun 2023 13:05:03 +0200, by Mads Kiilerich
-
extensions: address ast deprecations introduced in Python 3.12 stableTue, 27 Jun 2023 22:31:44 +0200, by Mads Kiilerich
-
vfs: handle shutil.rmtree deprecation of onerror in Python 3.12 stableTue, 27 Jun 2023 08:39:12 +0200, by Mads Kiilerich
-
tests: fix sortdict doctest with Python 3.12 stableTue, 27 Jun 2023 10:09:11 +0200, by Mads Kiilerich
-
utils: stop using datetime.utcfromtimestamp() deprecated in Python 3.12 stableTue, 27 Jun 2023 13:51:50 +0200, by Mads Kiilerich
-
branching: merge stable into defaultThu, 06 Jul 2023 16:07:34 +0200, by Raphaël Gomès
-
rust-changelog: removed now useless early conditional for NULL_REVISION stableThu, 06 Jul 2023 11:58:24 +0200, by Georges Racinet
-
rust-revlog: fix RevlogEntry.data() for NULL_REVISION stableThu, 06 Jul 2023 11:53:40 +0200, by Georges Racinet
-
rust-revlog: fix incorrect results with NULL_NODE prefixes stableThu, 30 Mar 2023 11:34:30 +0200, by Georges Racinet
-
rust-revlog: split out method for `rev_from_node` without persistent nodemap stableThu, 30 Mar 2023 10:29:29 +0200, by Georges Racinet
-
win32mbcs: unbyteify some strings for py3 support stableThu, 08 Jun 2023 00:03:54 -0400, by Matt Harbison
-
heptapod-ci: turn off pipelines for merge request events stableTue, 04 Jul 2023 12:30:31 +0200, by Raphaël Gomès
-
heptapod-ci: always make the default run condition explicit stableTue, 04 Jul 2023 12:23:05 +0200, by Raphaël Gomès
-
heptapod-ci: remove push exception for named branches stableTue, 04 Jul 2023 12:21:45 +0200, by Raphaël Gomès
-
heptapod-ci: (hopefully) fix the pipeline savings system stableMon, 03 Jul 2023 15:28:17 +0200, by Raphaël Gomès
-
heptapod-ci: don't run pipelines for topic-less branches stableMon, 03 Jul 2023 11:02:36 +0200, by Raphaël Gomès
-
clonebundles: add warning if auto-generate is enabled without formats stableTue, 27 Jun 2023 16:19:42 +0200, by Mathias De Mare
-
clonebundles: fix display of auto-generate.on-change lines stableTue, 27 Jun 2023 15:34:24 +0200, by Mathias De Mare
-
hgweb: drop references to deprecated cgitb stableMon, 26 Jun 2023 18:00:28 +0200, by Mads Kiilerich
-
setup: fall back to setuptools setup if distutils isn't available stableTue, 27 Jun 2023 12:09:17 +0200, by Mads Kiilerich
-
tests: use simple mock smtp server instead of deprecated asyncore smtpd stableThu, 23 Mar 2023 16:45:12 +0100, by Mads Kiilerich
-
tests: improve test-patchbomb-tls.t by by logging errors and data stableMon, 26 Jun 2023 15:51:39 +0200, by Mads Kiilerich
-
tests: show test-patchbomb-tls.t smtp server log stableThu, 23 Mar 2023 16:48:44 +0100, by Mads Kiilerich
-
demandimport: don't delay _distutils_hack import stableWed, 28 Jun 2023 01:31:10 +0200, by Mads Kiilerich
-
tests: update test-remotefilelog-gc.t for Python 3.11 stableWed, 22 Mar 2023 16:05:59 +0100, by Mads Kiilerich
-
tests: use grep -F instead of obsolescent fgrep stableMon, 26 Jun 2023 14:54:00 +0200, by Mads Kiilerich
-
tests: use grep -E instead of obsolescent egrep stableMon, 26 Jun 2023 14:34:58 +0200, by Mads Kiilerich
-
dirstate: avoid leaking disk space in `hg debugrebuilddirstate` stableMon, 26 Jun 2023 11:15:30 +0100, by Arseniy Alekseyev
-
dirstate-v2: actually fix the dirstate-v2 upgrade race stableMon, 26 Jun 2023 11:21:43 +0100, by Arseniy Alekseyev
-
Added tag 6.5rc0 for changeset bb42988c7e15 stableThu, 22 Jun 2023 14:24:21 +0200, by Raphaël Gomès
-
branching: merge default into stable for 6.5rc0 stableThu, 22 Jun 2023 11:36:37 +0200, by Raphaël Gomès
-
branching: merge stable into defaultThu, 22 Jun 2023 11:28:17 +0200, by Raphaël Gomès
-
narrow: indicated the default of 'Yes' when confirming auto-remove-includesWed, 21 Jun 2023 14:00:50 -0400, by Jason R. Coombs
-
clone-bundles: check we generate a valid specificationWed, 21 Jun 2023 15:55:07 +0200, by Pierre-Yves David
-
bundle-spec: add an official method to format a spec into a stringWed, 21 Jun 2023 15:53:33 +0200, by Pierre-Yves David
-
clonebundles: adds a auto-generate.serve-inline optionMon, 19 Jun 2023 18:15:35 +0200, by Pierre-Yves David
-
clone-bundle: only add the REQUIRESNI bit for http(s)Mon, 19 Jun 2023 18:15:27 +0200, by Pierre-Yves David
-
stream-clone: add a stream-v3 variant of test-persistent-nodemap.tTue, 23 May 2023 10:24:57 +0200, by Pierre-Yves David
-
stream-clone: split the stream part out of test-persistent-nodemap.tTue, 23 May 2023 10:18:01 +0200, by Pierre-Yves David
-
stream-clone: explicitly split debug test output for application per versionTue, 23 May 2023 03:09:46 +0200, by Pierre-Yves David
-
stream-clone: add a v3 version of the protocolThu, 01 Jun 2023 17:39:22 +0100, by Arseniy Alekseyev
-
stream-clone: fix the help for an argument of perf::stream-locked-sectionThu, 01 Jun 2023 18:20:28 +0100, by Pierre-Yves David
-
infinitepush: aggressively deprecated infinite pushTue, 20 Jun 2023 02:35:30 +0200, by pierre-yves david
-
clone-bundle: double check that inline clone bundle does not break local caseMon, 19 Jun 2023 16:13:16 +0200, by Pierre-Yves David
-
clone-bundle: drop the now unused `inlineclonebundles` capabilitiesMon, 19 Jun 2023 15:48:03 +0200, by Pierre-Yves David
-
clonebundles: introduce a new write protocol commandMon, 19 Jun 2023 15:49:35 +0200, by Pierre-Yves David
-
clone-bundles: reorder some test section and add titlesMon, 19 Jun 2023 11:28:45 +0200, by Pierre-Yves David
-
clone-bundle: rename the methods and wireprotole commandMon, 19 Jun 2023 11:04:27 +0200, by Pierre-Yves David
-
delta-find: remove dead code intended to deal with forced delta reuseSun, 18 Jun 2023 00:04:53 +0200, by Pierre-Yves David
-
library: incorporate demandimport into runpy invocationThu, 20 Apr 2023 15:56:58 -0400, by Jason R. Coombs
-
library: enable runpy invocation on mercurial packageMon, 17 Apr 2023 09:38:52 -0400, by Jason R. Coombs
-
match: add `filepath:` pattern to match an exact filepath relative to the rootMon, 12 Jun 2023 16:51:08 +0200, by Raphaël Gomès
-
path: use the next `display` argument to deal with boolean stableSat, 17 Jun 2023 23:47:31 +0200, by Pierre-Yves David
-
path: display proper user facing value for pulled-delta-reuse-policy stableThu, 15 Jun 2023 09:51:29 +0200, by Pierre-Yves David
-
paths: add an argument to format the suboption display stableThu, 15 Jun 2023 09:50:46 +0200, by Pierre-Yves David
-
ui: fix crash in `hg paths` when pulled-delta-reuse-policy is in use stableFri, 09 Jun 2023 14:32:09 +0100, by Arseniy Alekseyev
-
ui: add a test demonstrating a crash in `hg paths` stableFri, 09 Jun 2023 14:31:40 +0100, by Arseniy Alekseyev
-
re2: fix reporting of availability in `hg debuginstall` stableSat, 17 Jun 2023 04:05:53 +0200, by Pierre-Yves David
-
re2: exit `_checkre2` early if calling it is useless stableSat, 17 Jun 2023 04:02:25 +0200, by Pierre-Yves David
-
branching: merge with stableSun, 18 Jun 2023 00:09:39 +0200, by Pierre-Yves David
-
backout: remove db9b6ce803a9Tue, 20 Jun 2023 02:36:52 +0200, by Pierre-Yves David
-
infinitepush: aggressively deprecated infinite pushMon, 19 Jun 2023 23:27:18 +0200, by pierre-yves david
-
rust-dependencies: switch from `users` to `whoami`Tue, 13 Jun 2023 14:35:36 +0200, by Raphaël Gomès
-
rust-hg-core: move from `ouroboros` to `self_cell`Mon, 12 Jun 2023 23:41:28 +0200, by Raphaël Gomès
-
debug-revlog-stats: make it use the new store entry APIFri, 02 Jun 2023 15:12:05 +0200, by Pierre-Yves David
-
store: use the revlog type from revlog's constant instead of custom oneFri, 02 Jun 2023 15:10:50 +0200, by Pierre-Yves David
-
repair: use `is_manifestlog` to recognise manifest revlogMon, 12 Jun 2023 23:24:41 +0200, by Pierre-Yves David
-
perf: add a perf::stream-consumeTue, 06 Jun 2023 04:56:54 +0200, by Pierre-Yves David
-
perf: add a perf::stream-generate commandTue, 06 Jun 2023 04:09:05 +0200, by Pierre-Yves David
-
perf: add a new "context" argument to timerMon, 12 Jun 2023 18:04:09 +0200, by Pierre-Yves David
-
perf: add support for stream-v3 during benchmarkTue, 06 Jun 2023 01:48:10 +0200, by Pierre-Yves David
-
perf: add a function to find a stream version generatorTue, 06 Jun 2023 01:43:48 +0200, by Pierre-Yves David
-
treemanifest: make `updatecaches` update the nodemaps for all directoriesThu, 18 May 2023 19:23:59 +0100, by Arseniy Alekseyev
-
stream-clone: avoid opening a revlog in case we do not need itWed, 31 May 2023 10:37:55 +0100, by Arseniy Alekseyev
-
store: stop relying on a `revlog_type` propertyTue, 30 May 2023 17:43:59 +0100, by Pierre-Yves David
-
store: directly pass the filesize in the `details` of revlogTue, 30 May 2023 16:38:13 +0100, by Pierre-Yves David
-
store: explicitly pass file_size when creating StoreFileTue, 30 May 2023 16:35:10 +0100, by Pierre-Yves David
-
store: have the revlog determine which files are volatile itselfTue, 30 May 2023 16:33:28 +0100, by Pierre-Yves David
-
test-dirstate-version-fallback: future-proof the test for a different default stableMon, 12 Jun 2023 10:50:00 +0200, by Raphaël Gomès
-
clonebundles: add support for inline (streaming) clonebundlesWed, 08 Mar 2023 14:23:43 +0100, by Mathias De Mare
-
revlog: avoid possible collision between directory and temporary index stableThu, 08 Jun 2023 14:28:21 +0200, by Pierre-Yves David
-
revlog: move the computation of the split_index path in a property stableThu, 08 Jun 2023 11:08:19 +0200, by Pierre-Yves David
-
rust-dirstate: fall back to v1 if reading v2 failed stableMon, 05 Jun 2023 16:43:27 +0200, by Raphaël Gomès
-
dirstate: add test showing dirstate version mismatch causes an error stableMon, 05 Jun 2023 17:29:52 +0200, by Raphaël Gomès
-
rust-dirstate: rename `has_dirstate_v2` to `use_dirstate_v2` stableMon, 05 Jun 2023 16:30:25 +0200, by Raphaël Gomès
-
delta-find: fix pulled-delta-reuse-policy=forced behavior stableMon, 05 Jun 2023 03:11:26 +0200, by Pierre-Yves David
-
delta-find: display more information about the search in some case stableThu, 08 Jun 2023 03:49:44 +0200, by Pierre-Yves David
-
deltafind: issue debug information when we fast-path rivial case too stableThu, 08 Jun 2023 03:05:10 +0200, by Pierre-Yves David
-
delta-find: gather the condition to blindly use a full snapshot together stableThu, 08 Jun 2023 03:11:51 +0200, by Pierre-Yves David
-
delta-find: initialize the debug information much sooner (when possible) stableThu, 08 Jun 2023 02:49:10 +0200, by Pierre-Yves David
-
delta-find: fix `parents` round detection stableThu, 08 Jun 2023 02:42:28 +0200, by Pierre-Yves David
-
delta-find: intrduce a `_one_dbg_data` method stableThu, 08 Jun 2023 02:35:03 +0200, by Pierre-Yves David
-
delta-find: move final debug processing in a `_dbg_process_data` method stableThu, 08 Jun 2023 01:52:35 +0200, by Pierre-Yves David
-
delta-fine: use the `_debug_search` attribute directly stableThu, 08 Jun 2023 01:19:01 +0200, by Pierre-Yves David
-
delta-find: move the `gather_debug` logic in a property stableThu, 08 Jun 2023 01:11:47 +0200, by Pierre-Yves David
-
tests: check `pulled-delta-reuse-policy=forced` without general delta stableThu, 08 Jun 2023 01:07:00 +0200, by Pierre-Yves David
-
tree-manifest: allow `debugupgraderepo` to run on tree manifest repoWed, 31 May 2023 18:08:56 +0100, by Pierre-Yves David
-
bundles: clarify streaming v2 bundle usage stableTue, 25 Apr 2023 15:28:40 +0200, by Mathias De Mare
-
stream-clone: update debugcreatestreamclonebundle helpsWed, 31 May 2023 16:04:16 +0100, by Pierre-Yves David
-
rewrite: simplify the `retained_extras` extra logicThu, 25 May 2023 00:23:05 +0200, by Pierre-Yves David
-
stream-clone: smoothly detect and handle a case were a revlog is splitMon, 29 May 2023 18:41:58 +0200, by Pierre-Yves David
-
stream-clone: implement decidated `get_streams` method for revlogMon, 29 May 2023 14:07:58 +0200, by Pierre-Yves David
-
stream-clone: make it the responsability of the store entry to stream contentSun, 28 May 2023 05:52:58 +0200, by Pierre-Yves David
-
store: declare a `files` method on BaseStoreEntryMon, 29 May 2023 11:42:16 +0200, by Pierre-Yves David
-
revlog: add a `get_revlog` methodSun, 28 May 2023 05:23:46 +0200, by Pierre-Yves David
-
stream-clone: drop the _emit_v2 functionMon, 29 May 2023 04:26:39 +0200, by Pierre-Yves David
-
stream-clone: directly use `_entries_walk` to generate stream-v2Mon, 29 May 2023 04:24:39 +0200, by Pierre-Yves David
-
stream-clone: pre-indent some codeMon, 29 May 2023 04:12:30 +0200, by Pierre-Yves David
-
local-clone: perform the hardlink/copy based from _entries_walk returnsSun, 28 May 2023 04:12:10 +0200, by Pierre-Yves David
-
store: cache the file_size when we get it from diskMon, 29 May 2023 04:24:29 +0200, by Pierre-Yves David
-
store: cache the `files()` return for store entriesSun, 28 May 2023 03:46:48 +0200, by Pierre-Yves David
-
stream-clone: introduce a richer TempCopyManager objectSat, 27 May 2023 04:22:18 +0200, by Pierre-Yves David
-
store: properly compute the targer_id of manifestlog in no-fncache walkMon, 29 May 2023 13:29:01 +0200, by Pierre-Yves David
-
store: do not drop the final `/` when creating manifestlog instanceMon, 29 May 2023 13:28:33 +0200, by Pierre-Yves David
-
store: add a `get_revlog_instance` method on revlog entriesSat, 27 May 2023 04:01:17 +0200, by Pierre-Yves David
-
stream-clone: add a test that highlight crash on revlog splittingMon, 29 May 2023 02:22:20 +0200, by Pierre-Yves David
-
stream-clone: remove unused code in test-clone-stream.tMon, 29 May 2023 01:38:59 +0200, by Pierre-Yves David
-
stream-clone: document the ext-stream-clone-steps.py utility extensionMon, 29 May 2023 01:38:34 +0200, by Pierre-Yves David
-
test-treemanifest: cleanup the test to more easily show server side errorMon, 29 May 2023 12:15:10 +0200, by Pierre-Yves David
-
test: make test-contrib-perf.t more robust stableThu, 01 Jun 2023 22:32:21 +0100, by Pierre-Yves David
-
safehasattr: pass attribute name as string instead of bytesThu, 02 Feb 2023 17:26:10 +0100, by Pierre-Yves David
-
safehasattr: pass attribute name as string instead of bytesThu, 02 Feb 2023 17:37:51 +0100, by Pierre-Yves David
-
safehasattr: pass attribute name as string instead of bytesFri, 03 Feb 2023 02:57:49 +0100, by Pierre-Yves David
-
safehasattr: pass attribute name as string instead of bytesFri, 03 Feb 2023 01:05:41 +0100, by Pierre-Yves David
-
safehasattr: pass attribute name as string instead of bytesFri, 03 Feb 2023 01:04:22 +0100, by Pierre-Yves David
-
safehasattr: pass attribute name as string instead of bytesFri, 03 Feb 2023 01:03:45 +0100, by Pierre-Yves David