使用TFS的命令行实用程序tf.exe,我已经通过简单的步骤在批处理文件中使用tf.exe自动合并两个分支的过程:
但是,在检查更改时,“TF Checkin”对话框显示在对话框中选择的所有待处理更改是否使用/递归。
我想要的是什么:仅选择所选文件夹中的已修改文件,而不是所有待处理的更改。请注意,这是一个随机的事情,因为我的文件夹中有100个文件,因此只应选择在Merge期间更改的文件(这些文件将被修改)。
我希望解决方案:为我的自动合并流程创建单独的工作区。这将隔离签入过程,并仅选择通过此工作区进行的更改。
另一种可能性:是否可以检查特定文件夹中的文件并忽略其余的待处理更改?
Thankx
答案 0 :(得分:5)
我不确定我是否理解你的问题,但确实只能检查特定文件夹中的文件。为避免签入问题,您应该首先“解决”。例如
tf.exe get /r c:\src\branch1\project1 c:\src\branch2\project1
tf.exe merge c:\src\branch1\project1 c:\src\branch2\project1 /r /noprompt
tf.exe resolve c:\src\branch2\project1 /r /auto:acceptTheirs /noprompt
tf.exe checkin c:\src\branch2\project1 /r /noprompt /override:"done by script"
从脚本/自动化进程运行tf.exe时,应始终执行/noprompt
。这是为了避免弹出窗口。在解决方案中,我放置/auto:acceptTheirs
,当发生冲突的更改时,它将从源分支获取更改。这里有几种不同的选择,你必须使用适合你目的的concider。 checkin上的/ override将覆盖任何签入策略,这可能(但不一定)是一个好主意。
每次创建新工作区的方法都是我尽可能避免的。创建和删除工作空间是一个繁重的过程,根据我的经验,很难跟踪所有工作空间,因此我通常最终需要删除大量未使用的工作空间。
答案 1 :(得分:2)
刚刚发现我们也可以使用Repository Address而不是硬编码路径:
tf checkin $/MainRep/Playground/MyFolder/HTMLLogViewer /r
会提供相同的设施并阻止我们使用硬编码路径。