2013-03-24 22 views
5

我想出來的git-TFS,我試圖通過運行到取消擱置擱置如下:的git-TFS:在一個文件中的擱置掛起的更改需要

git tfs unshelve "Shelveset Name" shelf 

我越來越出現以下錯誤:

A shelved pending change on a file is required: $/path/to/dir/deleted 

「deleted」是在shelveset中被刪除的目錄。

我只是剛剛開始使用git-tfs。我需要檢查shelveset,所以暫時我可以單獨使用TFS來做,但如果可能的話,我想知道可能發生了什麼,並儘可能避免它。

感謝您的任何幫助。

+0

https://github.com/git-tfs/git-tfs/issues/419 – 2016-04-12 13:25:04

回答

2

此錯誤消息不是git-tfs之一,而是TFS之一(我只是看了看源代碼)。

我只是不記得git-tfs如何管理shelveset,因爲自從我切換到git-tfs後,我再也沒有使用過,因爲shelvesets的設計非常糟糕:(我認爲你的問題來自於設計問題!

有了一個shelveset,實際上它是一堆文件差異,你永遠不會知道從什麼地方產生的根變更集是什麼,所以,如果你試圖在稍後取消保留它,因爲文件或文件夾被重新命名或刪除了!

我認爲你的問題來自事實,你試圖暫時擱置checkout的git commit太近。

也許嘗試在shelveset的日期大致檢出一個提交,並嘗試取消擱置! 如果有效,你只需要重新分配你的分支提交。

如果它不工作,我不知道......

而且互聯網沒有幫助我們解決這個TFS錯誤消息:(

編輯:從此之後,我認爲混帳-tfs已得到改進,也許它取消擱置到正確的父提交

2

看來,TFS踩試圖取消擱置包含已刪除的文件擱置集我做了以下和它的工作:。

  • Unsh elve在Visual Studio(2012)
  • (從VS2012)
  • 使用git-tfs再次排除任何被刪除的文件
  • 擱置的擱置拉入本地的Git分支
  • 手動刪除文件(S)已被從原來的架子上取下來

我知道一種痛苦,但它至少幫助我打撈了貨架。從上下文來看,這是在從TFS遷移到Git的過程中,我們可以將歷史記錄保留到遠程分支中,因此開發人員無需使用未完成的簽入來粘貼TFS。

相關問題