Index: chrome/browser/sync/engine/syncer_util.cc |
diff --git a/chrome/browser/sync/engine/syncer_util.cc b/chrome/browser/sync/engine/syncer_util.cc |
index bf1456e662da5ebf12deedafce8c683dbf9486d9..cf670338048f8349e1b6bc2035b0db2e05bb9532 100644 |
--- a/chrome/browser/sync/engine/syncer_util.cc |
+++ b/chrome/browser/sync/engine/syncer_util.cc |
@@ -333,11 +333,6 @@ UpdateAttemptResponse SyncerUtil::AttemptToUpdateEntry( |
} |
} |
- if (entry->Get(IS_UNSYNCED)) { |
- DVLOG(1) << "Skipping update, returning conflict for: " << id |
- << " ; it's unsynced."; |
- return CONFLICT; |
- } |
if (!entry->Get(SERVER_IS_DEL)) { |
syncable::Id new_parent = entry->Get(SERVER_PARENT_ID); |
Entry parent(trans, GET_BY_ID, new_parent); |
@@ -348,13 +343,13 @@ UpdateAttemptResponse SyncerUtil::AttemptToUpdateEntry( |
// different ways we deal with it once here to reduce the amount of code and |
// potential errors. |
if (!parent.good() || parent.Get(IS_DEL) || !parent.Get(IS_DIR)) { |
- return CONFLICT; |
+ return HIERARCHY_CONFLICT; |
rlarocque
2012/01/31 19:12:17
There is a subtle side-effect to this change, whic
Nicolas Zea
2012/02/01 19:16:19
So I'm clear, the only side effect here is that we
rlarocque
2012/02/02 00:32:56
Yes, that is correct.
|
} |
if (entry->Get(PARENT_ID) != new_parent) { |
if (!entry->Get(IS_DEL) && !IsLegalNewParent(trans, id, new_parent)) { |
DVLOG(1) << "Not updating item " << id |
<< ", illegal new parent (would cause loop)."; |
- return CONFLICT; |
+ return HIERARCHY_CONFLICT; |
} |
} |
} else if (entry->Get(IS_DIR)) { |
@@ -364,10 +359,16 @@ UpdateAttemptResponse SyncerUtil::AttemptToUpdateEntry( |
// If we have still-existing children, then we need to deal with |
// them before we can process this change. |
DVLOG(1) << "Not deleting directory; it's not empty " << *entry; |
- return CONFLICT; |
+ return HIERARCHY_CONFLICT; |
} |
} |
+ if (entry->Get(IS_UNSYNCED)) { |
rlarocque
2012/01/31 19:12:17
This was moved down here because it's important th
|
+ DVLOG(1) << "Skipping update, returning conflict for: " << id |
+ << " ; it's unsynced."; |
+ return CONFLICT; |
+ } |
+ |
if (specifics.has_encrypted()) { |
DVLOG(2) << "Received a decryptable " |
<< syncable::ModelTypeToString(entry->GetServerModelType()) |