Index: chrome/browser/sync/engine/process_commit_response_command.cc |
diff --git a/chrome/browser/sync/engine/process_commit_response_command.cc b/chrome/browser/sync/engine/process_commit_response_command.cc |
old mode 100644 |
new mode 100755 |
index e65a7f1c2a80b519d2ea22233c6cdfa189226d6f..f0fe41367e803ae5b198090c5fd0f07ead875c9d |
--- a/chrome/browser/sync/engine/process_commit_response_command.cc |
+++ b/chrome/browser/sync/engine/process_commit_response_command.cc |
@@ -20,9 +20,6 @@ using syncable::ScopedDirLookup; |
using syncable::WriteTransaction; |
using syncable::MutableEntry; |
using syncable::Entry; |
-using syncable::Name; |
-using syncable::SyncName; |
-using syncable::DBName; |
using std::set; |
using std::vector; |
@@ -124,6 +121,7 @@ void ProcessCommitResponseCommand::ProcessCommitResponse( |
break; |
case CommitResponse::CONFLICT: |
++conflicting_commits; |
+ // This is important to activate conflict resolution. |
session->AddCommitConflict(commit_ids[i]); |
break; |
case CommitResponse::SUCCESS: |
@@ -339,33 +337,15 @@ void ProcessCommitResponseCommand::PerformCommitTimeNameAside( |
syncable::WriteTransaction* trans, |
const CommitResponse_EntryResponse& server_entry, |
syncable::MutableEntry* local_entry) { |
- Name old_name(local_entry->GetName()); |
- |
- // Ensure that we don't collide with an existing entry. |
- SyncName server_name = |
+ PathString old_name = local_entry->Get(syncable::NON_UNIQUE_NAME); |
+ const string server_name = |
SyncerProtoUtil::NameFromCommitEntryResponse(server_entry); |
- LOG(INFO) << "Server provided committed name:" << server_name.value(); |
- if (!server_name.value().empty() && |
- static_cast<SyncName&>(old_name) != server_name) { |
- LOG(INFO) << "Server name differs from local name, attempting" |
- << " commit time name aside."; |
- |
- DBName db_name(server_name.value()); |
- db_name.MakeOSLegal(); |
- |
- // This is going to produce ~1 names instead of (Edited) names. |
- // Since this should be EXTREMELY rare, we do this for now. |
- db_name.MakeNoncollidingForEntry(trans, local_entry->Get(SERVER_PARENT_ID), |
- local_entry); |
- |
- CHECK(!db_name.empty()); |
- |
- LOG(INFO) << "Server commit moved aside entry: " << old_name.db_value() |
- << " to new name " << db_name; |
- |
+ if (!server_name.empty() && old_name != server_name) { |
+ LOG(INFO) << "Server commit moved aside entry: " << old_name |
+ << " to new name " << server_name; |
// Should be safe since we're in a "commit lock." |
- local_entry->PutName(Name::FromDBNameAndSyncName(db_name, server_name)); |
+ local_entry->Put(syncable::NON_UNIQUE_NAME, server_name); |
} |
} |