TFS合并无关系代码分支

来源:互联网 发布:火车头采集器 帝国cms 编辑:程序博客网 时间:2024/06/06 02:35

    今天下午遇到了合并无关系的代码分支的问题。代码分支关系如下

 

A -->Branch-->A1

A -->Branch-->A2

 

现在想把代码A2 合并到代码A1分支,无论在分支A1还是分支A2上选择mergemerge的目标都是指向A。看来通过常规的UI的方式是没办法解决这个问题。

 

要把两个没有关系的代码分支合并起来,要使用TF.exe, TF.exe的位置位于 “Visual studio 安装目录/Common7/IDE”里面。

运行cmd,切换到当前目录,然后运行

Tf.exe merge /baseless “sourcefolder” “target folder” /recursive

         

 

 

   这里的source folder的路径和target folder的路径可以再team explorer里方便的copy出来

       

 

 

/baseless 是指定代码分支无关系, /recursive 是指递归进行merge

 

运行命令之后,要等一段时间,TFS会开始merge,有冲突的会以黄色字符在控制台输出,正常merge成功的会以白色字符在控制台输出,merge出现问题的则以红色字符输出。黄色和白色的没有截图.  

        

Merge完成之后通常会有很多冲突,冲突会远远多于更改文件和预期。系统会弹出Resolve Conflict的对话框,先点Auto merge进行自动合并,然后在手动的解决不能自动合并的代码,就行了。

 

如果在resolve的过程中,出现了不小心断网,关闭resolve那个窗口的话,不需要重新做merge,只需要重新进行resolve就可以了,我的那些红色的警告就是重新运行merge命令造成的。

重新resolve的方法很简单,在运行merge的命令行目录下运行tf.exe resolve 就可以出现merge的窗口了

 

       

具体的一些细节还可以参考msdn

http://msdn.microsoft.com/en-us/library/bb668976.aspx

http://msdn.microsoft.com/en-us/library/6yw3tcdy(VS.80).aspx

 

 

原创粉丝点击