# # add_file "tests/t_drop_vs_dropadd.at" # # patch "ChangeLog" # from [5761c2caa715f2af4b1c74862ba2678668614393] # to [50fa8303aeb55d364c932720badca25be590865f] # # patch "change_set.cc" # from [988bf342574bcfcb3cc9a370b450aa9300742c3c] # to [803ba53c5e9aafcbc72169471fec66bcee20e14d] # # patch "tests/t_drop_vs_dropadd.at" # from [] # to [ca2bd0804f09260fff1d6b1c714a1f4cd1c5ea52] # # patch "testsuite.at" # from [27c292ee9a1b44803538b41dcb94b3203f707553] # to [d00c7fd5682d22065ccd27df2b0e2b152c6582c1] # --- ChangeLog +++ ChangeLog @@ -1,3 +1,10 @@ +2005-05-19 Matt Johnston
+ + * change_set.cc (merge_disjoint_analyses): handle the case where + a file is dropped on both sides but re-added on one. + * tests/t_drop_vs_dropadd.at: a test for it + * testsuite.at + 2005-05-19 Derek Scherger * commands.cc (checkout): rearrange to use --revision option --- change_set.cc +++ change_set.cc @@ -2080,7 +2080,8 @@ change_set::delta_map::const_iterator j = b.deltas.find(path_in_b_second); // if the file was deleted in b, we don't want to copy this delta. - if (b.rearrangement.has_deleted_file(path_in_anc)) + if (b.rearrangement.has_deleted_file(path_in_anc) + && !(a.rearrangement.has_added_file(path_in_merged))) { L(F("skipping delta '%s'->'%s' on deleted file '%s'\n") % delta_entry_src(i) % delta_entry_dst(i) % path_in_anc); --- tests/t_drop_vs_dropadd.at +++ tests/t_drop_vs_dropadd.at @@ -0,0 +1,47 @@ + +AT_SETUP([merge(