EUZFFJSOWV4PXDFFPDAFBHFUUMOFEU6ST7JH57YYRRR2SEOXLN6QC NHO3QO3WZTJBRPGIQVLNPHUYAB6YMTDOPHNGGTYVPSTP47TBQJ2AC WQQJLPTXGJGK2LPRV633QTPLDXE4E5N7GQ4Y7FOLSFTJBWF6GHRQC NEJOYVJB4VXJJPFBWD2YK7PK6KKHQGRHIJHLEJ53HLQ3ZQRE5EPQC L2VH4BYK3IULLGBHXMZJWKRKDQY43QEMQRTXFJCNRDE7PODLXWTAC DX2FO4HZDTTBU436YRPQW3MIIVFB3ZFSZ3SI5GYLTIWCIGRTQ6DAC HQ2C4VT5O2IOUAQQTEAF7VIFNJFOZWBW2R5ACLK3TD4YZUXNZ77QC RG4YZPKLWZXRNROBZQD4OLWMF46JPZC4WAM3Q6DBLDQYLL4QNQBQC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC I24UEJQLCH2SOXA4UHIYWTRDCHSOPU7AFTRUOTX7HZIAV4AZKYEQC YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQC CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC A3RM526Y7LUXNYW4TL56YKQ5GVOK2R5D7JJVTSQ6TT5MEXIR6YAAC 76PCXGML77EZWTRI5E6KHLVRAFTJ2AB5YRN5EKOYNAPKTWY2KCGAC BNPSVXIC72C3WT33YKCH766OBLLNCS7POX6U6JXZSQQPJF2M22MQC 5SLOJYHGPMZVCOE3IS7ICNMJJYX3RBT6CDG5MAV6T4CJIOW7YZ6QC TKEVOH7HXON7SOBGXTUDHAHO2U2GPTQRNESP6ERKUQAS526OZIRAC MU5GSJAW65PEG3BRYUKZ7O37BPHW3MOX3S5E2RFOXKGUOJEEDQ5AC UDHP4ZVBQZT2VBURB2MDCU2IZDNMCAFSIUKWRBDQ5BWMFKSN2LYQC L4JXJHWXYNCL4QGJXNKKTOKKTAXKKXBJUUY7HFZGEUZ5A2V5H34QC ZBNKSYA6PW4DSPC3NCRUZLVHW2GNXMCSDSAGEIKHGHDGGZRBH7ZQC VMPAOJS2ZFOLNXALHWSVM5AFENWX6ZUACB45EJV3HXI7DQNAZPHQC Y6EVFMTA6FOH3OQH6QCSWMI3F6SYZT2FSHO6GF4M3ICENDCWFM4QC 5OGOE4VWS5AIG4U2UYLLIGA3HY6UB7SNQOSESHNXBLET3VQXFBZAC SLJ3OHD4F6GJGZ3SV2D7DMR3PXYHPSI64X77KZ3RJ24EGEX6ZNQAC K7JPP64SNKZNMB6XJAYYHDC2464I3BQDLVA3IX4YCQZ4P5TXZXRAC GUL4M5FIE7JYXJHR7MCTQS3543HIQXGPLBWZKASBAWWEA4SZ75CAC QL6K2ZM35B3NIXEMMCJWUSFXOBQHAGXRDMO7ID5DCKTJH4QJVY7QC AAXP2534BWX2ZUDZZHUMLYDBMGFGUH32CNRA3KOLER3JKOIJUZLAC Y7YAFMFFJY3SQ3GYN3SS4V3FZWMH3B5L65AXQBXOR5XARSMF5JJQC V435QOJRFHNKW3NKJHMVMFOGO3KGAZVSURLSGFUHVKOMHMF4Q2ZQC NLGQAH4H35XC5XTH26BRXVFWGPPAMA4MDN3MHMGCOYE6ZZQMQ4AAC ZHABNS3S6FSINO74FOI5KHYXYDTBPO4FQTTYTUS7NNKEVVNLYC4AC PGERZ3KJIQIREXAYLKLZR4526X5RPKIA6LSVZL2DGYQ5UVPIIBUQC KWAGWB73AMLJFK2Z7SBKHHKKHFRX7AQKXCWDN2MBX72RYCNMB36QC MF3WAHBIH6Q2F7ZOKWPEJF6VGSKJITWLR3Z64GTD6YQZNA5EATWQC 3MHUNYERBYLR5FOB7YJZINOFKXSXMLGBF5F6UR2MKNYYODIJIFGQC OU243LABJJZ3MQHYW2A2MYKW7KZLTZGHJJXDR2BIIIHXT5BSYN3AC EEBKW7VTILH6AGGV57ZIJ3DJGYHDSYBWGU3C7Q4WWAKSVNUGIYMQC F6V27C3M7GZHBHXMGAZMYO5XGWDYYNNIF2HLDE2VPNHTEVDSYGVQC MFTN7GBWZNQAFHKER57MLZAJGVEAHV2GYAQN2QTDHTPCEURDVIGQC 3AMEP2Y5J6GA4AWQONF4JVA3XSR3ASLHHKMYG44R72SOUY3UQCDAC 5HF7C67M4DZMYTCIG32XEQQ662AHQMIHTHUK7TAVSO52XLMFBZPAC M5FK3ABTKBDG6HHW32G7UKRJEJQKD2U7BPXNZ3HVHBKULWVV6CTQC BE7GUCI2N6TX3P2HRMFSH7XLJKILDPOKOXKA7HWOABBFNKCKMZLAC I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC JL4WKA5PBKXRNAMETYO4I52QKASQ3COYHH2JKGA7W5YLIRZZH53AC HSVGP2G4D2F56DS3YKZLSYPS4A5BNGH4NTAXAOZ57OCXFM3E5AYAC XSRTXUAS3DXJA42TZESMETFVTKU2OBUDGDE4N5F2CVWI4CLOUJ4AC 44BN7FWSIXKG75IJUTCXLJE7VANNQFPRHQXTPLQHFU7AKGLSPQRAC 3KRGVQFUWFHPOGZOXVTJYNCM4XBRVYITAEOVPKBSAZ5GZIUO5KVQC 2RXOCWUWOGHEKHT5W73LAHJSOZVRTOGS7BWLSIGEEEBJGMCZBXQAC 6RVT5X4LTRP5XHVDESXMIC2DHMT5MUQ24ZDWEBJ4XYTF6LJXK7CAC 5DVRL6MFXQOCPOZMYSKBERMRRVUTYRL2SRGRTU2MH4IEOFCDKM3QC SMMBFECLGSUKRZW5YPOQPOQCOY2CH2OTZXBSZ3KG2N3J3HQZ5PSAC 3AZB5NUOZ3PEP5RX2M2QKA4OVAF6AIXQZ6GH4D6W3JK7UFCLA2RQC IIV3EL2XYI2X7HZWKXEXQFAE3R3KC2Q7SGOT3Q332HSENMYVF32QC A3DMBJJAPLS6ASSZ7JVVVULRQNZCF2WKYTRUD7EY7PKVYABSATFAC B3QWIGDERNMB3M6P5WTWP5CN2DB3KCS7MVTEPC2XVJ237ZXVQGMAC VU4KVXHWMLZCJJDO3DDUTNTYUDCDD7RSJ3QJ67EMNZV44H2YIKSAC VO5OQW4W2656DIYYRNZ3PO7TQ4JOKQ3GVWE5ALUTYVMX3WMXJOYQC EEOOHGQQK43J36LQJDSS3UK56M54DXPYE4VB3K4A2XAYGOYDJAXAC OJZWJUF2TCGZ7RFVY6FPKBS5P3C4BGHZDPVH775OHVNVFMJICKNQC 4VWXL6KQGYGDUQRCVJCEVIV6CKJSEIYDX4YF33OX6EDNKJNEGD2AC HMMMKONLCRAXVT7SO2ITTFDOJIQKKVSRIZPXYVPDC34RCBHWMHVAC 6DOXSHWGKJIMIPFCNLASGKBAJCJMJULW5HFRZAZ67EYSMXXGJ3KAC 2K7JLB4Z7BS5VFNWD4DO3MKYU7VNPA5MTVHVSDI3FQZ5ICM6XM6QC OWCCRVO5LMF3AJ6CU76UOT6HS2VNGI6O3LGTTYQBKZLPCCRNETXQC QE64ATLZWMKHYABCD3VA547PYXCK6YN3K7RE2TX3SCQNKG7XLVAQC A6R6SGCPLFM45QNWJLISFBR3EEXVITYHCWEUOPNH4UIGIWJRTZAQC XA23FMQM2AI7RMR36AYN7UNP2D5JWVJMJPHURWZO7URM7H46PU6AC R3H7D42UZ446V5TO2574BMAQQAYYJPEIMSZVDPAGVIYU2COJSWBAC MDADYULS5AWVMTJDGYCGNQTN6T7XJDRUBDTFILDY5MLF6I2PE5NAC let (inodes, remote_changes) = self.update_changelist(txn, path).await?.expect("Remote is not self");
let (inodes, remote_changes) = if let Some(x) = self.update_changelist(txn, path).await? {x} else {bail!("Channel not found")};
let mut txn = self.pristine.mut_txn_begin()?;let mut channel = txn.open_or_create_channel(to_channel.unwrap_or(&self.channel))?;
let txn = self.pristine.arc_txn_begin()?;let channel = txn.write().open_or_create_channel(to_channel.unwrap_or(&self.channel))?;
let txn = repo.pristine.mut_txn_begin()?;let cur = txn.current_channel().unwrap_or(crate::DEFAULT_CHANNEL);
let txn = repo.pristine.arc_txn_begin()?;let cur = txn.read().current_channel().unwrap_or(crate::DEFAULT_CHANNEL).to_string();
let mut txn = if let Ok(txn) = Arc::try_unwrap(txn) {txn.into_inner().unwrap()} else {unreachable!()};let channel = txn.load_channel(&channel_name)?.unwrap();let last_t = if let Some(n) = txn.reverse_log(&*channel.read()?, None)?.next() {
let channel = txn.read().load_channel(&channel_name)?.unwrap();let last_t = if let Some(n) = txn.read().reverse_log(&*channel.read(), None)?.next(){
changes_after(&*txn_, &*cur.read()?, a, &mut changediff, &mut inodes)?;changes_after(&*txn_, &*channel.read()?, b, &mut changediff, &mut inodes)?;
changes_after(&*txn_, &*cur.read(), a, &mut changediff, &mut inodes)?;changes_after(&*txn_, &*channel.read(), b, &mut changediff, &mut inodes)?;
let mut txn = if let Ok(txn) = Arc::try_unwrap(txn) {txn.into_inner().unwrap()} else {unreachable!()};txn.apply_local_change(&mut channel, &change, &hash, &updates)?;
let mut txn_ = txn.write();txn_.apply_local_change(&mut channel, &change, &hash, &updates)?;
let remote_changes = remote.update_changelist(&mut txn, &self.path).await?;let channel = txn.open_or_create_channel(&channel_name)?;
let remote_changes = remote.update_changelist(&mut *txn.write(), &self.path).await?;let channel = txn.write().open_or_create_channel(&channel_name)?;
for x in txn.reverse_log(&*channel.read()?, None)? {let (_, (h, m)) = x?;if let Some((_, ref remote_changes)) = remote_changes {if txn.remote_has_state(remote_changes, &m)? {break;}let h_int = txn.get_internal(h)?.unwrap();if !txn.remote_has_change(&remote_changes, &h)? {if paths.is_empty() {to_upload.push(h.into())} else {for p in paths.iter() {if txn.get_touched_files(p, Some(h_int))?.is_some() {to_upload.push(h.into());break;}}
{let txn = txn.read();for x in txn.reverse_log(&*channel.read(), None)? {let (_, (h, m)) = x?;if let Some((_, ref remote_changes)) = remote_changes {if txn.remote_has_state(remote_changes, &m)? {break;
} else if let crate::remote::RemoteRepo::LocalChannel(ref remote_channel) = remote {if let Some(channel) = txn.load_channel(remote_channel)? {let channel = channel.read();let h_int = txn.get_internal(h)?.unwrap();if txn.get_changeset(txn.changes(&channel), h_int)?.is_none() {if paths.is_empty() {to_upload.push(h.into())} else {for p in paths.iter() {if txn.get_touched_files(p, Some(h_int))?.is_some() {to_upload.push(h.into());break;}}}}}
let mut txn = repo.pristine.mut_txn_begin()?;let cur = txn.current_channel().unwrap_or(crate::DEFAULT_CHANNEL);
let txn = repo.pristine.arc_txn_begin()?;let cur = txn.read().current_channel().unwrap_or(crate::DEFAULT_CHANNEL).to_string();
for &i in touched.iter() {if let Some((path, _)) = libpijul::fs::find_path(&repo.changes,&*txn.read().unwrap(),&*channel.read()?,false,i,)? {touched_paths.push(path)} else {touched_paths.clear();break;
{let txn_ = txn.read();for &i in touched.iter() {if let Some((path, _)) =libpijul::fs::find_path(&repo.changes, &*txn_, &*channel.read(), false, i)?{touched_paths.push(path)} else {touched_paths.clear();break;}
if txn.current_state(&*channel.read()?)? == state && extra.is_empty() {txn.archive(&repo.changes, &channel, &mut tarball)?
if txn.read().current_state(&*channel.read())? == state && extra.is_empty() {txn.read().archive(&repo.changes, &channel, &mut tarball)?
import_commit_parents(repo,dag,txn.clone(),channel.clone(),&oid,&mut ws,&mut stats,)?;let state =import_commit(git, repo, txn.clone(), channel.clone(), &oid, &mut stats)?;
import_commit_parents(repo, dag, &txn, &channel, &oid, &mut ws, &mut stats)?;let state = import_commit(git, repo, &txn, &channel, &oid, &mut stats)?;
return Ok((0,None,txn.current_state(&channel.read().unwrap()).map_err(TxnErr)?,));
return Ok((0, None, txn.current_state(&channel.read()).map_err(TxnErr)?));
let mut txn = repo.pristine.mut_txn_begin()?;let mut channel = txn.open_or_create_channel(&self.channel)?;
let txn = repo.pristine.arc_txn_begin()?;let mut channel = txn.write().open_or_create_channel(&self.channel)?;
let mut txn = if let Ok(t) = Arc::try_unwrap(txn) {t.into_inner().unwrap()} else {unreachable!()};txn.set_current_channel(&self.channel)?;
txn.write().set_current_channel(&self.channel)?;
let mut txn = repo.pristine.mut_txn_begin()?;let cur = txn.current_channel().unwrap_or(crate::DEFAULT_CHANNEL);
let txn = repo.pristine.arc_txn_begin()?;let cur = txn.read().current_channel().unwrap_or(crate::DEFAULT_CHANNEL).to_string();
let mut channel = channel.write().unwrap();txn.apply_deps_rec(&repo.changes, &mut channel, hashes.last().unwrap())?;
let mut channel = channel.write();txn.write().apply_deps_rec(&repo.changes, &mut channel, hashes.last().unwrap())?;