Possible 3.5.2 merge bug
Moderator: SourceGear
Possible 3.5.2 merge bug
We saw some strange behavior from merge today - a merge where added files were duplicated. From the user who encountered the issue (our main trunk is "Current" and the live build is called "mar08"):
"I did a merge from current to mar08 and then checked in the result. I was separating out the results (copied directly from the log below) and found that when it merged, it added the ShowAdultAccountRule.cs and ShowAdultAccountRuleTestCase.cs in two locations -- it copied each to the folder of the other in march code.
[3/25/2008 8:41:01 AM] Preparing data to begin transaction
[3/25/2008 8:41:01 AM] Beginning transaction
[3/25/2008 8:41:01 AM] Check in $/Current/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:41:01 AM] Check in $/Current/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:41:01 AM] Check in $/Current/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:41:01 AM] Check in $/Current/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:41:01 AM] Check in $/Current/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:41:01 AM] Ending the transaction
[3/25/2008 8:41:04 AM] Transaction completed successfully
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:43:04 AM] Fetched Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Preparing data to begin transaction
[3/25/2008 8:45:18 AM] Beginning transaction
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Check in $/MAR08/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:45:18 AM] Check in $/MAR08/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:45:18 AM] Check in $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:45:18 AM] Check in $/MAR08/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:45:18 AM] Check in $/MAR08/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:45:18 AM] Ending the transaction
[3/25/2008 8:45:20 AM] Transaction completed successfully"
I asked if there was anything unusual about the files that got duplicated, and got this reply:
"[They are] just standard files added implicitly by adding their parent folder - rule was a new folder in both the UnitTests and Production areas ... you can see the createfolder in both locations in the log"
Please let me know what additional information you'd like (or if this is a known issue).
Thanks!
Jason Taylor
"I did a merge from current to mar08 and then checked in the result. I was separating out the results (copied directly from the log below) and found that when it merged, it added the ShowAdultAccountRule.cs and ShowAdultAccountRuleTestCase.cs in two locations -- it copied each to the folder of the other in march code.
[3/25/2008 8:41:01 AM] Preparing data to begin transaction
[3/25/2008 8:41:01 AM] Beginning transaction
[3/25/2008 8:41:01 AM] Check in $/Current/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:41:01 AM] Check in $/Current/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:41:01 AM] Check in $/Current/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:41:01 AM] Check in $/Current/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:41:01 AM] Check in $/Current/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:41:01 AM] Ending the transaction
[3/25/2008 8:41:04 AM] Transaction completed successfully
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:43:03 AM] Fetched Current/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:43:03 AM] Fetched Current/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:43:04 AM] Fetched Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Preparing data to begin transaction
[3/25/2008 8:45:18 AM] Beginning transaction
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Check in $/MAR08/UnitTests/Utils/WebMD.UnitTests.Utils.csproj
[3/25/2008 8:45:18 AM] Check in $/MAR08/UnitTests/Libraries/Registration/WebMD.UnitTests.Registration.csproj
[3/25/2008 8:45:18 AM] Check in $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreatorTestCase.cs
[3/25/2008 8:45:18 AM] Check in $/MAR08/Production/Libraries/Registration/WebMD.Registration.csproj
[3/25/2008 8:45:18 AM] Check in $/MAR08/Production/Libraries/Registration/FamilyAccess/View/ChangeUserViewCreator.cs
[3/25/2008 8:45:18 AM] Ending the transaction
[3/25/2008 8:45:20 AM] Transaction completed successfully"
I asked if there was anything unusual about the files that got duplicated, and got this reply:
"[They are] just standard files added implicitly by adding their parent folder - rule was a new folder in both the UnitTests and Production areas ... you can see the createfolder in both locations in the log"
Please let me know what additional information you'd like (or if this is a known issue).
Thanks!
Jason Taylor
Not shares (that's what I thought at first). What happened was a merge from Current to MAR08. Look at the adds in current, and what the adds turn into in MAR08.
Here are the current adds:
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
and here are the merged MAR08 adds:
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
The bold ones are wrong - they should not be there.
Here are the current adds:
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:41:01 AM] Create folder $/Current/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:41:01 AM] Add $/Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
and here are the merged MAR08 adds:
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
[3/25/2008 8:45:18 AM] Add $/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRuleTestCase.cs
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess
[3/25/2008 8:45:18 AM] Create folder $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule
[3/25/2008 8:45:18 AM] Add $/MAR08/UnitTests/Utils/Registration/FamilyAccess/Rule/MockShowAdultAccountRule.cs
The bold ones are wrong - they should not be there.
Those two files though are in different locations. Look at the two folders Production and Unit Test. The one instance of the file ShowAdultAccountRule.cs being added was under Production and the other was under Unit Tests. It's the same case for ShowAdultAccountRuleTestCase.cs. Check your history. You should show an add somewhere in the for each of those files under both Production and Unit Test.
If this isn't the case, then we should take this offline so I can see it first hand, or I'd need exact instructions so I can reproduce it.
If this isn't the case, then we should take this offline so I can see it first hand, or I'd need exact instructions so I can reproduce it.
Hey Beth,
That is the problem, there were no adds in the reverse locations on live, somehow the merge process produced two additional add file commands. I don't know how to reproduce the problem, this is the only time I've seen it. If there is any more information I can give you please contact me.
Jake
That is the problem, there were no adds in the reverse locations on live, somehow the merge process produced two additional add file commands. I don't know how to reproduce the problem, this is the only time I've seen it. If there is any more information I can give you please contact me.
Jake
Jake
History
Sure here you go:
Here is the history for the file
$/Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
"name","user","date","version","action","comment"
"ShowAdultAccountRule.cs","jhall","3/25/2008 8:41:02 AM","1","Created","103528 - restoring wmHideImplicitAdultDependents behavior"
Here is the history for the correct version created in the merge to MAR08
$/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs:
"name","user","date","version","action","comment"
"ShowAdultAccountRule.cs","jhall","3/25/2008 8:45:18 AM","1","Created","Merge Branches: Origin=$/Current Version: 113938 103528 - restoring wmHideImplicitAdultDependents behavior "
And here is the history for the version created in the merge to MAR08 in the incorrect location.
$/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs:
"name","user","date","version","action","comment"
"ShowAdultAccountRule.cs","jhall","3/25/2008 8:45:18 AM","1","Created","Merge Branches: Origin=$/Current Version: 113938 103528 - restoring wmHideImplicitAdultDependents behavior "
Here is the history for the file
$/Current/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs
"name","user","date","version","action","comment"
"ShowAdultAccountRule.cs","jhall","3/25/2008 8:41:02 AM","1","Created","103528 - restoring wmHideImplicitAdultDependents behavior"
Here is the history for the correct version created in the merge to MAR08
$/MAR08/Production/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs:
"name","user","date","version","action","comment"
"ShowAdultAccountRule.cs","jhall","3/25/2008 8:45:18 AM","1","Created","Merge Branches: Origin=$/Current Version: 113938 103528 - restoring wmHideImplicitAdultDependents behavior "
And here is the history for the version created in the merge to MAR08 in the incorrect location.
$/MAR08/UnitTests/Libraries/Registration/FamilyAccess/Rule/ShowAdultAccountRule.cs:
"name","user","date","version","action","comment"
"ShowAdultAccountRule.cs","jhall","3/25/2008 8:45:18 AM","1","Created","Merge Branches: Origin=$/Current Version: 113938 103528 - restoring wmHideImplicitAdultDependents behavior "
Jake