Downloading changelists from channels without an id (Nest discussions)
Dependencies
- [2]
A3RM526YIntegrating identity malleability - [3]
2D7P2VKJChange completions (where the whole progress bar story started) - [4]
IQ4FCHPZHTTP connections: pooling + retry on error - [5]
TPEH2XNB1.0.0-alpha.28, with Tokio 1.0 - [6]
Q45QHPO4Feedback on network stuff - [7]
HXEIH4UQPulling more than 100 changes at once - [8]
UDHP4ZVBFixing SSH asynchronicity issues - [9]
2GQCLJZGDisplaying errors returned by the server in the protocol - [10]
X6YFD4WVDo not download changes if we already have them - [11]
L4JXJHWXpijul/*: reorganize imports and remove extern crate - [12]
367UBQ6KForwarding SSH stderr, and progress bar for push - [13]
FBXYP7QMForgot to add remote::http - [14]
GYXIF25TProper parsing of URLs - [15]
44BN7FWSDo not output files introduced by patches that were not applied during a push - [16]
YN63NUZOSanakirja 1.0 - [17]
TKEVOH7HFixing a bug when downloading changes, and making change download more efficient (more async) - [18]
JRENVH5DReqwest 0.11 - [19]
WKX5S4Z4remove unneccesary explicit lifetimes - [20]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [21]
BNPSVXICFriendlier progress bars - [22]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [23]
76PCXGMLPushing to, and pulling from the local repository - [24]
I52XSRUHMassive cleanup, and simplification - [25]
MU5GSJAWPartial push and pull (WARNING: breaks the existing protocol)
Change contents
- replacement in pijul/src/remote/ssh.rs at line 12
use libpijul::{Base32, Hash, Merkle, MutTxnT};use libpijul::{Base32, Hash, Merkle}; - replacement in pijul/src/remote/ssh.rs at line 18
use super::{parse_line, RemoteRef};use super::parse_line; - replacement in pijul/src/remote/ssh.rs at line 463
debug!("state: State {:?}", data);debug!("state: Id {:?}", data); - replacement in pijul/src/remote/ssh.rs at line 465
let line = if data.last() == Some(&10) {let line = if data.len() >= 16 && data.last() == Some(&10) { - replacement in pijul/src/remote/ssh.rs at line 842
pub async fn download_changelist<T: MutTxnT>(pub async fn download_changelist<A,F: FnMut(&mut A, u64, Hash, libpijul::Merkle) -> Result<(), anyhow::Error>,>( - replacement in pijul/src/remote/ssh.rs at line 847
txn: &mut T,remote: &mut RemoteRef<T>,mut f: F,a: &mut A, - replacement in pijul/src/remote/ssh.rs at line 870
super::ListLine::Change { n, h, m } => {txn.put_remote(remote, n, (h, m))?;}super::ListLine::Change { n, h, m } => f(a, n, h, m)?, - edit in pijul/src/remote/mod.rs at line 322
let f = |a: &mut (&mut T, &mut RemoteRef<T>), n, h, m| {let (ref mut txn, ref mut remote) = *a;txn.put_remote(remote, n, (h, m))?;Ok(())}; - replacement in pijul/src/remote/mod.rs at line 328
RemoteRepo::Local(ref mut l) => l.download_changelist(txn, remote, from, paths),RemoteRepo::Ssh(ref mut s) => s.download_changelist(txn, remote, from, paths).await,RemoteRepo::Http(ref h) => h.download_changelist(txn, remote, from, paths).await,RemoteRepo::Local(ref mut l) => {l.download_changelist(f, &mut (txn, remote), from, paths)}RemoteRepo::Ssh(ref mut s) => {s.download_changelist(f, &mut (txn, remote), from, paths).await}RemoteRepo::Http(ref h) => {h.download_changelist(f, &mut (txn, remote), from, paths).await} - replacement in pijul/src/remote/mod.rs at line 388
async fn update_identities(pub async fn update_identities<T: MutTxnTExt + TxnTExt + GraphIter>( - replacement in pijul/src/remote/mod.rs at line 390
rev: Option<u64>,path: PathBuf,) -> Result<u64, anyhow::Error> {repo: &mut Repository,remote: &RemoteRef<T>,) -> Result<(), anyhow::Error> {let mut id_path = repo.path.clone();id_path.push(DOT_DIR);id_path.push("identities");let rev = None; - replacement in pijul/src/remote/mod.rs at line 398
RemoteRepo::Local(ref mut l) => l.update_identities(rev, path).await?,RemoteRepo::Ssh(ref mut s) => s.update_identities(rev, path).await?,RemoteRepo::Http(ref mut h) => h.update_identities(rev, path).await?,RemoteRepo::Local(ref mut l) => l.update_identities(rev, id_path).await?,RemoteRepo::Ssh(ref mut s) => s.update_identities(rev, id_path).await?,RemoteRepo::Http(ref mut h) => h.update_identities(rev, id_path).await?, - replacement in pijul/src/remote/mod.rs at line 404
Ok(r)remote.set_id_revision(r)?;Ok(()) - edit in pijul/src/remote/mod.rs at line 410
remote: &RemoteRef<T>, - edit in pijul/src/remote/mod.rs at line 518
let mut id_path = repo.path.clone();id_path.push(DOT_DIR);id_path.push("identities");remote.set_id_revision(self.update_identities(None, id_path).await?)?; - replacement in pijul/src/remote/mod.rs at line 614
self.pull(&remote, repo, txn, channel, &to_pull, &HashSet::new(), true)self.pull(repo, txn, channel, &to_pull, &HashSet::new(), true) - edit in pijul/src/remote/mod.rs at line 616
self.update_identities(repo, &remote).await?; - replacement in pijul/src/remote/mod.rs at line 722
self.pull(&remote_changes,repo,txn,local_channel,&pullable,&inodes,true,).await?;self.pull(repo, txn, local_channel, &pullable, &inodes, true).await?;self.update_identities(repo, &remote_changes).await?; - edit in pijul/src/remote/local.rs at line 9
use super::RemoteRef; - replacement in pijul/src/remote/local.rs at line 50
pub fn download_changelist<T: MutTxnT>(pub fn download_changelist<A,F: FnMut(&mut A, u64, Hash, Merkle) -> Result<(), anyhow::Error>,>( - replacement in pijul/src/remote/local.rs at line 55
txn: &mut T,remote: &mut RemoteRef<T>,mut f: F,a: &mut A, - replacement in pijul/src/remote/local.rs at line 106
txn.put_remote(remote, n, (h.into(), m.into()))?;f(a, n, h.into(), m.into())?; - replacement in pijul/src/remote/http.rs at line 6
use libpijul::pristine::{Base32, MutTxnT, Position};use libpijul::{Hash, RemoteRef};use libpijul::pristine::{Base32, Position};use libpijul::Hash; - replacement in pijul/src/remote/http.rs at line 168
pub async fn download_changelist<T: MutTxnT>(pub async fn download_changelist<A,F: FnMut(&mut A, u64, Hash, libpijul::Merkle) -> Result<(), anyhow::Error>,>( - replacement in pijul/src/remote/http.rs at line 173
txn: &mut T,remote: &mut RemoteRef<T>,mut f: F,a: &mut A, - replacement in pijul/src/remote/http.rs at line 216
super::ListLine::Change { n, m, h } => {txn.put_remote(remote, n, (h, m))?;}super::ListLine::Change { n, m, h } => f(a, n, h, m)?, - edit in pijul/src/commands/pushpull.rs at line 408
&remote_changes.as_ref().unwrap().1, - edit in pijul/src/commands/pushpull.rs at line 416
if let Some((_, ref r)) = remote_changes {remote.update_identities(&mut repo, r).await?;}