2010-07-01 42 views
4

我的團隊中的開發人員一直使用綁定到服務器的分支(IE,僅使用checkout,update和commit),但也經常在提交時使用--local標誌,然後在批處理中提交給服務器。她最近經歷了一種情況,她錯過了一些本地提交,並且無法在回購或本地代碼中找到它們。她懷疑這是因爲她在本地提交和服務器提交之間的某個時刻進行了拉取操作。執行bzr commit後,部分代碼丟失--local,bzr pull,bzr commit

我們都沒有特別的集市經驗 - 可能發生了什麼,我們在哪裏可以找到這個缺失的代碼?她相當肯定,她從來沒有做過任何破壞性的事情,我相當確信Bazaar會問她是否會這樣做。我隱約記得,Bazaar有一些「隱藏」回購/樹木的概念,無論它在改變一堆代碼之前放置什麼東西,有人可能會從中恢復丟失的代碼,但我無法設法谷歌這是什麼。

回答

3

我發現「隱藏的我所指的「回購/樹木/任何」都是「死的頭」,用bzr heads查看。

我們找到了我們的死腦袋,並將它合併回去 - 保存了代碼!

$ bzr heads 
$ # output shows various heads, with names like: revision-id: [email protected](dead) 
$ bzr merge [email protected] 
+0

很高興你解決了它 – thomasrutter 2010-07-02 00:30:07

+1

正確。你需要安裝bzrtools插件來使'bzr頭部--dead'工作。 – bialix 2010-07-02 00:30:47

0

在任何時候,你可以做一個

bzr status 

,這將應您如果有任何未提交的更改,其中包括尚未提交合並。這可能有助於確定一切都在哪裏。如果你進行了一次合併,並且你沒有跟進一次提交(無論是否存在衝突),那麼合併的結果將保持未提交。

做一個bzr pull不應該已經消除了任何工作 - 據我瞭解,它應該只是失敗,如果本地分支有未提交的變化。

+0

是的,這是通常的工作流程,但在這種情況下,狀態顯示一個乾淨的工作樹,即使我的代碼丟失。 'bzr頭部'顯示了死亡的頭腦,從中我融合了我遺失的變化。 – 2010-07-03 15:44:45

+0

不知道死的頭,所以我在這裏學到了一些東西! – thomasrutter 2010-07-04 14:30:30

2

如果一切都失敗了,你可以試着在市場IRC頻道詢問。

Go there now *並漫步到#bzr頻道。那裏通常有人,他們通常很有幫助。

**這是freenode的網絡界面。如果您以前沒有使用過IRC,那麼您可以自己創建暱稱,選擇#bzr頻道,並且不需要授權(只要您的暱稱是唯一的)。*

+0

謝謝!我在這之前到過那裏,但沒有人在附近。那個地方非常有幫助!然後它在歐洲成爲早晨,人們醒來並回答了我的問題(我將在撰寫本文後分享)。 – 2010-07-02 00:24:56