2013-02-13 19 views
1

我注意到CVS的新版本使用commitid。如何使用CVS commitid功能?

我想這是最近的一個增加 - 因爲'在那些日子裏'沒有這樣的事情。

谷歌搜索我發現大多數與CVSNT有關的評論 - 但似乎承諾也存在於標準的開源CVS中。

如何利用commitid功能(在標準CVS中)?

例如:

  • 如何顯示到commitids之間的差異?
  • 如何列出與特定提交ID相關聯的文件/版本號?

回答

1

CVS本身似乎沒有任何與commitid做任何事情,除了設置它。

這裏的文件說什麼(info cvs):

commit,獨特的commitid被放置在 倉庫裏RCS文件。所有立即提交的文件獲得相同的提交,一個字符串 只包含十六進制數字(通常在GNU CVS中爲16,在 MirBSD和MirDebian GNU CVS中爲19)。 FSF GNU CVS 1.11,MirOS GNU CVS 1.11, 和OpenBSD OpenCVS不支持提交。可以使用logstatus命令檢索到的commitid可以是 ;請參閱*註釋日誌::和 *注意文件狀態::。

其他工具可以解析輸出cvs log並確定給定提交的提交。特別是,在單個cvs commit命令中提交的更改將具有相同的提交ID。我可以想象它對於將CVS存儲庫轉換爲其他系統(如SVN或Git)的工具很有用。

但是這些工具必須允許由舊版CVS創建的存儲庫沒有此功能。例如,我在CVS中維護的一個文件有211個提交,其中前186個沒有提交;顯然這是當我轉向更新版本的CVS(2007年底或2008年初)時。

一起提交的更改也應該共享相同的時間戳,但這不太可靠。將時間戳與作者相結合應該更可靠一些,但仍然不完美。