The sound distributed version control system

#706 Improved identity management

Opened by finchie on August 16, 2022
finchie on August 16, 2022

I have adapted the changes from #673 for a simpler review process. The main goal was to remove the common foot-gun of identity management while also allowing for power-users to have more complex setups. Some highlights of these changes are as follows:

  • Support for multiple identities throughout the codebase
  • Commands to add, edit, delete, list, repair identities
  • Simplified handling of push/pull over SSH
  • Test suite of all the most common operations

I am more than happy to make any changes required. Please let me know what I can do to help make reviewing easier!

finchie added a change on August 16, 2022
4EN4MDBQC3DDMYWY7GNCOR2CUTNQJSKKBUSAH7OTJGNO6FBPY55QC
finchie added a change on August 16, 2022
FVQYZQFL7WHSC3UUPJ4IWTP7SKTDQ4K6K5HY4EDK3JKXG3CQNZEAC
finchie added a change on August 16, 2022
4KJ45IJLTIE35KQZUSFMFS67RNENG4P2FZMKMULJLGGYMKJUVRSQC
finchie added a change on August 16, 2022
DWSAYGVEOR4D2EKIICEZUWCRGJTUXQQLOUWMYIFV7XN62K44F4FAC
finchie added a change on August 16, 2022
TI7PCK7JLPU4KYE65XIMBUPPY7DRPVDAETPDFMG3VAQGGDRGQHPQC
finchie added a change on August 16, 2022
FOCBVLOUXYA7ZCUZA2CU3JU2QGF3ZOXW6EAVL5KZINN43GXNL7CQC
joyously on August 16, 2022

As stated on Zulip, I got a conflict on Cargo.lock and libpijul/src/tests/mod.rs on the pull of these changes. Running the tests with cargo test --package pijul, I got

  Compiling pijul v1.0.0-beta.2 (/media/bigdisk/Data/_working/contrib/pijul/pijul)
error[E0658]: `let` expressions in this position are unstable
  --> pijul/tests/common/mod.rs:90:12
   |
90 |         if let Some(invalid) = self.invalid_input() && !valid {
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

error[E0658]: `let` expressions in this position are unstable
   --> pijul/tests/common/identity.rs:292:12
    |
292 |         if let Some(password) = self.password.clone() && valid {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `pijul` due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error[E0658]: use of unstable library feature 'backtrace'
   --> pijul/src/main.rs:149:49
    |
149 |         log::error!("Error backtrace: {:#?}", e.backtrace());
    |                                                 ^^^^^^^^^
    |
    = note: see issue #53487 <https://github.com/rust-lang/rust/issues/53487> for more information

error: could not compile `pijul` due to previous error
error: could not compile `pijul` due to previous error
finchie added a change on August 25, 2022
SV2PROHVQ5R267ORJVOYZ4RGIEFH6TYM2OFNEBAOL6ZTTVJ6LISQC
finchie on August 25, 2022

@joyously thanks for picking up on this, I was accidentally using a nightly toolchain. The latest patch should resolve these errors :)

finchie added a change on September 22, 2022
4OJWMSOWWNT5N4W4FDMKBZB5UARCLGV3SRZVKGR4EFAYFUMUHM7AC
finchie added a change on September 25, 2022
AFZKABZT5EZDS4MUA4UB572ZYMMVTXDOITDBHVF4XO7UGAJJE5FAC
finchie added a change on September 25, 2022
KKNMDXAIU7P44JOSAM23T4RUMLBHWGHTQQS4NXS4FIX5IN6OTXPAC
finchie added a change on September 26, 2022
6FRPUHWKBAWIYN6B6YDFQG2SFWZ6MBBYOYXFUN6DRZ4HPDSKFANQC
finchie added a change on September 28, 2022
Make bin_diff_test compile again by multun, created on September 9, 2022
DSLBAEDTSUX3IPCX3BNHDLPIKLHIZABP6XL37MDSMNREASVOPZSAC
finchie added a change on September 28, 2022
Fix zombie in libpijul tests created on September 26, 2022
DHMXWWMSWJT5EJK4PNCG46ETUJ4CMBWBQXIHCKRCNUUH2ULEFQDAC
finchie added a change on September 28, 2022
K3INLJSYZQKG4UDISY4MS76QN6V7H5ZUHS6HQBSTVFX2BBPAK26QC
finchie on September 28, 2022

Whoops, accidentally pushed patches from #713