# # # patch "roster.cc" # from [1c67501f0f7d546ce3231aea6f4bd6fbe7b47c30] # to [7db14504971c5a26a8e5f6ae4726e4a05559be8d] # # patch "roster_merge.cc" # from [a08c52e7db7e3718bf02f3e078d1d771fa184567] # to [796c93fefca45d7d767d073a3a745ed111fe67d2] # ============================================================ --- roster.cc 1c67501f0f7d546ce3231aea6f4bd6fbe7b47c30 +++ roster.cc 7db14504971c5a26a8e5f6ae4726e4a05559be8d @@ -606,6 +606,7 @@ make_pair(root_id, make_pair(root_dir->parent, root_dir->name))); // clear ("reset") the root_dir shared_pointer root_dir.reset(); + I(!has_root()); return root_id; } ============================================================ --- roster_merge.cc a08c52e7db7e3718bf02f3e078d1d771fa184567 +++ roster_merge.cc 796c93fefca45d7d767d073a3a745ed111fe67d2 @@ -306,8 +306,6 @@ c.parent_name = std::make_pair(parent, name); split_path root_sp; file_path().split(root_sp); - // this line will currently cause an abort, because we don't - // support detaching the root node result.roster.detach_node(root_sp); result.rename_target_conflicts.push_back(c); }