2013-08-16 71 views
0

我收到一些代碼作爲tar檔案(沒有.hg目錄)。我知道該代碼基於哪個存儲庫,但不知道哪個修訂版被用作這些修改的基礎。有沒有什麼方法可以通過查看文件來查找?這與Given a file, how to find out which revision in a mercurial repository this is?類似,但我無法訪問代碼的作者,所以我無法控制如何從存儲庫中提取文件。我也在這裏處理修改過的文件,所以對基本修訂的差異不會是空的。查找可能的基本版本在一個mercurial repository

我的回退計劃是循環遍歷所有修訂版本,並使用最小差異版本,但我仍然希望有更好的解決方案。

+0

**沒有**更好的解決方案。您只能嘗試一次區分單個文件並使用diff | wc -l用於平分每個文件 –

回答

1

沒有自動化的方法來完成它,但是您可以通過使用hg bisect --command diff ...命令來減少時間來減少時間。

作爲一個提示,如果你(我知道它可能不是),你必須再次給某人一個快照,使用hg archive來做到這一點。它包含一個帶有版本信息的.hg_archive.txt文件,如果您必須重新執行此操作,該文件將有所幫助。

+0

Bisect將不會**幫助(mea culpa),因爲差異不會得到單一的「壞 - 好」變化,而是「壞 - 壞 - 壞」 –

+0

是的,你是對的,你不會得到好/壞,但如果你輸出的修訂版本和差異的行數,然後返回'壞'它會通過所有的修改爲你工作,然後你可以尋找最低點。 –