diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListWorker.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListWorker.java index cf8668f1f941..594b35fa0214 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListWorker.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListWorker.java @@ -198,19 +198,19 @@ public class ChangeListWorker { } @NotNull - public LocalChangeList addChangeList(@NotNull String name, @Nullable String comment, @Nullable ChangeListData data) { - return addChangeList(name, comment, false, data); + public LocalChangeList addChangeList(@NotNull String name, @Nullable String comment, @Nullable String id, @Nullable ChangeListData data) { + return addChangeList(name, comment, id, data, false); } @NotNull - private LocalChangeList addChangeList(@NotNull String name, @Nullable String description, boolean inUpdate, - @Nullable ChangeListData data) { + private LocalChangeList addChangeList(@NotNull String name, @Nullable String description, @Nullable String id, + @Nullable ChangeListData data, boolean inUpdate) { if (myMap.containsKey(name)) { LOG.error("Attempt to create duplicate changelist " + name); return myMap.get(name); } - LocalChangeListImpl newList = LocalChangeListImpl.createEmptyChangeListImpl(myProject, name, null); + LocalChangeListImpl newList = LocalChangeListImpl.createEmptyChangeListImpl(myProject, name, id); newList.setCommentImpl(description); newList.setData(data); @@ -734,7 +734,7 @@ public class ChangeListWorker { @NotNull @Override public LocalChangeList addChangeList(@NotNull String name, @Nullable String comment) { - return myWorker.addChangeList(name, comment, true, null).copy(); + return myWorker.addChangeList(name, comment, null, null, true).copy(); } @NotNull diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/local/AddList.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/local/AddList.java index bfead2dc2162..36bb4592530e 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/local/AddList.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/local/AddList.java @@ -42,9 +42,12 @@ public class AddList implements ChangeListCommand { public void apply(final ChangeListWorker worker) { LocalChangeList list = worker.getChangeListByName(myName); if (list == null) { + // Create list with the same id, if we were invoked before (on "temp" worker during CLM update). + String id = myNewListCopy != null ? myNewListCopy.getId() : null; + myWasListCreated = true; myOldComment = null; - myNewListCopy = worker.addChangeList(myName, myComment, myData).copy(); + myNewListCopy = worker.addChangeList(myName, myComment, id, myData).copy(); } else if (StringUtil.isNotEmpty(myComment)) { myWasListCreated = false;