Fixing warning + formatting

pmeunier
Nov 30, 2025, 1:51 PM
QPVP5D7LLFO5GJ7ULHFNQRG3HSZ5V65WMHS7YFTDGDFD7ZJQ2ENQC

Dependencies

  • [2] VYAJZ7DE Don't open an editor in `pijul tag create` when `-m` is set
  • [3] KCGMOAKS split by both path delimiters on windows
  • [4] NACNZRJE xxHash in oldshell.nix
  • [5] DGHQ46S3 Refactor `pijul_interaction::progress` to use `InteractionContext`
  • [6] AAAMZY4V Updating `pijul git` with the latest Sanakirja
  • [7] HKHMES6T Solving conflicts
  • [8] 5IABX6JG Fix deprecation warning for from_utc
  • [9] JJQQWDC3 Version bump
  • [10] DDJO7X2P Remove dependency on `num_cpus`
  • [11] GHO6DWPI Refactoring iterators
  • [12] ABQDWHNG Migrate from `pijul::repository` to `pijul-repository`
  • [13] V4T4SC7O Testing binary diff
  • [14] BNUBRZT5 pijul beta.6
  • [15] BZSC7VMY address clippy lints
  • [16] FXEDPLRI Resurrecting tests, and type cleanup (no need for Arc<RwLock<…>> anymore)
  • [17] BNPSVXIC Friendlier progress bars
  • [18] 4RV7T4SR Migrate from `pijul::config` to `pijul-config`
  • [19] 6F6AAHK4 Simplifying pijul::commands::log, and fixing Broken Pipe errors
  • [20] KWAGWB73 Adding extra dependencies from the config file
  • [21] HWH4WWN3 Proper separation of Git commit messages into a message and description fields in changes
  • [22] 3S6LU2U5 abstract out FileMetadata (de)serialistion
  • [23] JL4WKA5P Implement the Sanakirja concurrency model in a cross-process way
  • [24] ZRUPLBBT Colours in diff and change: separating concerns and dependencies
  • [25] ZSF3YFZT encoded file deletion
  • [26] YX3VCEOM Version bump
  • [27] RPY5P6GW Update minimum chrono version
  • [28] FAOGX7G3 Outputting the repo after the last Git import
  • [29] LZOGKBJX new command `pijul client` for authenticating to a HTTP server
  • [30] QHVMHSGY oldshell.nix: use version 1.4.9 of ZStd because of major performance issues in 1.5
  • [31] TYAKEAJL A better estimate of the maximum number of open patches we can keep (Unix-only at the moment)
  • [32] HYRH4E55 rustfmt.toml: init
  • [33] UC5C5REV `pijul git`: two more fields in the benchmarks
  • [34] Q3UD2OLQ Fixing warning from chrono
  • [35] TTV4YIWF Correct path splitting on Windows
  • [36] EEBKW7VT Keys and identities
  • [37] 7ZROQSSN Handling TAG uploads from the `pijul protocol` command
  • [38] STG7MO5M Version bump
  • [39] USQMBKTP Replace deprecated chrono function
  • [40] FI3WFMTS Simplifying the locks
  • [41] 5BRU2RRW Cleanup (debugging a crash related to trees/inodes)
  • [42] 5RSZPNQR Upgrade `clap` 3.2 -> 4.3
  • [43] TEDGMEHF Introduce subcommand for completion-script generation.
  • [44] I52XSRUH Massive cleanup, and simplification
  • [45] YN63NUZO Sanakirja 1.0
  • [46] IACED7RW text_encoding module
  • [47] SPA2OL5I keep-changes feature (default) to avoid deleting problematic changes
  • [48] VKBJ6XB6 Formatting and version bump
  • [49] TPEH2XNB 1.0.0-alpha.28, with Tokio 1.0
  • [50] VO5OQW4W Removing anyhow in libpijul
  • [51] SZWBLWZ4 Reading ~/.ssh/config
  • [52] TGA6QXGI Initial support for binary diffs (conflicts are not yet supported in the output)
  • [53] QAXLX3UA Backwards-compatibility: moving old paths to the new "roots" feature
  • [54] VAPBIG46 Version bump
  • [55] RZ75BZCI Remove unused dependencies
  • [56] Y6TBQN7M Automatically format `pijul` crate
  • [57] WIORLB47 Version bump
  • [58] JRENVH5D Reqwest 0.11
  • [59] 5FI6SBEZ Re-implement change printing and parsing
  • [60] J2D66R2D Enable the pager dependency on OSX, fixes build
  • [61] 4EN4MDBQ Update identity dependencies
  • [62] LYTVEPH3 Avoid cloning into an existing path
  • [63] FDPGJDXV Compiling Thrussh with feature OpenSSL by default
  • [64] PBNQKKPE Fixing a conflict
  • [65] RR65HCKO Thrussh versions
  • [66] I24UEJQL Various post-fire fixes
  • [67] X243Z3Y5 Recording only the required metadata (can even be changed later!)
  • [68] TFPETWTV Add config options for patch message templates
  • [69] V435QOJR Using path-slash to fix path issues on Windows
  • [70] NEJOYVJB Fixing the Git feature
  • [71] GYXIF25T Proper parsing of URLs
  • [72] 5OGOE4VW Store the current channel in the pristine
  • [73] JEQCEOQD Adding a non-flake shell.nix
  • [74] QL6K2ZM3 Tags
  • [75] GUL4M5FI Cleanup and formatting
  • [76] 3QGE6HRD Version bump (upgrade to zstd-seekable 0.2, take 2)
  • [77] SN7AGY6S Making `pijul lock` robust to kill signals
  • [78] A3RM526Y Integrating identity malleability
  • [79] YDTN6BGI Touch the channel if no file was changed
  • [80] IIV3EL2X Cleanup, formatting, and fixing the Git feature
  • [81] 23LVKATN Use pager crate for log output
  • [82] Q45QHPO4 Feedback on network stuff
  • [83] M2C6QW2A Avoid serialising twice in order to save the changes' signatures
  • [84] L7V4GC4Y When iterating tree/revtree, also return whether an inode of the tree/revtree is a folder inode
  • [85] 2TWWWCU4 Fixing a warning related to an updated in `chrono`
  • [86] OJZWJUF2 MUCH faster `pijul add -r`
  • [87] X2MMGGXQ Removing dependencies with CVE (old version of Nix)
  • [88] C6SOSQCV Formatting
  • [89] UMF6N7CZ Keyring 2.0
  • [90] ZHABNS3S Canonicalize all paths
  • [91] WKX5S4Z4 remove unneccesary explicit lifetimes
  • [92] CVCT4WHH Version bump
  • [93] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [94] RVAH6PXA Getting libpijul to compile to WASM32
  • [95] HKA66XOQ Updating Thrussh version for long or massive connections
  • [96] YPMGKDPC Solving a conflict
  • [97] QWIYNMI5 Formatting + big-endian Sanakirja
  • [98] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [99] JUYSZJSH Migrate from `pijul::progress` to `pijul_interaction::progress`
  • [100] JMOHVR5E Bump edition to 2021
  • [101] OOJNAY34 allow LF or CRLF when parsing change headers
  • [102] DVBSW7SI Bump dependencies with minor-level changes
  • [103] RPZK3JQA Fixing a conflict
  • [104] 2K7JLB4Z No pager on Windows
  • [105] OIOMXESD Better error handling in HTTP

