Pushing/pulling from/to Nest discussions again
Dependencies
- [2]
3ZAS64J6Solving conflicts - [3]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [4]
EUZFFJSOUpdating Pijul with the latest changes in Libpijul - [5]
UDHP4ZVBFixing SSH asynchronicity issues - [6]
K6GWUOD5Styling progress bars - [7]
2V33SO6Idont unwrap name() for RemoteRepo::LocalChannel - [8]
IVLLXQ5ZImproved push/pull reporting - [9]
MU5GSJAWPartial push and pull (WARNING: breaks the existing protocol) - [10]
76PCXGMLPushing to, and pulling from the local repository - [11]
KI2AFWOSFixing a panic in pull - [12]
FGVTXN52Filter linebreak from http::get_state() response - [13]
FE5ES6Q4Stop pushing/pulling if the remote returns an error - [14]
C5XGFNKISimplify return type for remote get_id - [15]
A3RM526YIntegrating identity malleability - [*]
FBXYP7QMForgot to add remote::http
Change contents
- replacement in pijul/src/remote/ssh.rs at line 738
pub async fn get_id(&mut self) -> Result<libpijul::pristine::RemoteId, anyhow::Error> {pub async fn get_id(&mut self) -> Result<Option<libpijul::pristine::RemoteId>, anyhow::Error> { - replacement in pijul/src/remote/ssh.rs at line 747
receiver.await?.ok_or_else(|| anyhow::anyhow!("Unable to retrieve RemoteId for Ssh remote"))Ok(receiver.await?) - replacement in pijul/src/remote/mod.rs at line 421
let id = self.get_id(txn).await?;let id = if let Some(id) = self.get_id(txn).await? {id} else {return Ok(None);}; - replacement in pijul/src/remote/mod.rs at line 489
let id = self.get_id(txn).await?;let id = if let Some(id) = self.get_id(txn).await? {id} else {let (inodes, theirs_ge_dichotomy) = self.download_changelist_nocache(0, path).await?;let mut theirs_ge_dichotomy_set = HashSet::new();let mut to_download = Vec::new();for (_, h, _) in theirs_ge_dichotomy.iter() {theirs_ge_dichotomy_set.insert(*h);to_download.push(*h);}return Ok(RemoteDelta {inodes,remote_ref: None,to_download,ours_ge_dichotomy_set: HashSet::new(),theirs_ge_dichotomy,theirs_ge_dichotomy_set,remote_unrecs: Vec::new(),});}; - edit in pijul/src/remote/mod.rs at line 746
/// This method might return `Ok(None)` in some cases, for example/// if the remote wants to indicate not to store a cache. This is/// the case for Nest channels, for example. - replacement in pijul/src/remote/mod.rs at line 752
) -> Result<libpijul::pristine::RemoteId, anyhow::Error> {) -> Result<Option<libpijul::pristine::RemoteId>, anyhow::Error> { - replacement in pijul/src/remote/mod.rs at line 754
RemoteRepo::Local(ref l) => l.get_id(),RemoteRepo::Local(ref l) => Ok(Some(l.get_id()?)), - replacement in pijul/src/remote/mod.rs at line 759
Ok(*txn.id(&*channel.read()))Ok(Some(*txn.id(&*channel.read()))) - replacement in pijul/src/remote/mod.rs at line 1095
let id = self.get_id(txn).await?;let id = if let Some(id) = self.get_id(txn).await? {id} else {return Ok(());}; - replacement in pijul/src/remote/http.rs at line 295
pub async fn get_id(&self) -> Result<libpijul::pristine::RemoteId, anyhow::Error> {pub async fn get_id(&self) -> Result<Option<libpijul::pristine::RemoteId>, anyhow::Error> { - replacement in pijul/src/remote/http.rs at line 311
libpijul::pristine::RemoteId::from_bytes(&resp).ok_or_else(|| anyhow::anyhow!("Unable to retrieve RemoteId for Http remote"))Ok(libpijul::pristine::RemoteId::from_bytes(&resp))