[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-commits-diffs] net.venge.monotone.issue-209: 54a1b63d943a9d445
From: |
code |
Subject: |
[Monotone-commits-diffs] net.venge.monotone.issue-209: 54a1b63d943a9d445b3fdf33d80e5f9b66d659b1 |
Date: |
Sat, 9 Jun 2012 17:32:34 +0200 (CEST) |
revision: 54a1b63d943a9d445b3fdf33d80e5f9b66d659b1
date: 2012-06-09T12:46:42
author: address@hidden
branch: net.venge.monotone.issue-209
changelog:
resolve_dropped_modified_conflicts: fix minor bugs
* src/merge_conflict.cc (resolve_dropped_modified_conflicts): improve message,
keep the right version.
* test/func/resolve_conflicts_dropped_modified/__driver__.lua: verify right
version got kept
* test/func/resolve_conflicts_dropped_modified_2/__driver__.lua: fix typo in
last merge
manifest:
format_version "1"
new_manifest [bdcab84401ee4e9128d5bd878ef843dc0ffc6137]
old_revision [c67426e491a95c2cb764d5315442d81843bf82e8]
patch "src/merge_conflict.cc"
from [4269fe13d0992982ea99d03c27383830f2e8e381]
to [71bce0c9082087835e6e7039391eaaeb0a03f3e7]
patch "test/func/resolve_conflicts_dropped_modified/__driver__.lua"
from [ae5cc1ba521c8721d36ba4fd8b9c11238d719cae]
to [fd9589d3d00616a563113e170e278e5db573da5b]
patch "test/func/resolve_conflicts_dropped_modified_2/__driver__.lua"
from [49e72adbb370c1cdd117a8e1facf86777d039a47]
to [a477e8cd203c4b69b5662e36cfd32a24b57cb16f]
============================================================
--- src/merge_conflict.cc 4269fe13d0992982ea99d03c27383830f2e8e381
+++ src/merge_conflict.cc 71bce0c9082087835e6e7039391eaaeb0a03f3e7
@@ -2854,10 +2854,10 @@ roster_merge_result::resolve_dropped_mod
break;
case resolve_conflicts::keep:
- P(F("keeping '%s'") % modified_name);
-
if (conflict.recreated == the_null_node)
{
+ P(F("keeping '%s'") % modified_name);
+
// We'd like to just attach_node here, but that violates a
// fundamental design principle of mtn; nodes are born once,
// and die once. If we attach here, the node is born, died,
@@ -2873,8 +2873,20 @@ roster_merge_result::resolve_dropped_mod
}
else
{
+ P(F("keeping '%s' from %s") % modified_name % ((conflict.left_nid == the_null_node) ? "right" : "left"));
+
roster.drop_detached_node(nid);
- // Nothing else to do.
+
+ // keep the modified content, not the recreated content
+ file_data parent_data, result_data;
+ adaptor.get_version(recreated_fid, parent_data);
+
+ adaptor.get_version(modified_fid, result_data);
+
+ file_t result_node = downcast_to_file_t(roster.get_node_for_update(conflict.recreated));
+ result_node->content = modified_fid;
+
+ adaptor.record_file(recreated_fid, modified_fid, parent_data, result_data);
}
break;
============================================================
--- test/func/resolve_conflicts_dropped_modified/__driver__.lua ae5cc1ba521c8721d36ba4fd8b9c11238d719cae
+++ test/func/resolve_conflicts_dropped_modified/__driver__.lua fd9589d3d00616a563113e170e278e5db573da5b
@@ -345,8 +345,11 @@ check(samelines("stderr",
check(samelines("stderr",
{"mtn: [left] fd12d8fb1973814d7756bae60c668b9c82364b59",
"mtn: [right] 74ded9748ae7ee457a83a8d8a7dd0ffac93b13af",
- "mtn: keeping 'file_10'",
+ "mtn: keeping 'file_10' from left",
"mtn: replacing content of 'file_11' with '_MTN/resolutions/file_11'",
- "mtn: [merged] 4da275122e0592217634c4d23838284cc570681a"}))
+ "mtn: [merged] 146a0f04f7f1d015976a10ab6a0c7164f0789ac7"}))
+check(mtn("update"), 0, nil, true)
+check(samelines("file_10", {"file_10 left"}))
+
-- end of file
============================================================
--- test/func/resolve_conflicts_dropped_modified_2/__driver__.lua 49e72adbb370c1cdd117a8e1facf86777d039a47
+++ test/func/resolve_conflicts_dropped_modified_2/__driver__.lua a477e8cd203c4b69b5662e36cfd32a24b57cb16f
@@ -76,11 +76,14 @@ check(samelines
"mtn: dropped and recreated on the right",
"mtn: 1 conflict with supported resolutions."}))
-check(mtn("conflicts", "store", left_1, right_1), 0, nil, true)
+check(mtn("conflicts", "store", left_2, right_2), 0, nil, true)
check(mtn("conflicts", "resolve_first", "keep"), 0, nil, true)
-check(mtn("explicit_merge", "--resolve-conflicts", left_1, right_1, "testbranch"), 0, nil, true)
-check(qgrep("mtn: keeping 'file_2'", "stderr"))
+check(mtn("explicit_merge", "--resolve-conflicts", left_2, right_2, "testbranch"), 0, nil, true)
+check(qgrep("mtn: keeping 'file_2' from left", "stderr"))
+check(mtn("update"), 0, nil, true)
+check(samelines("file_2", {"file_2 left 2"}))
+
-- end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-commits-diffs] net.venge.monotone.issue-209: 54a1b63d943a9d445b3fdf33d80e5f9b66d659b1,
code <=