pijul git: link commits to identities via email
Dependencies
- [2]
G2WWGRN2Refactor git command's handling of repo and channel - [3]
MKDWLE4V🩹 Reorder imports, solve merge conflicts, post merge cleanup - [4]
RUBBHYZ7Removing unnecessary async/await - [5]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [6]
JL4WKA5PImplement the Sanakirja concurrency model in a cross-process way - [7]
BJOZ25EUDeterministic Git import - [8]
IIV3EL2XCleanup, formatting, and fixing the Git feature - [9]
6RVT5X4LCurrent state: return zero instead of an Option if there is no change on the channel - [10]
5SLOJYHGFixing the Git feature - [11]
WTRH4B2XFormatting - [12]
EUZFFJSOUpdating Pijul with the latest changes in Libpijul - [13]
VGBH3ED6The Git feature does not need to be async - [14]
UC5C5REV`pijul git`: two more fields in the benchmarks - [15]
FF4TXHN5In `pijul git`, avoid diffing files not modified by a commit - [16]
QF4CMUUN🐛 Fix compilation after jiff migration - [17]
DDEUZMXQRefactor record command's handling of repo and channel - [18]
YVA72CP2Default feedback for the `pijul git` command - [19]
GUL4M5FICleanup and formatting - [20]
FAOGX7G3Outputting the repo after the last Git import - [21]
N26HD5PFReplace `chrono` with `jiff` - [22]
KUUVOJUPFixing the Git feature with the new save_change - [23]
RP7YRM5QImport Git repos without writing anything to disk - [24]
B3QWIGDEFixing the Git features with the latest Pijul (+ conflicts in Cargo.toml) - [25]
NEJOYVJBFixing the Git feature - [*]
I52XSRUHMassive cleanup, and simplification - [*]
HWH4WWN3Proper separation of Git commit messages into a message and description fields in changes
Change contents
- replacement in pijul/src/main.rs at line 231
SubCommand::Git(git) => git.run(),SubCommand::Git(git) => git.run().await, - replacement in pijul/src/commands/record.rs at line 104
h?.1.0.into()h?.1 .0.into() - replacement in pijul/src/commands/git.rs at line 45
pub fn run(self) -> Result<(), anyhow::Error> {pub async fn run(self) -> Result<(), anyhow::Error> { - replacement in pijul/src/commands/git.rs at line 95
import(&git, &mut env_git, &mut repo, &dag)?;import(&git, &mut env_git, &mut repo, &dag).await?; - replacement in pijul/src/commands/git.rs at line 269
fn import(async fn import( - edit in pijul/src/commands/git.rs at line 314
let all_identities = pijul_identity::Complete::load_all().unwrap(); - replacement in pijul/src/commands/git.rs at line 348
let state = import_commit(git, repo, &txn, &channel, &oid, &mut stats)?;let state =import_commit(git, repo, &txn, &channel, &oid, &mut stats, &all_identities).await?; - replacement in pijul/src/commands/git.rs at line 683
fn import_commit<T: TxnTExt + MutTxnTExt + GraphIter + Send + Sync + 'static>(async fn import_commit<T: TxnTExt + MutTxnTExt + GraphIter + Send + Sync + 'static>( - edit in pijul/src/commands/git.rs at line 690
all_identities: &[pijul_identity::Complete], - edit in pijul/src/commands/git.rs at line 750[28.376][4.87]
- edit in pijul/src/commands/git.rs at line 752
let email = signature.email().unwrap().to_string();let identity = if email.is_empty() {None} else {all_identities.iter().find(|i| i.config.author.email == email)};if let Some(identity) = identity {author.insert("key".to_string(), identity.public_key.key.clone());};author.insert("email".to_string(), email); - edit in pijul/src/commands/git.rs at line 776
identity, - replacement in pijul/src/commands/git.rs at line 788
);).await; - replacement in pijul/src/commands/git.rs at line 819
fn record_apply<async fn record_apply< - edit in pijul/src/commands/git.rs at line 829
identity: Option<&pijul_identity::Complete>, - replacement in pijul/src/commands/git.rs at line 899
.save_change(&mut change, |_, _| Ok::<_, anyhow::Error>(())).save_change(&mut change, |change, hash| {if let Some(identity) = identity {let secret = identity.decrypt().unwrap().0;change.unhashed = Some(serde_json::json!({"signature": secret.sign_raw(&hash.to_bytes()).unwrap(),}));}Ok::<_, anyhow::Error>(())}) - edit in pijul/src/commands/git.rs at line 1030
author.insert("email".to_string(), signature.email().unwrap().to_string()); - resolve order conflict in pijul/src/commands/git.rs at line 1030[4.165170]