index > Team Foundation Server - Version Control > Merging Visual Studio solution/project files

Merging Visual Studio solution/project files


As much of the power of VSTS's new version control is the ability to merge all or parts of files across branches, I am suprised to be running into what seems to be a bit of a showstopper to my whole source control strategy.

I have various 'project' branches that were created from a mainline (lets say at the same time), so that work on the same system can be carried out in parallel but in isolation. Both 'projects' make changes to the same solution file. At the point at which both projects want to formally release their work, they both need to merge their respective changes back into the mainline.

The problem is that the sln file actually numbers each visual studio project that it contains and even has a count of the number pf vs projects in the source control section of the sln file, here is an example snippet:

GlobalSection(TeamFoundationVersionControl) = preSolution

SccNumberOfProjects = 24

SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}

SccTeamFoundationServer = xxxxxx

SccLocalPath0 = .

SccProjectUniqueName1 = Exweb\\Integration\\OrigoListener\\Setup\\OrigoListener.Setup\\OrigoListener.Setup.vbproj

SccProjectTopLevelParentUniqueName1 = Exweb.sln

SccProjectName1 = Exweb/Integration/OrigoListener/Setup/OrigoListener.Setup

SccLocalPath1 = Exweb\\Integration\\OrigoListener\\Setup\\OrigoListener.Setup

SccProjectUniqueName2 = Exweb\\Origo\\OrigoAssist\\Setup\\OrigoAssist.Setup\\OrigoAssist.Setup.vbproj

SccProjectTopLevelParentUniqueName2 = Exweb.sln

SccProjectName2 = Exweb/Origo/OrigoAssist/Setup/OrigoAssist.Setup

SccLocalPath2 = Exweb\\Origo\\OrigoAssist\\Setup\\OrigoAssist.Setup

.....

Now clearly if both projects add new vs projects to the same vs solution, the numbering given to each project and the count cannot be merged. Any thoughts?!

simon burgess
Well, the problem is more that they will
Richard Berg MSFT
I guess that would be true but for the fact that my system contains a couple of very large solution files - this way the build process only needs to build one or 2 solution files and build order dependencies are taken care of by developers up front in the solution file itself, rather than lots of solution files and the solution order issue being a messy task in updating the tfsbuild.proj file. It seems odd with all the GUIDs stored in the solution file that a numbering system needs to be persisted in the sln file (obviously I realise this is not going to change). But its not a trivial task in my scenario as you suggest
simon burgess

Simon,

I think you raise very painful point; I have found that it is very important when performing merges to check whether any solution/project files were merged. As generally there are no conflicts to resolve, I just manually review the merged solution/project before checking them in, to make sure that automatic merge changes make sense. It is not very elegant and certainly not automated, but much better than to discover that after merge the solution is broken.

I am curious how did you solve that issue. Any insights?

Thanks beforehand,

Eugene




Blog at http://teamfoundation.blogspot.com
eugene.z
I dont have any pearls of wisdom I'm afraid. I rely heavily on merge for my whole promotion and deployment process and unfortunately there are lots of issues with merge which means the real nature of change is getting obscured where needless merge operations are carried out despite identical source and target files - so even spotting merges in proj and sln files is a very laborious process for me :(
simon burgess
reply 5

You can use google to search for other answers

 

More Articles

Cannot Delete or Move
Merge / commit not committing all pending changes
How to get the content of changeset using Object Model
Error in VS2005 on Get Latest command
Modest request regarding refreshes
Migration error TF60096 - false alarm??
Missing Button Graphics/Text in Difference and Merge Tools
Adapting source control to non-conformant directory hierarchy
New Team Foundation Server MSSCCI Provider Available Now!
branch on a label
Welcome to Bokebb   New Update   Joins the collection  
 

New Articles

Get Specific Version using Force Get Fla…
Changeset for files from different folders
Build checks out and locks local project…
Synchronizing current file in Solution E…
Exporting files with check in date
Object reference not set to an instance …
Use of Visual Studio 2005 Team Foundatio…
Can I modify behaviour of get operation …
Heeeeeelp!! i cant unlock a file locked …
Putting SQL Server DB Objects under Vers…
Create new label base on set of label
Open TFS dialogs
Re: Visual studio locking up when doing …
regarding locking in tfs
Merge by WI

Hot Articles

Error: No Pending Changes - But there ar…
Visual Source Safe files
I can't believe I miss SourceSafe!
Mapping a new Team Project to a non-root…
tf get from linux
Slow VS 2005 performance
Share
Common/Shared Assemblies
File content mash-up
Version Treeview
Source Control Disabled
Tracing back a branch
Workspace cache for non .net developers
Merging: How is the target branch determ…
Error: Can't Load Checkin Policies from …

Recommend Articles

Lockup during TFS operations
RE: Checkin a project into VSS 2005
TFS Proxy returns error in the middle of…
Error TF60024
Problem with Automatically added Locks
File Recovery in TFS
How to handle large numbers of projects …
MSSCCI provider causes VC6 crash
Best Pracices for concurrent development.
Missing references in web project
GetItems for folders not sorted?
Force undo pending changes - grayed out …
Symbolic Links in TFS?
Problem moving source from one server to…
Problem with source control (Data is Nul…