#
# patch "ChangeLog"
# from [1dc7b6c7e44de2ac653f2767618f843f9ec84975]
# to [045666a0fe3195fdfc0107d235b5a900215f957d]
#
# patch "commands.cc"
# from [b5da86e6f37b0e8e2d5562077d0dc93561c2318b]
# to [ac86cacd256f60c6d646f5fd4e9b747fd962838c]
#
========================================================================
--- ChangeLog 1dc7b6c7e44de2ac653f2767618f843f9ec84975
+++ ChangeLog 045666a0fe3195fdfc0107d235b5a900215f957d
@@ -1,5 +1,9 @@
2005-08-22 Timothy Brownawell
+ * commands.cc: remove tree merger from the pcdv test driver
+
+2005-08-22 Timothy Brownawell
+
* change_set.cc (process_filetree_history): Only go back to the lcad.
Prehistory isn't needed for merging, and slows things down a lot.
========================================================================
--- commands.cc b5da86e6f37b0e8e2d5562077d0dc93561c2318b
+++ commands.cc ac86cacd256f60c6d646f5fd4e9b747fd962838c
@@ -3864,162 +3864,6 @@
}
}
-void
-prdiff(change_set::path_rearrangement const & a,
- change_set::path_rearrangement const & b)
-{
- std::set::const_iterator sa, sb;
- std::map::const_iterator ma, mb;
-
- sa = a.deleted_files.begin();
- sb = b.deleted_files.begin();
- while (sa != a.deleted_files.end() || sb != b.deleted_files.end())
- {
- if (sa == a.deleted_files.end())
- {
- P(F("> delete_file %1%") % *sb);
- ++sb;
- }
- else if (sb == b.deleted_files.end())
- {
- P(F("< delete_file %1%") % *sa);
- ++sa;
- }
- else if (*sa < *sb)
- {
- P(F("< delete_file %1%") % *sa);
- ++sa;
- }
- else if (*sb < *sa)
- {
- P(F("> delete_file %1%") % *sb);
- ++sb;
- }
- else
- ++sa, ++sb;
- }
-
- sa = a.deleted_dirs.begin();
- sb = b.deleted_dirs.begin();
- while (sa != a.deleted_dirs.end() || sb != b.deleted_dirs.end())
- {
- if (sa == a.deleted_dirs.end())
- {
- P(F("> delete_dir %1%") % *sb);
- ++sb;
- }
- else if (sb == b.deleted_dirs.end())
- {
- P(F("< delete_dir %1%") % *sa);
- ++sa;
- }
- else if (*sa < *sb)
- {
- P(F("< delete_dir %1%") % *sa);
- ++sa;
- }
- else if (*sb < *sa)
- {
- P(F("> delete_dir %1%") % *sb);
- ++sb;
- }
- else
- ++sa, ++sb;
- }
-
- sa = a.added_files.begin();
- sb = b.added_files.begin();
- while (sa != a.added_files.end() || sb != b.added_files.end())
- {
- if (sa == a.added_files.end())
- {
- P(F("> add_file %1%") % *sb);
- ++sb;
- }
- else if (sb == b.added_files.end())
- {
- P(F("< add_file %1%") % *sa);
- ++sa;
- }
- else if (*sa < *sb)
- {
- P(F("< add_file %1%") % *sa);
- ++sa;
- }
- else if (*sb < *sa)
- {
- P(F("> add_file %1%") % *sb);
- ++sb;
- }
- else
- ++sa, ++sb;
- }
-
- ma = a.renamed_files.begin();
- mb = b.renamed_files.begin();
- while (ma != a.renamed_files.end() || mb != b.renamed_files.end())
- {
- if (ma == a.renamed_files.end())
- {
- P(F("> rename_file %1%") % mb->first);
- P(F("> to %1%") % mb->second);
- ++mb;
- }
- else if (mb == b.renamed_files.end())
- {
- P(F("< rename_file %1%") % ma->first);
- P(F("> to %1%") % ma->second);
- ++ma;
- }
- else if (*ma < *mb)
- {
- P(F("< rename_file %1%") % ma->first);
- P(F("> to %1%") % ma->second);
- ++ma;
- }
- else if (*mb < *ma)
- {
- P(F("> rename_file %1%") % mb->first);
- P(F("> to %1%") % mb->second);
- ++mb;
- }
- else
- ++ma, ++mb;
- }
-
- ma = a.renamed_dirs.begin();
- mb = b.renamed_dirs.begin();
- while (ma != a.renamed_dirs.end() || mb != b.renamed_dirs.end())
- {
- if (ma == a.renamed_dirs.end())
- {
- P(F("> rename_dir %1%") % mb->first);
- P(F("> to %1%") % mb->second);
- ++mb;
- }
- else if (mb == b.renamed_dirs.end())
- {
- P(F("< rename_dir %1%") % ma->first);
- P(F("> to %1%") % ma->second);
- ++ma;
- }
- else if (*ma < *mb)
- {
- P(F("< rename_dir %1%") % ma->first);
- P(F("> to %1%") % ma->second);
- ++ma;
- }
- else if (*mb < *ma)
- {
- P(F("> rename_dir %1%") % mb->first);
- P(F("> to %1%") % mb->second);
- ++mb;
- }
- else
- ++ma, ++mb;
- }
-}
-
CMD(pcdv, "debug", "REVISION REVISION FILENAME",
"precise-cdv merge FILENAME in the two given revisions",
OPT_NONE)
@@ -4059,50 +3903,10 @@
map files;
file_state empty(file_state::new_file());
file_state p(empty);
- std::map trees;
- tree_state emptytree(tree_state::new_tree());
bool found_right = false;
bool found_left = false;
while (!roots.empty() && !(found_right && found_left))
{
- revision_set rs;
- app.db.get_revision(roots.front(), rs);
- std::vector treevec;
- std::vector revec;
- for (edge_map::const_iterator i = rs.edges.begin();
- i != rs.edges.end(); ++i)
- {
- tree_state from(emptytree);
- if (edge_old_revision(i) == revision_id())
- from = emptytree;
- else
- {
- std::map::iterator
- j = trees.find(edge_old_revision(i));
- I(j != trees.end());
- from = j->second;
- }
- treevec.push_back(from);
- revec.push_back(edge_changes(i).rearrangement);
- }
- tree_state newtree(tree_state::merge_with_rearrangement(treevec, revec,
- roots.front().inner()()));
- if (rs.edges.size() > 1)
- for (unsigned int i = 0; i != rs.edges.size(); ++i)
- {
- std::set res;
- change_set::path_rearrangement changes;
- idx(treevec, i).get_changes_for_merge(newtree, changes);
- if (!(idx(revec, i) == changes))
- {
-// P(F("From parent #%1% to %2%") % i % roots.front());
-// P(F("Real vs. calc"));
-// prdiff(idx(revec, i), changes);
-// I(false);
- }
- }
- trees.insert(make_pair(roots.front(), newtree));
-
std::map >::const_iterator
i(fileids.find(roots.front()));
if (i != fileids.end())
@@ -4153,7 +3957,6 @@
&& right.inner()() != i->inner()())
{
files.erase(*i);
- trees.erase(*i);
}
}
}
@@ -4168,52 +3971,6 @@
roots.pop_front();
}
- std::map::const_iterator lt(trees.find(left));
- std::map::const_iterator rt(trees.find(right));
- I(lt != trees.end());
- I(rt != trees.end());
- std::vector conf(lt->second.conflict(rt->second));
-/*
- std::vector > t(lt->second.current());
- for (std::vector >::const_iterator
- i = t.begin(); i != t.end(); ++i)
- {
- P(F("%1%: %2%") % i->first % i->second);
- }
-*/
- P(F("There are %1% conflicts:") % conf.size());
- for (std::vector::const_iterator i = conf.begin();
- i != conf.end(); ++i)
- {
- P(F("Type: %1%") % ((i->type == path_conflict::collision)
- ?"Collision":"Split"));
- for (unsigned int j = 0; j < i->items.size(); ++j)
- {
- P(F("Item %1%:") % idx(i->items, j));
- P(F("Lname: %1%") % idx(i->lnames, j));
- P(F("Rname: %1%") % idx(i->rnames, j));
- }
- P(F("Name: %1%") % i->name);
- }
- if (conf.empty())
- {
- std::set res;
- std::vector parents;
- parents.push_back(lt->second);
- parents.push_back(rt->second);
- change_set::path_rearrangement changes;
- data dat;
- tree_state mt(tree_state::merge_with_resolution(parents, res, "xxx"));
- lt->second.get_changes_for_merge(mt, changes);
-// P(F("Left changes:"));
-// write_path_rearrangement(changes, dat);
-// P(F("%1%") % dat);
- rt->second.get_changes_for_merge(mt, changes);
-// P(F("Right changes:"));
-// write_path_rearrangement(changes, dat);
-// P(F("%1%") % dat);
- }
-
map::iterator l = files.find(left);
N(l != files.end(), F("Not found: %s.") % left);
map::iterator r = files.find(right);