Open jeffscm opened 8 years ago
I'm also getting the same error with a trivial project. I just created two branches in my local machine and created a small conflict in the scene; then in MERGING state the button shows the same error when clicked, and that too repeatedly. In fact I get three different errors each time I click.
First error:
ArgumentException: An element with the same key already exists in the dictionary.
System.Collections.Generic.Dictionary2[System.Int32,UnityEngine.Object].Add (Int32 key, UnityEngine.Object value) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:404) GitMerge.ObjectDictionaries.AddOurObject (UnityEngine.Object o) (at Assets/GitMerge-for-Unity-master/Editor/ObjectDictionaries.cs:68) GitMerge.ObjectDictionaries.SetAsOurObject (UnityEngine.GameObject go) (at Assets/GitMerge-for-Unity-master/Editor/ObjectDictionaries.cs:54) GitMerge.ObjectDictionaries.SetAsOurObjects (System.Collections.Generic.List
1 objects) (at Assets/GitMerge-for-Unity-master/Editor/ObjectDictionaries.cs:36)
GitMerge.MergeManagerScene.InitializeMerge () (at Assets/GitMerge-for-Unity-master/Editor/MergeManagerScene.cs:37)
GitMerge.GitMergeWindow.OnGUISceneTab () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:128)
GitMerge.GitMergeWindow.OnGUI () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:104)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Second error (on second click): IOException: Win32 IO returned ERROR_ALREADY_EXISTS. Path: System.IO.File.Move (System.String sourceFileName, System.String destFileName) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:337) GitMerge.MergeManager.GetTheirVersionOf (System.String path) (at Assets/GitMerge-for-Unity-master/Editor/MergeManager.cs:56) GitMerge.MergeManagerScene.InitializeMerge () (at Assets/GitMerge-for-Unity-master/Editor/MergeManagerScene.cs:32) GitMerge.GitMergeWindow.OnGUISceneTab () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:128) GitMerge.GitMergeWindow.OnGUI () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:104) System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Third and final error, that repeats each time I click the button: IOException: Win32 IO returned ERROR_ALREADY_EXISTS. Path: System.IO.File.Move (System.String sourceFileName, System.String destFileName) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:337) GitMerge.MergeManager.GetTheirVersionOf (System.String path) (at Assets/GitMerge-for-Unity-master/Editor/MergeManager.cs:56) GitMerge.MergeManagerScene.InitializeMerge () (at Assets/GitMerge-for-Unity-master/Editor/MergeManagerScene.cs:32) GitMerge.GitMergeWindow.OnGUISceneTab () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:128) GitMerge.GitMergeWindow.OnGUI () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:104) System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Sorry I copied the wrong log for the third error; this is the correct trace: IOException: Assets/Scenes\Main--OURS.unity already exists System.IO.File.Copy (System.String sourceFileName, System.String destFileName, Boolean overwrite) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:115) System.IO.File.Copy (System.String sourceFileName, System.String destFileName) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:86) GitMerge.MergeManager.GetTheirVersionOf (System.String path) (at Assets/GitMerge-for-Unity-master/Editor/MergeManager.cs:46) GitMerge.MergeManagerScene.InitializeMerge () (at Assets/GitMerge-for-Unity-master/Editor/MergeManagerScene.cs:32) GitMerge.GitMergeWindow.OnGUISceneTab () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:128) GitMerge.GitMergeWindow.OnGUI () (at Assets/GitMerge-for-Unity-master/Editor/GitMergeWindow.cs:104) System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
The exact details about the conflict:
I created a scene with a "ground" plane and a sphere called "ball". I placed the sphere at (0,1,0) and made both ground and ball as prefabs. Then I created two branches rooted at that point. In the first I moved the ball to (3,1,0) and in the second I moved it to (-3,1,0). I applied the ball to the prefab in both cases and committed. Then I try git merge from the command line (from 1st branch I called git merge <2nd branch>), and as expected, it creates a conflict.
The prefab merging option worked flawlessly; I used the (0,1,0) position value to merge the ball prefab and it worked, no issues; git also reported that the merge was added to commit. But the scene merging button showed the errors that I posted.
Hope these details help in resolving the issue ASAP.
The project has not received any further attention from me ever since Unity 5 broke it in its roots. If you wish to continue development for what is working, please feel free to create a pull request.
After merging and conflicts are set I click the button "Start merging the scene" and get this error:
IOException: Assets/ContentPlayerFiles/my scenes/StarterLoader--OURS.unity already exists System.IO.File.Copy (System.String sourceFileName, System.String destFileName, Boolean overwrite) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.IO/File.cs:115) System.IO.File.Copy (System.String sourceFileName, System.String destFileName) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.IO/File.cs:86) GitMerge.MergeManager.GetTheirVersionOf (System.String path) (at Assets/UnityMerge/GitMerge-for-Unity/Editor/MergeManager.cs:46) GitMerge.MergeManagerScene.InitializeMerge () (at Assets/UnityMerge/GitMerge-for-Unity/Editor/MergeManagerScene.cs:32) GitMerge.GitMergeWindow.OnGUISceneTab () (at Assets/UnityMerge/GitMerge-for-Unity/Editor/GitMergeWindow.cs:128) GitMerge.GitMergeWindow.OnGUI () (at Assets/UnityMerge/GitMerge-for-Unity/Editor/GitMergeWindow.cs:104) System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Any hint how to solve this?