2010-09-24 53 views
1

看起來好像我的場景儘可能簡單。我有Main和一個叫Dev的分支。我在Dev中選擇了一個只有我的代碼的目錄,並進行了合併(基於所有變更集到特定變更集)。TFS簡單合併問題

第一個問題,它是否立即簽入合併,或者我應該在此之後簽入?我問,因爲這些消息,我在記事本中保存了它們,但沒有寫下來正是我所做的,衝突是因爲在目錄結構的變化。

變更集322成功進行檢查。

刪除C:\ SourceEagleConnect \ Main \ BizTalk \ ACH \ Sample \ Sample1.sln TF14119:無法合併刪除$/EagleConnect/Dev/BizTalk/A CH/BizTalk到$/EagleConnect/Main/BizTalk/ACH/BizTalk,因爲其子項之一已被重命名或移動。 TF14121:以前到$所做的更改/ EagleConnect /開發/尚未合併將通過合併的$刪除/ EagleConnect /開發/的BizTalk/ACH /樣本1 /樣本1被丟棄的BizTalk/ACH /樣本1/Sample1.sln。 SLN。 TF14119:無法將$/EagleConnect/Dev/BizTalk/ACH/BizTalk刪除合併到$/EagleConnect/Main/BizTalk/ACH/BizTalk,因爲其中一個子項已被重命名或移動。

'ACH'項目真的不是我關心的項目,它是其他項目中的關鍵文件。

然後我用一個比較工具來開發和主要的盤比較,我看到在主要許多文件沒有從開發的變化。

在一個特定的文件上,我做了以下分析。我在Dev和Main都做過「查看歷史」,然後我從命令行「tf merge Dev/file Main/file」運行。

查看歷史開發表示:

213 edit nwalters 8/6/2010 2:43 PM New Host Names based on application instead of adapter 
159 edit nwalters 7/20/2010 10:16 AM BTDF - reset to use new SettingsFileGenerator.xml, improved to handle new EagleConnectConnectionString 
50 branch nwalters 6/22/2010 10:04 AM Original checkin of "Dev" Branch 

查看歷史上的重頭戲:

323 merge, edit nwalters 9/23/2010 2:02 PM BizTalk-Only Merge 09/23/2010 (there were some ACH warnings) 
175 merge, edit nwalters 7/27/2010 2:29 PM Check-in after big merge of all BizTalk from Dev to Main 
49 add nwalters 6/22/2010 10:00 AM Original checkin of EagleConnect source cod to TFS 

「TF合併」 顯示:

Changeset Merged in Changeset Author       Date 
--------- ------------------- -------------------------------- ---------- 
    159     175 nwalters       7/27/2010 
    213     323 nwalters       9/23/2010 

所以看起來變更213,在323合併中包含了「丟失」的變化。然而,當我查看主源代碼時,它並不存在(它不在磁盤上,如果我在源代碼資源管理器中查看歷史記錄,它看起來並不在TFS中)。

當我現在做一個合併,它說「沒有合併」。

回答

0

我做了一個獲得最新另一臺機器,並完美匹配的代碼(盤比較開發的主)上。所以我通過工作現在,顯然各不匹配項目由以下原因包括:

  1. 有人TFS的改變外
  2. 這是從來沒有簽入TFS(有些我忘了檢入,其他的是bin/debug類型的文件,它們不會被簽入)。
3

關於你的第一個問題, 從源分支到目標分支的TFS合併不會自動檢入到目標分支的合併更改。 TFS合併的工作方式是 - 假設你使用的最新版本選項合併:

  1. 它的變更歷史比較在目標分支,並確定哪些變更從源需要被合併到目標。

  2. 它複製源分支目標分支的本地版本的變更(此爲您提供了這些變化,以建立自己的本地目標,並確保它不會破壞你現有的你之前建立的機會的服務器版本檢查它。)

  3. 一旦您滿意在當地目標分支合併更改,則需要手動簽入這些更改目標分支。

因此,在合併之前,您總是需要將最新版本的目標分支獲取到本地。