我想在不使用合併,回滾,解決等期間出現的UI對話框的情況下自動創建TFS方案。我有一個情況,我既不想AcceptYours或AcceptTheirs。我想接受手動合併,就好像用戶界面出現了一樣,並讓用戶有機會編輯文件並接受合併;但它必須是自動的,沒有用戶界面。tf解決衝突合併自動
在下面的代碼中,我創建了一個'複製'文件,其中包含我希望作爲手動合併回滾特定編輯的最終內容。正如所料,我發生衝突。我已經嘗試了所有的tf resolve/auto:選項,並且我無法解決衝突,因此我的「複製」文件中的內容就像用戶編輯了衝突並接受了手動合併一樣。
- KeepYours - 將撤消合併
- TakeTheirs都在服務器版本
- AutoMerge(強制) - 不解決衝突
- OverwriteLocal - 不解決衝突
- AcceptYours - 需要在磁盤上的版本,但更改從回滾更改類型,編輯
如何重現手動合併使用命令行tf工具而不使用UI?
下面是一個例子,以瑞普:
SET WSPATH=C:\MyMappedWorkspacePath
SET F=%WSPATH%\%RANDOM%%RANDOM%
SET TF=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE\TF.exe
SET TMPFILE=%TEMP%\tf-resolve-test.txt
ECHO Hello > "%F%"
"%TF%" add "%F%"
"%TF%" checkin /comment:"add file" /noprompt "%F%" > %TMPFILE%
"%TF%" checkout "%F%"
ECHO // Change 1 >> "%F%"
COPY "%F%" "%F%-copy" > nul
"%TF%" checkin /comment:"edit 1" /noprompt "%F%" > %TMPFILE%
"%TF%" checkout "%F%"
ECHO // Change 2 >> "%F%"
"%TF%" checkin /comment:"edit 2" /noprompt "%F%" > %TMPFILE%
FOR /f %i IN ('PowerShell.exe -Command "select-string -Path %TMPFILE% -Pattern 'Changeset #(?<changeset>[0-9]*) .*' | %{$_.Matches} | %{$_.Groups['changeset']} | %{$_.Value}"') DO SET ROLLBACKCHANGESET=%i
"%TF%" checkout "%F%"
ECHO // Change 3 >> "%F%"
ECHO // Change 3 >> "%F%-copy"
"%TF%" checkin /comment:"edit 3" /noprompt "%F%" > %TMPFILE%
"%TF%" rollback /changeset:%ROLLBACKCHANGESET%~%ROLLBACKCHANGESET% "%F%" /keepmergehistory /noautoresolve /noprompt
"%TF%" resolve "%F%" /auto:DeleteConflict
DEL /F "%F%"
MOVE "%F%-copy" "%F%"
ATTRIB +R "%F%"
"%TF%" rollback /changeset:%ROLLBACKCHANGESET%~%ROLLBACKCHANGESET% "%F%" /keepmergehistory /noautoresolve /noprompt
"%TF%" resolve "%F%" /auto:AutoMergeForced /noprompt
我不知道就可以了,除非你的意思是你正在尋找一個命令行合併工具,用戶可以交互? –