Possible 3.5.2 merge bug

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
jtaylor
Posts: 17
Joined: Thu Feb 02, 2006 1:03 pm

Possible 3.5.2 merge bug

Post by jtaylor » Tue Mar 25, 2008 10:08 am

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

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Tue Mar 25, 2008 3:59 pm

Are these possibly a share?

I'm not sure if I understand the question entirely. The file was originally in two locations under the folder that you merged to a different folder?

jtaylor
Posts: 17
Joined: Thu Feb 02, 2006 1:03 pm

Post by jtaylor » Tue Mar 25, 2008 5:02 pm

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.

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Thu Mar 27, 2008 5:18 pm

Where are you getting the top list from?

What happens if you check the history of Current. Do you have something similar to those 2 paths added in?

frindly
Posts: 3
Joined: Thu Mar 27, 2008 6:07 pm

Post by frindly » Thu Mar 27, 2008 6:09 pm

Hey, I am the user who orginally had this issue.

The top list of checkins is the log for my first set of checkins. I then merged those changes from our current to our MAR08 branch and checked in the result. During the merge 2 of my added files were duplicated in in the MAR08 branch.
Jake

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Fri Mar 28, 2008 12:52 pm

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.

frindly
Posts: 3
Joined: Thu Mar 27, 2008 6:07 pm

Post by frindly » Fri Mar 28, 2008 1:00 pm

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
Jake

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Fri Mar 28, 2008 4:06 pm

Can you select one of those files in the branch and view history on it and post that?

frindly
Posts: 3
Joined: Thu Mar 27, 2008 6:07 pm

History

Post by frindly » Fri Mar 28, 2008 4:32 pm

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 "
Jake

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Fri Mar 28, 2008 4:36 pm

I think taking this offline might be the best bet so I can dig deeper into this. Could you send an email to support at sourcegear.com (attn: Beth) with a link to this thread?

Post Reply