# # # patch "mtn_cvs/cvs_sync.cc" # from [e30870816eff3220a2c8c47fc6e0801896f9c76d] # to [bd02188bc4a782bfe675dddee09d42765ee64e49] # # patch "mtn_cvs/tests/push_multiple/__driver__.lua" # from [c5299adb07a92fc9e06faebe77089ee7b85dfaf3] # to [ea930cd2399c73f757ba059f610f7bb9642f5da6] # ============================================================ --- mtn_cvs/cvs_sync.cc e30870816eff3220a2c8c47fc6e0801896f9c76d +++ mtn_cvs/cvs_sync.cc bd02188bc4a782bfe675dddee09d42765ee64e49 @@ -1104,6 +1104,15 @@ std::set::iterator cvs_reposit } else W(F("revision %s: nothing to commit") % e.revision.inner()()); + // make sure any files we didn't touch get copied into this revision + // this is probably not very efficient... duh + for (cvs_manifest::const_iterator i = parent_manifest.begin(); i != parent_manifest.end(); i++) { + if (e.xfiles.find(i->first) == e.xfiles.end()) { + // this file is totally unchanged from out parent - copy it across + e.xfiles[i->first] = i->second; + } + } + e.delta_base=parent->revision; revision_lookup[e.revision]=edges.insert(e).first; if (global_sanity.debug) L(FL("%s") % debug()); ============================================================ --- mtn_cvs/tests/push_multiple/__driver__.lua c5299adb07a92fc9e06faebe77089ee7b85dfaf3 +++ mtn_cvs/tests/push_multiple/__driver__.lua ea930cd2399c73f757ba059f610f7bb9642f5da6 @@ -11,12 +11,6 @@ check(indir("cvstemp", cvs("import","-m" writefile("cvstemp/B","B\n") check(indir("cvstemp", cvs("import","-m","initial import", "test", "vendor_tag", "initial_import")), 0, false, false) -check(cvs("co", "test"), 0, false, false) -rename("test", "cvs-test") -writefile("cvs-test/A", "cvs A\n") -writefile("cvs-test/B", "cvs B\n") -check(indir("cvs-test", cvs("co", "test")), 0, false, false) - -- change the repository in various ways check(mtn_cvs("--branch=testbranch","pull",cvsroot,"test"),0, false,false) check(mtn("co","--branch=testbranch","testbr"),0, false, false) @@ -31,6 +25,6 @@ check(mtn_cvs("--branch=testbranch","pus check(mtn_cvs("--branch=testbranch","push"),0, true, true) +check(cvs("co", "test"), 0, false, false) +check(sha1("test/A") == tsha1) +check(sha1("test/B") == tsha2) -check(indir("cvs-test", cvs("up")), 0, false, false) -check(sha1("cvs-test/A") == tsha1) -check(sha1("cvs-test/B") == tsha2)