我正在嘗試使用nodegit將git作爲內容的數據庫。因此,我正在編寫訪問回購庫中內容的函數。我能夠檢索文件blob和其他有關給定文件的信息,但我很努力獲取時間戳信息。使用nodegit,我怎樣才能找到一個給定的文件在git倉庫中上次更新的日期?
我想得到1)創建文件的日期,2)上次更新的日期。但到目前爲止,我還沒有弄清楚這是怎麼可能的。
爲了獲取文件,我需要遵循以下步驟:
1)使用getMasterCommit
檢索最新Commit
。
2)從Commit
,使用getEntry
獲取文件TreeEntry
。
3)從TreeEntry
,得到各種元數據,然後得到Blob
與getBlob
。
4)從Blob
,獲取其他元數據加上文件的原始文本。
問題是,我能找到的日期的唯一地方是Commit
,它有date
函數。這可能有助於獲取上次更新的日期,但它實際上沒有幫助,因爲它僅返回Commmit
(顯然!)的日期,但尚不清楚該文件是否針對該提交進行了更新。
我也想能夠得到給定文件創建的日期。我可以想象,通過回顧給定的TreeEntry的提交歷史記錄,可能會得到這個結果,但目前還不清楚這是如何完成的。事實上,能夠搜索給定文件的提交歷史記錄可能是這裏需要的。但我一直無法看到這是否可能。
任何人都可以提供指導嗎?
我看過了這些代碼。混淆了一下。爲什麼'fileHistoryWalk'多次調用該文件,首先在第49行,然後再次在第34行?爲什麼將'fileHistoryWalk'調用的初始結果視爲文件的歷史記錄是不夠的? – fraxture
我相信它是以500批次的形式進行的,看起來像API需要一個最大數量。我會試驗一下,看看它是否得到你想要的。 – yelsayed