monotone-commits-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-commits-diffs] net.venge.monotone.issue-209.file_attribute: 5f


From: code
Subject: [Monotone-commits-diffs] net.venge.monotone.issue-209.file_attribute: 5f1a37961aa88c114e0ad40d8dd09a2d1b2e9f81
Date: Tue, 19 Jun 2012 13:44:29 +0200 (CEST)

revision:            5f1a37961aa88c114e0ad40d8dd09a2d1b2e9f81
date:                2012-06-19T11:43:55
author:              address@hidden
branch:              net.venge.monotone.issue-209.file_attribute
changelog:
* src/merge_content.cc (resolve_merge_conflicts): require --resolve_conflicts 
for all conflicts except dropped_modified. Still not quite right; don't get 
proper report of conflict from merge commands, just "no resolution specified"

manifest:
format_version "1"

new_manifest [c0646258965dcbc33e6128d6ab3955de513ad76d]

old_revision [6644cff8fa909e1b9d69554b60d473571f1ad135]

patch "src/merge_content.cc"
 from [acce6123a6becddeb69fd81221d85be2b372252d]
   to [3cc3b3f391b7ac369cd6f9ef7afb364178b4fe35]
============================================================
--- src/merge_content.cc	acce6123a6becddeb69fd81221d85be2b372252d
+++ src/merge_content.cc	3cc3b3f391b7ac369cd6f9ef7afb364178b4fe35
@@ -722,29 +722,38 @@ resolve_merge_conflicts(lua_hooks & lua,
     {
       result.log_conflicts();
 
-      // Apply any conflict resolutions. If the user did not specify
-      // --resolve_conflicts, there may still be some specified by attr
-      // mtn:resolve_conflict.
+      if (resolutions_given)
+        {
+          // If there are any conflicts for which we don't currently support
+          // resolutions, give a nice error message.
+          char const * const msg = "conflict resolution for %s not yet supported";
 
-      char const * const msg = "conflict resolution for %s not yet supported";
+          E(!result.missing_root_conflict, origin::user,
+            F(msg) % "missing_root_dir");
+          E(result.invalid_name_conflicts.size() == 0, origin::user,
+            F(msg) % "invalid_name_conflicts");
+          E(result.directory_loop_conflicts.size() == 0, origin::user,
+            F(msg) % "directory_loop_conflicts");
+          E(result.multiple_name_conflicts.size() == 0, origin::user,
+            F(msg) % "multiple_name_conflicts");
+          E(result.attribute_conflicts.size() == 0, origin::user,
+            F(msg) % "attribute_conflicts");
 
-      E(!result.missing_root_conflict, origin::user,
-        F(msg) % "missing_root_dir");
-      E(result.invalid_name_conflicts.size() == 0, origin::user,
-        F(msg) % "invalid_name_conflicts");
-      E(result.directory_loop_conflicts.size() == 0, origin::user,
-        F(msg) % "directory_loop_conflicts");
-      E(result.multiple_name_conflicts.size() == 0, origin::user,
-        F(msg) % "multiple_name_conflicts");
-      E(result.attribute_conflicts.size() == 0, origin::user,
-        F(msg) % "attribute_conflicts");
+          // Resolve the ones we can, if they have resolutions specified. Each
+          // conflict list is deleted once all are resolved.
+          result.resolve_orphaned_node_conflicts(lua, left_roster, right_roster, adaptor);
+          result.resolve_dropped_modified_conflicts(lua, left_roster, right_roster, adaptor, nis);
+          result.resolve_duplicate_name_conflicts(lua, left_roster, right_roster, adaptor);
 
-      // Resolve the ones we can, if they have resolutions specified. Each
-      // conflict list is deleted once all are resolved.
-      result.resolve_orphaned_node_conflicts(lua, left_roster, right_roster, adaptor);
-      result.resolve_dropped_modified_conflicts(lua, left_roster, right_roster, adaptor, nis);
-      result.resolve_duplicate_name_conflicts(lua, left_roster, right_roster, adaptor);
-      result.resolve_file_content_conflicts(lua, left_roster, right_roster, adaptor);
+          result.resolve_file_content_conflicts (lua, left_roster, right_roster, adaptor);
+        }
+      else
+        {
+          // The user did not specify --resolve_conflicts, but there may
+          // still be some specified by attr mtn:resolve_conflict. Only
+          // these conflicts support that so far.
+          result.resolve_dropped_modified_conflicts(lua, left_roster, right_roster, adaptor, nis);
+        }
     }
 
   if (result.has_non_content_conflicts())

reply via email to

[Prev in Thread] Current Thread [Next in Thread]