2015-12-02 62 views
1

有沒有辦法查看mercurial bundle的內容而沒有存儲庫?如何在沒有存儲庫的情況下查看mercurial bundle的內容

我通常會做

cd $MYREPO 
hg in -p ../bundle 

不過,有時候這會抱怨

abort: [email protected]: unknown parent! 

的事情是,我甚至不希望應用捆綁。或者,我可能正在旅行,沒有方便的回購。我只想看看它的包文件的內容。爲什麼爲什麼它必須是二進制文件,不可能被人讀取?

回答

0

有沒有辦法看到沒有存儲庫的mercurial bundle的內容?

這是......好相當棘手,因爲部分包中只包含三角洲,很明顯,你爲計算

我通常會必須提供父(S)做

錯誤的方式,絕對。如果$MYREPO是回購的(不空)叉default路徑,你會很樂意與單個小變化:hg in --bundle ../bundle(見Looking into bundle files維基頁)

的事情是,我甚至不想應用捆綁包。

無關。您可能不想套用捆綁軟件,但必須擁有至少捆綁軟件基礎變更集的存儲庫

或者,我可能正在旅行,沒有回購便利。我只想看看它的包文件的內容。

你可以試試(舊 - 從2008年以來,兩輪牛車,沒有維護)使用extension,正是這種任務創建(我給你推薦閱讀整個主題爲「尋找到一個包文件」反正),但 - 有回購可能是一種更簡單的方法:

hg-git>hg log -R z:\bundlefile -r bundle() 
changeset: 951:a593069575bb 
user:  Augie Fackler <[email protected]> 
date:  Wed Nov 25 17:52:59 2015 -0500 
summary:  git_handler: work around dulwich using unicode for ref names 

changeset: 952:584961625a58 
bookmark: master 
tag:   tip 
user:  Siddharth Agarwal <[email protected]> 
date:  Tue Dec 01 10:19:50 2015 -0800 
summary:  Backed out changeset a593069575bb 
+0

該擴展也沒有(也不能)沒有訪問底層存儲庫的工作;它本質上提供了'-r bundle()'功能。 –

+0

@ReimerBehrends @正如我理解的消息,擴展必須與獨奏捆綁和沒有「中止:未知父母!」,也許我錯了 –

+0

我簽出了擴展名,它不工作沒有底層存儲庫。 –

2

捆綁包是一個覆蓋庫(重點overlay)。它被設計成在兩個存儲庫之間進行空間高效的二進制增量編碼,傳統上用於推拉操作,但從那以後就已經看到了其他應用程序。

捆綁包格式通常無法訪問捆綁派生自的兩個存儲庫之一。這是因爲在內部,一切都被表示爲二進制增量;您甚至可能無法從二進制增量中獲取文本補丁(這通常需要包中未包含的原始版本的上下文)。最重要的是,即使是清單(即修訂中的文件列表)也是這樣編碼的。您可以檢索某些元信息,但通常不夠有用。

如果你需要一個可讀的格式,你應該使用hg export而不是hg bundle;這是一種文本格式,它也編碼提交(祖先,提交者,日期,節點ID)的所有元數據,並且可以導入到匹配的存儲庫(hg import --exact)。

相關問題