Background
If I merge our main
branch to our development
branch, TFS will state that there are no changes to commit. And yet, a file level comparison (using WinMerge) clearly shows that there are differences (e.g. files missing, files with different content, etc.).
In short, our main
and development
branches are no longer in sync which is most likely due to changesets that were lost during previous TFS migrations.
Question
What is the best way to produce the following?
- Synchronizing the
main
anddevelopment
branches by: performing all of the necessary insert/update/delete operations on thedevelopment
branch. (i.e.main
is the master copy).- At the end of the process WinMerge should indicate that there are zero (0) differences between the two branches.
- Keeping the
development
branch history intact. - Notifying TFS that the
development
branch is now fully synchronized withmain
so that:- TFS won't try to merge older
development
changesets withmain
- only future changes to
development
will be pushed tomain
during a merge operation.
- TFS won't try to merge older
TFS is not my area of expertise - any guidance that you can provide would be greatly appreciated.
Context
- Visual Studio 2015
- TFS (version 14.95.25122)
References
- Merge Command
- "Performs a merge without a base version. That is, allows the user to merge files and folders that do not have a merge relationship. After a baseless merge, a merge relationship exists, and future merges do not have to be baseless."
- Although
Development
was branched fromMain
, it looks like this might address my lack of history (i.e. missing changesets) problem.
- Although
- "Performs a merge without a base version. That is, allows the user to merge files and folders that do not have a merge relationship. After a baseless merge, a merge relationship exists, and future merges do not have to be baseless."
- TFS Merge: Best Practices
- TFS: Overwrite a branch with another
tf merge A B -r -force -version:T
- I don't think this will work for us because changesets are missing.