# # patch "ChangeLog" # from [99443bcc3c4c5e98a1ba170b4ecc5c2f558091c3] # to [d11b78009696ef1f8d66e5612e6222af019668a9] # # patch "pcdv.cc" # from [987bf0dfb85f1e2d26e1e22e85f3f0f9bfd73658] # to [e5afc13109510eba3626bacb2c335c5ea9b479e4] # ======================================================================== --- ChangeLog 99443bcc3c4c5e98a1ba170b4ecc5c2f558091c3 +++ ChangeLog d11b78009696ef1f8d66e5612e6222af019668a9 @@ -1,5 +1,9 @@ 2005-08-20 Timothy Brownawell + * pcdv.cc (change_value): Bugfix. + +2005-08-20 Timothy Brownawell + * change_set.cc: use versioned scalars to track file edits * pcdv.cc (tree_state::current_scalars): bugfix ======================================================================== --- pcdv.cc 987bf0dfb85f1e2d26e1e22e85f3f0f9bfd73658 +++ pcdv.cc e5afc13109510eba3626bacb2c335c5ea9b479e4 @@ -1017,6 +1017,7 @@ // } std::vector newleaves, badleaves; newleaves.push_back(rev); + bool changed = false; for (vector::const_iterator i = leaves.begin(); i != leaves.end(); ++i) { @@ -1024,14 +1025,19 @@ I(j != ver.end()); if (j->second.first == val) newleaves.push_back(*i); - else if (*i != rev) - badleaves.push_back(*i); + else + { + changed = true; + if (*i != rev) + badleaves.push_back(*i); + } } if (i != ver.end()) ver.erase(i); ver.insert(make_pair(rev, make_pair(val, badleaves))); - if (badleaves.empty()) + if (!changed) newleaves.erase(newleaves.begin()); + I(!newleaves.empty()); return newleaves; }