FXEDPLRI7PXLDXV634ZA6D5Q3ZWG3ESTKJTMRPJ4MAHI7PKU3M6AC
S7MAMMFWLEBKCZZ2ZUU743Z2X7XRB2IBB7LPXZVYN37RNPGN4ATAC
WUBONLD6E3OB5L7SKLIJZKVUUKXEVK7ZZLOHH347H3HV45XH3EUAC
3EMLWXLHXMGW2HO4WQLN67S6RN47OJXD5ZXETFLVM22IRX4TXRHQC
KL5737GRIOFVXKSINVO5DLLWWV4EMHF7ECXMX6ZZLAZZPWDJPB2QC
I24UEJQLCH2SOXA4UHIYWTRDCHSOPU7AFTRUOTX7HZIAV4AZKYEQC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
7FFFKQZU3TFXWL45TILYNX5A7AC7HBK526SD5DZGYCELN76YE7TAC
MOPABMFWZOEMCIQMLEFH74NGTFV6K26FGUFETV3FG5VHCBGLXDIQC
VO5OQW4W2656DIYYRNZ3PO7TQ4JOKQ3GVWE5ALUTYVMX3WMXJOYQC
RRCSHAYZ6RLWVPNYHF2F5FSRL2KKJNPQUQRIJYLJGB23BZQQ7JLQC
ZHABNS3S6FSINO74FOI5KHYXYDTBPO4FQTTYTUS7NNKEVVNLYC4AC
4OCC6D42GZYRDLH3NSKXMJTRKXP7UZ6Z3YNGCNUT7NT6WBDBCBIAC
OJZWJUF2TCGZ7RFVY6FPKBS5P3C4BGHZDPVH775OHVNVFMJICKNQC
CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC
XSEODPNEN2Y2THBRO7L5QFPAEQVSQTLAFZFWCRMBGZ3YSRZB2UJAC
TVVW53HZGYPODAXEQ4BFZNSPBOFG6JEDVOKIYIDZMWFAMOBKOR2QC
6HNRL5RT76NH5YNSUN7B4FHNRZXKNLX4DROFGMO4R5P2U7JWOL2QC
LCXEUK7KIZTFHTMBBDCURKU3CU62YG4NWKEU65UM5HGXMWIBHAHAC
TIPZ7UXNIZ3UMIXDUP2M33FUP7LY3XM2NX424ZE4EO5V7CZTOGXQC
YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQC
IIV3EL2XYI2X7HZWKXEXQFAE3R3KC2Q7SGOT3Q332HSENMYVF32QC
GHO6DWPILBBTL6CVZKERJBTFL3EY6ZT4YM4E5R4S6YPGVFKFHCVAC
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC
3M7WBE24JTPTHWQOU5PO2ZJYKPKEH2F6R4M6RWIRFG334PQEA55QC
7UPL3Y2A5QOBU6VIUHNWEFGSGQ5CMWGDGOVLRZ53UARXG3TDGLMAC
SHSJ3Y5332WHVUDDQZ2P7GH6VMC7XIX5L7BDJUUMF3QCDRZP7NLQC
NO2QPRFLGCYUDXYJTOY3S3NZJCCLAFOQUHITKDZ7LSZLRLOV5W3QC
X7OHUPL5VYT6ECER2KNGRNFLRX7SBZOM5QWSQ4PBO2UPIE7XM6MAC
Q3GU26WDEYE2HXMM4WWNEGVMSXLQAKRJBSB2EJZA6JTHPKQHXCXQC
NA5I4WYNE2O3LPSHXGWXW7XL4YNYFDREEGDOP6LJ5HJXTQDXM7BAC
GDDYJH7AJYJ2DWTYVP6WS3FPPRTDRQAXZ2BH2CKIFGMIASTSLD4QC
6YMDOZIB5LVYLFIDGN2WNT5JTHEAMS4TFPVDEZ3OWXWOKJOC5QDAC
BZSC7VMYSFRXDHDDAMCDR6X67FN5VWIBOSE76BQLX7OCVOJFUA3AC
Q45QHPO4HDTEZF2W4UDZSYYQ46BPEIWSW4GJILZR5HTJNLKXJABQC
QL6K2ZM35B3NIXEMMCJWUSFXOBQHAGXRDMO7ID5DCKTJH4QJVY7QC
AJEH3FSPKLBYSRQQQ4UL4QA3SPT4MHIC4VEM3XDVATMFFU3R7JKAC
ZAEUSICJC3YOWGF6NZEQCQ34PHPRSBCJEP7FIWE6VIWJGVU734HQC
G6S6PWZEFJK7ARWBIFKDU6VYC5DCJ2YFJMWZOLLWWKU52R2QPXZAC
ADPAFSMYUBTKSK63EPCY5WQGROJQWFCWO4UFPWY3ZXD5ZNH26P2QC
3S6LU2U5TIU43WRE5RQS3IOLVJLVNCDL4W44FVK2HR3NAXZ7IDUAC
A3RM526Y7LUXNYW4TL56YKQ5GVOK2R5D7JJVTSQ6TT5MEXIR6YAAC
TZ42DX3BML5C3O5Z6OBVNBCHSIIHT6AOJPD6ICOLOP4LPYFXQN2QC
TKEVOH7HXON7SOBGXTUDHAHO2U2GPTQRNESP6ERKUQAS526OZIRAC
G6YXRFH24OGXYVO4535WCNQMMWOLDH6JYXFDBCL2HQZSOFD25Z5AC
NGCTMCDPB45UDEXX3RMMQ4JXPILETG7EEFNKMLGP4SJJK52XPLOAC
6DOXSHWGKJIMIPFCNLASGKBAJCJMJULW5HFRZAZ67EYSMXXGJ3KAC
YCEZL7VFBZNOZTSSI24D36ACJVZKXCCEOIFWIHQWK22QPB4PDTRAC
5SLOJYHGPMZVCOE3IS7ICNMJJYX3RBT6CDG5MAV6T4CJIOW7YZ6QC
EEBKW7VTILH6AGGV57ZIJ3DJGYHDSYBWGU3C7Q4WWAKSVNUGIYMQC
SGXOEWHUET7RVS5HANSYE7QRQAG56NIKTC56MLPZ5XBCXODEWUXQC
4DNDMC7IUZNYLDEQQYYF5K3G2QWWXGQENTEWPNTM6XKQEFPW7L3QC
CIEUBH465IFZXO3YDG7XYHP54NJ4TGVQD47SKNW6P5XM4X7IVNBAC
ZSF3YFZTDOXMCOC3HOT5C6MQLYLWOR7QJAOUDS2M2Z4SC2YW3GRAC
B3QWIGDERNMB3M6P5WTWP5CN2DB3KCS7MVTEPC2XVJ237ZXVQGMAC
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let _h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
let channel = txn.write().open_or_create_channel("main")?;
let _h0 = record_all(&repo, &changes, &txn, &channel, "")?;
let channel2 = (&mut *txn.write().unwrap()).fork(&channel, "main2")?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
let _channel2 = txn.write().fork(&channel, "main2")?;
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h1, 0)?;
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
let channel = txn.write().unwrap().open_or_create_channel("main")?;
let _h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
let channel = txn.write().open_or_create_channel("main")?;
let _h0 = record_all(&repo, &changes, &txn, &channel, "")?;
let channel2 = txn.write().unwrap().fork(&channel, "main2")?;
debug_to_file(&*txn.read().unwrap(), &channel, "debug_un0")?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
debug_to_file(&*txn.read().unwrap(), &channel, "debug_un1")?;
let _channel2 = txn.write().fork(&channel, "main2")?;
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h1, 0)?;
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let _h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
let channel = txn.write().open_or_create_channel("main")?;
let _h0 = record_all(&repo, &changes, &txn, &channel, "")?;
output::output_repository_no_pending(
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
)?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)?;
let repo = Arc::new(working_copy::memory::Memory::new());
let repo2 = Arc::new(working_copy::memory::Memory::new());
let repo3 = Arc::new(working_copy::memory::Memory::new());
let repo = working_copy::memory::Memory::new();
let repo2 = working_copy::memory::Memory::new();
let repo3 = working_copy::memory::Memory::new();
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
let txn2 = Arc::new(RwLock::new(env2.mut_txn_begin().unwrap()));
let txn3 = Arc::new(RwLock::new(env3.mut_txn_begin().unwrap()));
txn.write().unwrap().add_file("file")?;
let txn = env.arc_txn_begin().unwrap();
let txn2 = env2.arc_txn_begin().unwrap();
let txn3 = env3.arc_txn_begin().unwrap();
txn.write().add_file("file", 0)?;
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
let channel = txn.write().open_or_create_channel("main")?;
let h0 = record_all(&repo, &changes, &txn, &channel, "")?;
let channel2 = (&mut *txn2.write().unwrap()).open_or_create_channel("main")?;
let channel3 = (&mut *txn3.write().unwrap()).open_or_create_channel("main")?;
let channel2 = txn2.write().open_or_create_channel("main")?;
let channel3 = txn3.write().open_or_create_channel("main")?;
apply::apply_change(
&changes,
&mut *txn2.write().unwrap(),
&mut *channel2.write().unwrap(),
&h0,
)?;
output::output_repository_no_pending(
repo2.clone(),
&changes,
txn2.clone(),
channel2.clone(),
"",
true,
None,
1,
)?;
apply::apply_change(
&changes,
&mut *txn3.write().unwrap(),
&mut *channel3.write().unwrap(),
&h0,
)?;
output::output_repository_no_pending(
repo3.clone(),
&changes,
txn3.clone(),
channel3.clone(),
"",
true,
None,
1,
)?;
apply::apply_change_arc(&changes, &txn2, &channel2, &h0)?;
output::output_repository_no_pending(&repo2, &changes, &txn2, &channel2, "", true, None, 1, 0)?;
apply::apply_change_arc(&changes, &txn3, &channel3, &h0)?;
output::output_repository_no_pending(&repo3, &changes, &txn3, &channel3, "", true, None, 1, 0)?;
apply::apply_change(
&changes,
&mut *txn.write().unwrap(),
&mut *channel.write().unwrap(),
&h2,
)?;
apply::apply_change(
&changes,
&mut *txn.write().unwrap(),
&mut *channel.write().unwrap(),
&h3,
)?;
output::output_repository_no_pending(
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
)?;
apply::apply_change_arc(&changes, &txn, &channel, &h2)?;
apply::apply_change_arc(&changes, &txn, &channel, &h3)?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)?;
debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h2)?;
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h2, 0)?;
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
let txn2 = Arc::new(RwLock::new(env2.mut_txn_begin().unwrap()));
txn.write().unwrap().add_file("file")?;
let txn = env.arc_txn_begin().unwrap();
let txn2 = env2.arc_txn_begin().unwrap();
txn.write().add_file("file", 0)?;
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
let channel2 = (&mut *txn2.write().unwrap()).open_or_create_channel("main")?;
let channel = txn.write().open_or_create_channel("main")?;
let h0 = record_all(&repo, &changes, &txn, &channel, "")?;
let channel2 = txn2.write().open_or_create_channel("main")?;
apply::apply_change(
&changes,
&mut *txn2.write().unwrap(),
&mut *channel2.write().unwrap(),
&h0,
)?;
output::output_repository_no_pending(
repo2.clone(),
&changes,
txn2.clone(),
channel2.clone(),
"",
true,
None,
1,
)?;
apply::apply_change_arc(&changes, &txn2, &channel2, &h0)?;
output::output_repository_no_pending(&repo2, &changes, &txn2, &channel2, "", true, None, 1, 0)?;
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
repo.clone(),
&changes,
txn2.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn2, &channel, "", true, None, 1, 0,
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
let channel = txn.write().open_or_create_channel("main")?;
record_all(&repo, &changes, &txn, &channel, "")?;
let _h2 = record_all_output(
repo.clone(),
changes.clone(),
txn.clone(),
channel.clone(),
"",
)?;
output::output_repository_no_pending(
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
)?;
let _h2 = record_all_output(&repo, changes.clone(), &txn, &channel, "")?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)?;
debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
debug_to_file(&*txn.read().unwrap(), &channel, "debug_un2")?;
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h1, 0)?;
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
txn.write().unwrap().add_file("dir/file")?;
debug_inodes(&*txn.read().unwrap());
let txn = env.arc_txn_begin().unwrap();
txn.write().add_file("dir/file", 0)?;
debug_inodes(&*txn.read());
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
let channel = txn.write().open_or_create_channel("main")?;
let h0 = record_all(&repo, &changes, &txn, &channel, "")?;
debug_inodes(&*txn.read().unwrap());
let channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
match crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel2, &changes, &h0) {
debug_inodes(&*txn.read());
let channel2 = txn.write().open_or_create_channel("main2")?;
match crate::unrecord::unrecord(&mut *txn.write(), &channel2, &changes, &h0, 0) {
debug_inodes(&*txn.read().unwrap());
debug_to_file(&*txn.read().unwrap(), &channel, "debug")?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
debug_inodes(&*txn.read());
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h1, 0)?;
debug_inodes(&*txn.read().unwrap());
debug_to_file(&*txn.read().unwrap(), &channel, "debug2")?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h0)?;
debug_to_file(&*txn.read().unwrap(), &channel, "debug3")?;
debug_inodes(&*txn.read());
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h0, 0)?;
output::output_repository_no_pending(
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
)?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)?;
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
let txn = env.arc_txn_begin().unwrap();
let channel = txn.write().open_or_create_channel("main")?;
let channel2 = txn.write().open_or_create_channel("main2")?;
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
let mut channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let mut channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
let txn = env.arc_txn_begin().unwrap();
let mut channel = txn.write().open_or_create_channel("main")?;
let mut channel2 = txn.write().open_or_create_channel("main2")?;
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
apply::apply_change(
&changes,
&mut *txn.write().unwrap(),
&mut *channel2.write().unwrap(),
&r,
)
.unwrap();
debug_to_file(&*txn.read().unwrap(), &channel2, format!("debug_{}", i))?;
apply::apply_change_arc(&changes, &txn, &channel2, &r).unwrap();
repo.clone(),
&changes,
txn.clone(),
channel.clone(),
"",
true,
None,
1,
&repo, &changes, &txn, &channel, "", true, None, 1, 0,
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
let channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
let txn = env.arc_txn_begin().unwrap();
let channel = txn.write().open_or_create_channel("main")?;
let channel2 = txn.write().open_or_create_channel("main2")?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h2)?;
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h1, 0)?;
crate::unrecord::unrecord(&mut *txn.write(), &channel, &changes, &h2, 0)?;
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
let channel = txn.write().unwrap().open_or_create_channel("main")?;
txn.write().unwrap().add_file("file", 0)?;
let txn = env.arc_txn_begin().unwrap();
let channel = txn.write().open_or_create_channel("main")?;
txn.write().add_file("file", 0)?;
let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
let channel = txn.write().unwrap().open_or_create_channel("main")?;
txn.write().unwrap().add_file("file", 0)?;
let txn = env.arc_txn_begin().unwrap();
let channel = txn.write().open_or_create_channel("main")?;
txn.write().add_file("file", 0)?;
txn.add_file("file").unwrap();
record_all(&mut repo, &changes, &mut txn, &mut channela, "").unwrap();
let mut channelb = txn.fork(&channela, "other").unwrap();
txn.write().add_file("file", 0).unwrap();
record_all(&repo, &changes, &txn, &channela, "").unwrap();
repo.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(b"a\nx\nb\n").unwrap();
Ok(())
})
.unwrap();
let ha = record_all(&mut repo, &changes, &mut txn, &mut channela, "").unwrap();
let channelb = txn.write().fork(&channela, "other").unwrap();
repo.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(b"a\ny\nb\n").unwrap();
Ok(())
})
.unwrap();
let hb = record_all(&mut repo, &changes, &mut txn, &mut channelb, "").unwrap();
repo.write_file("file")
.unwrap()
.write_all(b"a\nx\nb\n")
.unwrap();
let ha = record_all(&repo, &changes, &txn, &channela, "").unwrap();
apply::apply_change(&changes, &mut txn, &mut channelb, &ha).unwrap();
apply::apply_change(&changes, &mut txn, &mut channela, &hb).unwrap();
repo.write_file("file")
.unwrap()
.write_all(b"a\ny\nb\n")
.unwrap();
let hb = record_all(&repo, &changes, &txn, &channelb, "").unwrap();
debug_to_file(&txn, &channela.borrow(), "debuga").unwrap();
debug_to_file(&txn, &channelb.borrow(), "debugb").unwrap();
apply::apply_change_arc(&changes, &txn, &channelb, &ha).unwrap();
apply::apply_change_arc(&changes, &txn, &channela, &hb).unwrap();
repo.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(b"a\nx\nb\n")?;
Ok(())
})?;
let ha = record_all(&mut repo, &changes, &mut txn, &mut channela, "")?;
repo.write_file("file")
.unwrap()
.write_all(b"a\nx\nb\n")
.unwrap();
let ha = record_all(&repo, &changes, &txn, &channela, "")?;
repo.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(b"a\ny\nb\n")?;
Ok(())
})?;
let hb = record_all(&mut repo, &changes, &mut txn, &mut channelb, "")?;
repo.write_file("file").unwrap().write_all(b"a\ny\nb\n")?;
let hb = record_all(&repo, &changes, &txn, &channelb, "")?;
apply::apply_change(&changes, &mut txn, &mut channelb, &ha)?;
apply::apply_change(&changes, &mut txn, &mut channela, &hb)?;
debug_to_file(&txn, &channela.borrow(), "debuga")?;
debug_to_file(&txn, &channelb.borrow(), "debugb")?;
apply::apply_change_arc(&changes, &txn, &channelb, &ha)?;
apply::apply_change_arc(&changes, &txn, &channela, &hb)?;
let mut txn_bob = env_bob.mut_txn_begin().unwrap();
let mut channel_alice = txn_alice.open_or_create_channel("alice").unwrap();
let txn_bob = env_bob.arc_txn_begin().unwrap();
let channel_alice = txn_alice.write().open_or_create_channel("alice").unwrap();
txn_alice.add_file("a/b/c/d").unwrap();
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
txn_alice.write().add_file("a/b/c/d", 0).unwrap();
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
let mut txn = env.mut_txn_begin().unwrap();
let mut channel = txn.open_or_create_channel("main").unwrap();
let txn = env.arc_txn_begin().unwrap();
let channel = txn.write().open_or_create_channel("main").unwrap();
txn.add_file("file")?;
record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
txn.write().add_file("file", 0)?;
record_all(&mut repo, &changes, &txn, &channel, "").unwrap();
repo.write_file::<_, std::io::Error, _>("file", |w| {
for j in 0..i {
writeln!(w, "{}", j)?;
}
w.write_all(&contents[..])?;
for j in (0..i).rev() {
writeln!(w, "{}", j)?;
}
Ok(())
})
.unwrap();
record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
debug_to_file(&txn, &channel.borrow(), &format!("debug{}", i)).unwrap();
let mut w = repo.write_file("file").unwrap();
for j in 0..i {
writeln!(w, "{}", j)?;
}
w.write_all(&contents[..])?;
for j in (0..i).rev() {
writeln!(w, "{}", j)?;
}
record_all(&repo, &changes, &txn, &channel, "").unwrap();
Ok(())
})
.unwrap();
record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
debug_to_file(&txn, &channel.borrow(), "debug_final").unwrap();
}
record_all(&repo, &changes, &txn, &channel, "").unwrap();
let mut it = txn.iter_graph(&channel.graph, None).unwrap();
while let Some(Ok(_)) = txn.next_graph(&channel.graph, &mut it) {
let mut it = txn.read().iter_graph(&channel.graph, None).unwrap();
while let Some(Ok(_)) = txn.read().next_graph(&channel.graph, &mut it) {
let mut txn = env.mut_txn_begin().unwrap();
let mut channel = txn.open_or_create_channel("main").unwrap();
let mut txn = env.arc_txn_begin().unwrap();
let channel = txn.write().open_or_create_channel("main").unwrap();
txn.add_file("file").unwrap();
record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
txn.write().add_file("file", 0).unwrap();
record_all(&mut repo, &changes, &txn, &channel, "").unwrap();
repo.write_file::<_, std::io::Error, _>("file", |w| {
for j in 0..i {
writeln!(w, "{}", j).unwrap();
}
w.write_all(&contents[..]).unwrap();
for j in (0..i).rev() {
writeln!(w, "{}", j).unwrap();
}
Ok(())
})
.unwrap();
record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
debug_to_file(&txn, &channel.borrow(), &format!("debug{}", i)).unwrap();
let mut w = repo.write_file("file").unwrap();
for j in 0..i {
writeln!(w, "{}", j).unwrap();
}
w.write_all(&contents[..]).unwrap();
for j in (0..i).rev() {
writeln!(w, "{}", j).unwrap();
}
record_all(&repo, &changes, &txn, &channel, "").unwrap();
let mut channel2 = txn.fork(&channel, "fork").unwrap();
repo.write_file::<_, std::io::Error, _>("file", |w| {
let mut channel2 = txn.write().fork(&channel, "fork").unwrap();
{
let mut w = repo.write_file("file").unwrap();
txn.apply_change(&changes, &mut channel, &p1).unwrap();
debug_to_file(&txn, &channel.borrow(), "debug_alice").unwrap();
txn.write()
.apply_change(&changes, &mut *channel.write(), &p1)
.unwrap();
txn.apply_change(&changes, &mut channel2, &p2).unwrap();
debug_to_file(&txn, &channel2.borrow(), "debug_bob").unwrap();
txn.write()
.apply_change(&changes, &mut *channel2.write(), &p2)
.unwrap();
let mut it = txn.iter_graph(&channel.graph, None).unwrap();
while let Some(Ok(_)) = txn.next_graph(&channel.graph, &mut it) {
let mut it = txn.read().iter_graph(&channel.graph, None).unwrap();
while let Some(Ok(_)) = txn.read().next_graph(&channel.graph, &mut it) {
let mut it = txn.iter_graph(&channel.graph, None).unwrap();
while let Some(Ok(_)) = txn.next_graph(&channel.graph, &mut it) {
let mut it = txn.read().iter_graph(&channel.graph, None).unwrap();
while let Some(Ok(_)) = txn.read().next_graph(&channel.graph, &mut it) {
let mut channel = txn.open_or_create_channel("main").unwrap();
txn.add_file("a/b/c")?;
record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
txn.add_file("d/e/f")?;
let hd = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
txn.add_file("g/h/i")?;
let hg = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
let channel = txn.write().open_or_create_channel("main").unwrap();
txn.write().add_file("a/b/c", 0)?;
record_all(&mut repo, &changes, &txn, &channel, "")?;
txn.write().add_file("d/e/f", 0)?;
let hd = record_all(&repo, &changes, &txn, &channel, "")?;
txn.write().add_file("g/h/i", 0)?;
let hg = record_all(&repo, &changes, &txn, &channel, "")?;
debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
let inode = crate::fs::find_inode(&txn, "d")?;
let key = txn.get_inodes(&inode, None).unwrap().unwrap();
let inode = crate::fs::find_inode(&*txn.read(), "d")?;
let key = *txn.read().get_inodes(&inode, None).unwrap().unwrap();
let mut channel = txn.open_or_create_channel("main").unwrap();
txn.add_file("a/b/c/d")?;
txn.add_file("e/f/g/h")?;
txn.add_file("i/j/k/l")?;
let mut channel = txn.write().open_or_create_channel("main").unwrap();
txn.write().add_file("a/b/c/d", 0)?;
txn.write().add_file("e/f/g/h", 0)?;
txn.write().add_file("i/j/k/l", 0)?;
let mut channel = txn.open_or_create_channel("main").unwrap();
repo.write_file::<_, std::io::Error, _>("a/b/c/d", |w| {
w.write_all(b"edits\n")?;
Ok(())
})?;
repo.write_file::<_, std::io::Error, _>("e/f/g/h", |w| {
w.write_all(b"edits\n")?;
Ok(())
})?;
record_all(&mut repo, &changes, &mut txn, &mut channel, "a/b/c/d")?
let channel = txn.write().open_or_create_channel("main").unwrap();
repo.write_file("a/b/c/d").unwrap().write_all(b"edits\n")?;
repo.write_file("e/f/g/h").unwrap().write_all(b"edits\n")?;
record_all(&repo, &changes, &txn, &channel, "a/b/c/d")?
let mut channel = txn2.open_or_create_channel("main2").unwrap();
apply::apply_change(&changes, &mut txn2, &mut channel, &h).unwrap();
let channel = txn2.write().open_or_create_channel("main2").unwrap();
apply::apply_change_arc(&changes, &txn2, &channel, &h).unwrap();
let hash = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), prefix)?;
output::output_repository_no_pending(
repo.clone(),
&changes,
txn,
channel.clone(),
"",
true,
None,
1,
0,
)
.unwrap();
let hash = record_all(repo, &changes, txn, channel, prefix)?;
output::output_repository_no_pending(repo, &changes, txn, channel, "", true, None, 1, 0)
.unwrap();
let mut txn_alice = env_alice.mut_txn_begin().unwrap();
let mut channel_alice = txn_alice.open_or_create_channel("main").unwrap();
txn_alice.add_file("file").unwrap();
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
let txn_alice = env_alice.arc_txn_begin().unwrap();
let channel_alice = txn_alice.write().open_or_create_channel("main").unwrap();
txn_alice.write().add_file("file", 0).unwrap();
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
let mut txn_bob = env_bob.mut_txn_begin().unwrap();
let mut channel_bob = txn_bob.open_or_create_channel("main").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let txn_bob = env_bob.arc_txn_begin().unwrap();
let mut channel_bob = txn_bob.write().open_or_create_channel("main").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
repo_bob
.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(bob).unwrap();
Ok(())
})
.unwrap();
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
repo_bob.write_file("file").unwrap().write_all(bob).unwrap();
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
let bob_h2 = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "bob0")?;
let bob_h2 = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
repo_alice.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(alice.as_bytes()).unwrap();
Ok(())
})?
repo_alice
.write_file("file")
.unwrap()
.write_all(alice.as_bytes())
.unwrap();
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug0")?;
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h2)?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h2)?;
crate::unrecord::unrecord(&mut txn_alice, &mut channel_alice, &changes, &bob_h2)?;
crate::unrecord::unrecord(&mut txn_alice, &mut channel_alice, &changes, &bob_h)?;
crate::unrecord::unrecord(
&mut *txn_alice.write(),
&channel_alice,
&changes,
&bob_h2,
0,
)?;
crate::unrecord::unrecord(&mut *txn_alice.write(), &channel_alice, &changes, &bob_h, 0)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1_unrec")?;
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h2)?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h2)?;
&"a\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\ny\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\nf\n"
&"a\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\ny\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\nf\n"
Ok(&">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\ny\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"[..])
Ok(
&">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\ny\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"[..]
)
let _fix_deletion = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
let _fix_deletion = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h).unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h).unwrap();
let mut txn_alice = env_alice.mut_txn_begin().unwrap();
let mut channel_alice = txn_alice.open_or_create_channel("main")?;
txn_alice.add_file("file")?;
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_init").unwrap();
let txn_alice = env_alice.arc_txn_begin().unwrap();
let channel_alice = txn_alice.write().open_or_create_channel("main")?;
txn_alice.write().add_file("file", 0)?;
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut txn_bob = env_bob.mut_txn_begin().unwrap();
let mut channel_bob = txn_bob.open_or_create_channel("main")?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h)?;
let txn_bob = env_bob.arc_txn_begin().unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("main")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h)?;
repo_bob.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(bob).unwrap();
Ok(())
})?;
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "")?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0").unwrap();
repo_bob.write_file("file").unwrap().write_all(bob).unwrap();
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "")?;
repo_alice.write_file::<_, std::io::Error, _>("file", |w| {
w.write_all(alice).unwrap();
Ok(())
})?;
let _alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0").unwrap();
repo_alice
.write_file("file")
.unwrap()
.write_all(alice)
.unwrap();
let _alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel = txn.open_or_create_channel("main").unwrap();
let p = record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
let mut channel = txn.open_or_create_channel("main2").unwrap();
let channel = txn.write().open_or_create_channel("main").unwrap();
let p = record_all(&repo, &changes, &txn, &channel, "").unwrap();
let channel = txn.write().open_or_create_channel("main2").unwrap();
apply::apply_change(&changes, &mut txn, &mut channel, &p)?;
output::output_repository_no_pending(
&mut repo,
&changes,
&mut txn,
&mut channel,
"",
true,
None,
)
.unwrap();
apply::apply_change_arc(&changes, &txn, &channel, &p)?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)
.unwrap();
let mut txn = env.mut_txn_begin().unwrap();
txn.add_file("dir/file").unwrap();
txn.add_file("dir/link").unwrap();
let txn = env.arc_txn_begin().unwrap();
txn.write().add_file("dir/file", 0).unwrap();
txn.write().add_file("dir/link", 0).unwrap();
let mut channel = txn.open_or_create_channel("main").unwrap();
let p = record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
let channel = txn.write().open_or_create_channel("main").unwrap();
let p = record_all(&repo, &changes, &txn, &channel, "").unwrap();
let mut channel = txn.open_or_create_channel("main2").unwrap();
apply::apply_change(&changes, &mut txn, &mut channel, &p)?;
output::output_repository_no_pending(
&mut repo,
&changes,
&mut txn,
&mut channel,
"",
true,
None,
)
.unwrap();
let channel = txn.write().open_or_create_channel("main2").unwrap();
apply::apply_change_arc(&changes, &txn, &channel, &p)?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)
.unwrap();
let mut channel = txn.open_or_create_channel("main").unwrap();
let p = record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
let channel = txn.write().open_or_create_channel("main").unwrap();
let p = record_all(&repo, &changes, &txn, &channel, "").unwrap();
let mut channel = txn.open_or_create_channel("main2").unwrap();
apply::apply_change(&changes, &mut txn, &mut channel, &p)?;
output::output_repository_no_pending(
&mut repo,
&changes,
&mut txn,
&mut channel,
"",
true,
None,
)
.unwrap();
let channel = txn.write().open_or_create_channel("main2").unwrap();
apply::apply_change_arc(&changes, &txn, &channel, &p)?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)
.unwrap();
let mut channel = txn.open_or_create_channel("main").unwrap();
let p = record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
let channel = txn.write().open_or_create_channel("main").unwrap();
let p = record_all(&repo, &changes, &txn, &channel, "").unwrap();
apply::apply_change(&changes, &mut txn, &mut channel, &p)?;
output::output_repository_no_pending(
&mut repo,
&changes,
&mut txn,
&mut channel,
"",
true,
None,
)
.unwrap();
apply::apply_change_arc(&changes, &txn, &channel, &p)?;
output::output_repository_no_pending(&repo, &changes, &txn, &channel, "", true, None, 1, 0)
.unwrap();
txn_alice.add_file(file).unwrap();
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
txn_alice.write().add_file(file, 0).unwrap();
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h)?;
debug_tree(&txn_alice, "debug_tree")?;
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
debug_tree(&*txn_alice.read(), "debug_tree")?;
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h)?;
debug_tree(&txn_alice, "debug_tree")?;
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
debug_tree(&*txn_alice.read(), "debug_tree")?;
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let mut channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
let mut txn_charlie = env_charlie.mut_txn_begin().unwrap();
let mut channel_charlie = txn_charlie.open_or_create_channel("charlie").unwrap();
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &init_h).unwrap();
let txn_charlie = env_charlie.arc_txn_begin().unwrap();
let channel_charlie = txn_charlie
.write()
.open_or_create_channel("charlie")
.unwrap();
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &init_h).unwrap();
txn_charlie.move_file("file1", "file3")?;
let charlie_h = record_all(
&mut repo_charlie,
&changes,
&mut txn_charlie,
&mut channel_charlie,
"",
)
.unwrap();
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie1")?;
txn_charlie.write().move_file("file1", "file3", 0)?;
let charlie_h =
record_all(&repo_charlie, &changes, &txn_charlie, &channel_charlie, "").unwrap();
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &bob_h)?;
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &alice_h)?;
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &bob_h)?;
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &alice_h)?;
txn_charlie.move_file(&files_charlie[1], "file3")?;
let _charlie_solution = record_all(
&mut repo_charlie,
&changes,
&mut txn_charlie,
&mut channel_charlie,
"",
)
.unwrap();
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie3")?;
txn_charlie
.write()
.move_file(&files_charlie[1], "file3", 0)?;
let _charlie_solution =
record_all(&repo_charlie, &changes, &txn_charlie, &channel_charlie, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &charlie_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &charlie_h)?;
let _alice_solution = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
let _alice_solution =
record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &charlie_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h)?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &charlie_h)?;
txn_alice.add_file("a/b/c/file").unwrap();
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
txn_alice.write().add_file("a/b/c/file", 0).unwrap();
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
repo_bob.write_file::<_, std::io::Error, _>("a/b/c/file", |w| {
w.write_all(contents2)?;
Ok(())
})?;
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
repo_bob
.write_file("a/b/c/file")
.unwrap()
.write_all(contents2)?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
let alice_solution = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
let alice_solution = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h)?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_solution)?;
txn_alice.add_file("a/b/c/file").unwrap();
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
txn_alice.write().add_file("a/b/c/file", 0).unwrap();
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
repo_bob.write_file::<_, std::io::Error, _>("a/b/c/file2", |w| {
w.write_all(contents2)?;
Ok(())
})?;
txn_bob.move_file("a/b/c/file", "a/b/c/file2")?;
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
repo_bob
.write_file("a/b/c/file2")
.unwrap()
.write_all(contents2)?;
txn_bob.write().move_file("a/b/c/file", "a/b/c/file2", 0)?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
let alice_solution = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice4")?;
let alice_solution = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h)?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_solution)?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
repo_bob.write_file::<_, std::io::Error, _>("a/b/d/file", |w| {
w.write_all(contents2)?;
Ok(())
})?;
txn_bob.move_file("a/b/c", "a/b/d")?;
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
repo_bob
.write_file("a/b/d/file")
.unwrap()
.write_all(contents2)?;
txn_bob.write().move_file("a/b/c", "a/b/d", 0)?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
let alice_solution = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice4")?;
let alice_solution = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h)?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_solution)?;
let mut repo_alice = working_copy::memory::Memory::new();
let mut repo_bob = working_copy::memory::Memory::new();
let mut repo_charlie = working_copy::memory::Memory::new();
let repo_alice = working_copy::memory::Memory::new();
let repo_bob = working_copy::memory::Memory::new();
let repo_charlie = working_copy::memory::Memory::new();
txn_alice.add_file("a/b/c/file").unwrap();
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
txn_alice.write().add_file("a/b/c/file", 0).unwrap();
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
let mut channel_charlie = txn_charlie.open_or_create_channel("charlie").unwrap();
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &init_h).unwrap();
let channel_charlie = txn_charlie
.write()
.open_or_create_channel("charlie")
.unwrap();
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &init_h).unwrap();
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)
.unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "").unwrap();
repo_bob.write_file::<_, std::io::Error, _>("a/b/c/file", |w| {
w.write_all(contents2)?;
Ok(())
})?;
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
repo_bob
.write_file("a/b/c/file")
.unwrap()
.write_all(contents2)?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
repo_charlie.write_file::<_, std::io::Error, _>("a/b/c/file", |w| {
w.write_all(contents3)?;
Ok(())
})?;
let charlie_h = record_all(
&mut repo_charlie,
&changes,
&mut txn_charlie,
&mut channel_charlie,
"",
)
.unwrap();
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie1")?;
repo_charlie
.write_file("a/b/c/file")
.unwrap()
.write_all(contents3)?;
let charlie_h =
record_all(&repo_charlie, &changes, &txn_charlie, &channel_charlie, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &charlie_h)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h)?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &charlie_h)?;
assert_eq!(conflicts.len(), 5);
match conflicts[0] {
Conflict::ZombieFile { ref path } => assert_eq!(path, "a/b"),
ref c => panic!("unexpected conflict {:#?}", c),
}
let expected = [
Conflict::ZombieFile {
path: "a/b".to_string(),
},
Conflict::ZombieFile {
path: "a/b/c".to_string(),
},
Conflict::ZombieFile {
path: "a/b/c/file".to_string(),
},
Conflict::Zombie {
path: "a/b/c/file".to_string(),
line: 1,
},
];
assert_eq!(&conflicts[..], &expected[..]);
let alice_solution = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
let alice_solution = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &charlie_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h)?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &charlie_h)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
assert_eq!(conflicts.len(), 5);
match conflicts[0] {
Conflict::ZombieFile { ref path } => assert_eq!(path, "a/b"),
ref c => panic!("unexpected conflict {:#?}", c),
}
assert_eq!(conflicts, expected);
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_solution)?;
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &bob_h)?;
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie2")?;
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &bob_h)?;
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &alice_h)?;
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie3")?;
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &alice_h)?;
apply::apply_change(
&changes,
&mut txn_charlie,
&mut channel_charlie,
&alice_solution,
)?;
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie4")?;
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &alice_solution)?;
let mut repo_alice = working_copy::memory::Memory::new();
let mut repo_bob = working_copy::memory::Memory::new();
let mut repo_charlie = working_copy::memory::Memory::new();
let repo_alice = working_copy::memory::Memory::new();
let repo_bob = working_copy::memory::Memory::new();
let repo_charlie = working_copy::memory::Memory::new();
txn_alice.add_file("a/b/c/file").unwrap();
let init_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
txn_alice.write().add_file("a/b/c/file", 0).unwrap();
let init_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
txn_alice.move_file("a/b/c/file", "a/b/c/alice")?;
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
txn_alice
.write()
.move_file("a/b/c/file", "a/b/c/alice", 0)?;
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let mut channel_bob = txn_bob.open_or_create_channel("bob").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("bob").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &init_h).unwrap();
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h).unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &alice_h).unwrap();
let bob_resolution =
record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
let bob_resolution = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "").unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h).unwrap();
apply::apply_change(
&changes,
&mut txn_alice,
&mut channel_alice,
&bob_resolution,
)
.unwrap();
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_h).unwrap();
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &bob_resolution).unwrap();
let mut channel_charlie = txn_charlie.open_or_create_channel("charlie").unwrap();
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &init_h).unwrap();
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &alice_h).unwrap();
let channel_charlie = txn_charlie
.write()
.open_or_create_channel("charlie")
.unwrap();
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &init_h).unwrap();
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &alice_h).unwrap();
let charlie_h = record_all(
&mut repo_charlie,
&changes,
&mut txn_charlie,
&mut channel_charlie,
"",
)
.unwrap();
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie1")?;
let charlie_h =
record_all(&repo_charlie, &changes, &txn_charlie, &channel_charlie, "").unwrap();
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &bob_h).unwrap();
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie2")?;
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &bob_h).unwrap();
apply::apply_change(
&changes,
&mut txn_charlie,
&mut channel_charlie,
&bob_resolution,
)
.unwrap();
debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie3")?;
apply::apply_change_arc(&changes, &txn_charlie, &channel_charlie, &bob_resolution).unwrap();
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &charlie_h).unwrap();
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
apply::apply_change_arc(&changes, &txn_alice, &channel_alice, &charlie_h).unwrap();
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &charlie_h).unwrap();
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
apply::apply_change_arc(&changes, &txn_bob, &channel_bob, &charlie_h).unwrap();
let mut txn_alice = env_alice.mut_txn_begin().unwrap();
let mut channel_alice = txn_alice.open_or_create_channel("main")?;
let txn_alice = env_alice.arc_txn_begin().unwrap();
let channel_alice = txn_alice.write().open_or_create_channel("main")?;
let mut txn_bob = env_bob.mut_txn_begin().unwrap();
let mut channel_bob = txn_bob.open_or_create_channel("main")?;
let txn_bob = env_bob.arc_txn_begin().unwrap();
let channel_bob = txn_bob.write().open_or_create_channel("main")?;
txn_alice.move_file("file", "alice/file").unwrap_or(());
let alice_h = record_all(
&mut repo_alice,
&changes,
&mut txn_alice,
&mut channel_alice,
"",
)?;
debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1").unwrap();
txn_alice
.write()
.move_file("file", "alice/file", 0)
.unwrap_or(());
let alice_h = record_all(&repo_alice, &changes, &txn_alice, &channel_alice, "")?;
let bob_h = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "")?;
debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0").unwrap();
let bob_h = record_all(&repo_bob, &changes, &txn_bob, &channel_bob, "")?;