Change contents

  • replacement in rustfmt.toml at line 1
    [10.15][10.0:17]()
    edition = "2021"
    [10.15]
    edition = "2024"
  • replacement in pijul-interaction/src/progress/terminal.rs at line 38
    [5.1112][5.1112:1171]()
    fn boxed_clone(&self) -> Box<(dyn ProgressBarTrait)> {
    [5.1112]
    [5.1171]
    fn boxed_clone(&self) -> Box<dyn ProgressBarTrait> {
  • replacement in pijul/src/commands/tag.rs at line 290
    [10.5248][10.1141:1315]()
    chrono::DateTime::from_naive_utc_and_offset(
    chrono::NaiveDateTime::from_timestamp_opt(t, 0).unwrap(),
    chrono::Utc,
    )
    [10.5248]
    [7.50]
    chrono::DateTime::from_timestamp(t, 0).unwrap()
  • replacement in pijul/src/commands/tag.rs at line 299
    [2.163][2.163:222]()
    if let Ok(header) = toml::from_slice(&bytes) {
    [2.163]
    [2.222]
    if let Ok(header) = toml::from_str(&std::str::from_utf8(&bytes)?) {
  • replacement in pijul/src/commands/record.rs at line 176
    [10.208][7.217:298]()
    "signature": secret.sign_raw(&hash.to_bytes()).unwrap(),
    [10.208]
    [10.286]
    "signature": secret.sign_raw(&hash_bytes).unwrap(),
  • replacement in pijul/src/commands/record.rs at line 270
    [10.105980][10.128:189](),[10.189][10.103:232](),[10.103][10.103:232]()
    chrono::DateTime::from_naive_utc_and_offset(
    chrono::NaiveDateTime::from_timestamp_opt(t, 0).unwrap(),
    chrono::Utc,
    )
    [10.105980]
    [10.106081]
    chrono::DateTime::from_timestamp(t, 0).unwrap()
  • edit in pijul/src/commands/record.rs at line 393
    [10.107756]
    [10.14757]
    debug!("globalize done");
  • replacement in pijul/src/commands/record.rs at line 401
    [10.403][10.788:789](),[10.15015][10.788:789](),[10.12734][10.788:789]()
    [10.15015]
    [10.789]
    debug!("make change done");
  • replacement in pijul/src/commands/git.rs at line 766
    [10.1476][8.0:68](),[8.68][10.50:207](),[6.382][10.50:207](),[10.159043][10.50:207](),[10.207][10.159129:159173](),[10.751][10.159129:159173](),[10.159129][10.159129:159173]()
    timestamp: chrono::DateTime::from_naive_utc_and_offset(
    chrono::NaiveDateTime::from_timestamp_opt(signature.when().seconds(), 0)
    .expect("seconds and nanos are within bounds"),
    chrono::Utc,
    ),
    [10.1476]
    [10.159173]
    timestamp: chrono::DateTime::from_timestamp(signature.when().seconds(), 0).unwrap(),
  • replacement in pijul/Cargo.toml at line 58
    [10.197381][10.15:35]()
    human-panic = "1.1"
    [10.197381]
    [10.874]
    human-panic = "2.0"
  • replacement in pijul/Cargo.toml at line 70
    [10.197652][10.197652:197665]()
    toml = "0.5"
    [10.197652]
    [10.59]
    toml = "0.8"
  • replacement in pijul/Cargo.toml at line 72
    [10.146][10.146:163](),[10.163][10.107:129](),[10.107][10.107:129]()
    thrussh = "0.33"
    thrussh-keys = "0.21"
    [10.146]
    [10.1656]
    thrussh = "0.35.4"
    thrussh-keys = "0.22"
  • replacement in pijul/Cargo.toml at line 104
    [10.279][10.309:310](),[10.373][10.309:310](),[10.472][10.309:310](),[10.1035][10.309:310](),[10.1190][10.309:310](),[10.1355][10.309:310](),[10.1493][10.309:310](),[10.1650][10.309:310](),[10.1704][10.309:310](),[10.1960][10.309:310](),[10.2300][10.309:310](),[10.4207][10.309:310](),[10.4307][10.309:310](),[10.8496][10.309:310](),[10.14078][10.309:310](),[10.16957][10.309:310](),[10.2859][10.309:310]()
    [10.1650]
    [9.942]
    hex = { version = "0.4", optional = true }
  • replacement in oldshell.nix at line 1
    [10.37][10.38:64]()
    with import <nixpkgs> {};
    [10.37]
    [10.87]
    with import <nixpkgs> {
    overlays = map (uri: import (fetchTarball uri)) [
    https://github.com/oxalica/rust-overlay/archive/master.tar.gz
    ];
    };
  • edit in oldshell.nix at line 16
    [4.11]
    [10.195]
    (rust-bin.stable.latest.default.override {
    targets = [
    "x86_64-unknown-linux-gnu"
    "x86_64-pc-windows-msvc"
    ];
    })
    wine
  • edit in libpijul/src/text_encoding.rs at line 62
    [10.919]
    [10.919]
    impl<'de> Visitor<'de> for EncodingVisitor {
    type Value = Encoding;
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
    formatter.write_str("a string label meeting the encoding standard https://encoding.spec.whatwg.org/#concept-encoding-get")
    }
    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
    where
    E: serde::de::Error,
    {
    Ok(Encoding::for_label(v))
    }
    }
  • edit in libpijul/src/text_encoding.rs at line 83
    [10.1080][10.1080:1610]()
    impl<'de> Visitor<'de> for EncodingVisitor {
    type Value = Encoding;
    fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
    formatter.write_str("a string label meeting the encoding standard https://encoding.spec.whatwg.org/#concept-encoding-get")
    }
    fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
    where
    E: serde::de::Error,
    {
    Ok(Encoding::for_label(v))
    }
    }
  • replacement in libpijul/src/pristine/mod.rs at line 124
    [10.69025][10.101006:101075]()
    pub fn read(&self) -> parking_lot::RwLockReadGuard<T::Channel> {
    [10.69025]
    [10.101075]
    pub fn read<'a>(&'a self) -> parking_lot::RwLockReadGuard<'a, T::Channel> {
  • replacement in libpijul/src/pristine/mod.rs at line 127
    [10.69169][10.101098:101169]()
    pub fn write(&self) -> parking_lot::RwLockWriteGuard<T::Channel> {
    [10.69169]
    [10.101169]
    pub fn write<'a>(&'a self) -> parking_lot::RwLockWriteGuard<'a, T::Channel> {
  • replacement in libpijul/src/pristine/mod.rs at line 143
    [10.588200][10.101193:101256]()
    pub fn lock(&self) -> parking_lot::MutexGuard<Remote<T>> {
    [10.588200]
    [10.101256]
    pub fn lock<'a>(&'a self) -> parking_lot::MutexGuard<'a, Remote<T>> {
  • replacement in libpijul/src/pristine/mod.rs at line 703
    [10.37377][10.52521:52570]()
    pub(crate) fn iter_adjacent<'txn, T: GraphTxnT>(
    [10.37377]
    [10.37431]
    pub fn iter_adjacent<'txn, T: GraphTxnT>(
  • replacement in libpijul/src/pristine/mod.rs at line 968
    [10.608172][10.64901:65018]()
    pub(crate) fn make_changeid<T: GraphTxnT>(
    txn: &T,
    h: &Hash,
    ) -> Result<ChangeId, TxnErr<T::GraphError>> {
    [10.608172]
    [10.104690]
    pub fn make_changeid<T: GraphTxnT>(txn: &T, h: &Hash) -> Result<ChangeId, TxnErr<T::GraphError>> {
  • replacement in libpijul/src/pristine/mod.rs at line 1576
    [10.15833][10.15833:15891]()
    .map(|x| x.map(|x| x.into()))
    [10.15833]
    [10.15891]
    .map(|x| x.map(|x| x.into()));
  • replacement in libpijul/src/pristine/mod.rs at line 1620
    [10.16111][10.16111:16167]()
    .map(|x| x.map(From::from))
    [10.16111]
    [10.16167]
    .map(|x| x.map(From::from));
  • replacement in libpijul/src/path.rs at line 81
    [10.21][10.2817:2863](),[10.670198][10.2817:2863]()
    pub fn components(path: &str) -> Components {
    [10.21]
    [3.0]
    pub fn components<'a>(path: &'a str) -> Components<'a> {
  • replacement in libpijul/src/path.rs at line 86
    [10.41][10.41:87]()
    pub fn components(path: &str) -> Components {
    [10.41]
    [3.40]
    pub fn components<'a>(path: &'a str) -> Components<'a> {
  • replacement in libpijul/src/lib.rs at line 268
    [10.729852][10.2970:3033]()
    fn iter_working_copy(&self) -> WorkingCopyIterator<Self> {
    [10.729852]
    [10.729932]
    fn iter_working_copy<'a>(&'a self) -> WorkingCopyIterator<'a, Self> {
  • replacement in libpijul/src/lib.rs at line 404
    [10.731450][10.127938:128038]()
    fn touched_files(&self, h: &pristine::Hash) -> Result<Option<Touched<Self>>, Self::DepsError> {
    [10.731450]
    [10.128038]
    fn touched_files<'a>(
    &'a self,
    h: &pristine::Hash,
    ) -> Result<Option<Touched<'a, Self>>, Self::DepsError> {
  • replacement in libpijul/src/fs.rs at line 432
    [10.750130][10.106011:106067]()
    pub fn working_copy_children<T: TreeTxnT>(
    txn: &T,
    [10.750130]
    [10.106067]
    pub fn working_copy_children<'a, T: TreeTxnT>(
    txn: &'a T,
  • replacement in libpijul/src/fs.rs at line 435
    [10.106085][10.106085:106137]()
    ) -> Result<WorkingCopyChildren<T>, T::TreeError> {
    [10.106085]
    [10.106137]
    ) -> Result<WorkingCopyChildren<'a, T>, T::TreeError> {
  • replacement in libpijul/src/fs.rs at line 502
    [10.751917][10.107025:107113]()
    pub fn iter_working_copy<T: TreeTxnT>(txn: &T, root: Inode) -> WorkingCopyIterator<T> {
    [10.751917]
    [10.752018]
    pub fn iter_working_copy<'a, T: TreeTxnT>(txn: &'a T, root: Inode) -> WorkingCopyIterator<'a, T> {
  • replacement in libpijul/src/fs.rs at line 782
    [10.18987][10.4169:4248]()
    return Some(Ok((grandparent.dest(), perms, basename)))
    [10.18987]
    [10.19066]
    return Some(Ok((grandparent.dest(), perms, basename)));
  • replacement in libpijul/src/diff/bin.rs at line 5
    [10.2618][10.2618:2649]()
    pub(super) fn make_old_chunks(
    [10.2618]
    [10.2649]
    pub(super) fn make_old_chunks<'a>(
  • replacement in libpijul/src/diff/bin.rs at line 7
    [10.2668][10.2668:2743]()
    a: &[u8],
    ) -> (HashMap<u32, Vec<(usize, &[u8])>>, Vec<super::Line>) {
    [10.2668]
    [10.2743]
    a: &'a [u8],
    ) -> (HashMap<u32, Vec<(usize, &'a [u8])>>, Vec<super::Line<'a>>) {
  • replacement in libpijul/src/changestore/filesystem.rs at line 142
    [10.826014][10.71:141]()
    std::cell::RefMut<lru_cache::LruCache<ChangeId, ChangeFile>>,
    [10.826014]
    [10.35450]
    std::cell::RefMut<'a, lru_cache::LruCache<ChangeId, ChangeFile>>,
  • replacement in libpijul/src/change/parse.rs at line 553
    [10.77264][10.77264:77330]()
    fn parse_fragment(input: &str) -> IResult<&str, StringFragment> {
    [10.77264]
    [10.77330]
    fn parse_fragment<'a>(input: &'a str) -> IResult<&'a str, StringFragment<'a>> {