Cvs

從部分儲存庫中籤出 CVS

  • March 13, 2015

我有一個部分 CVS 儲存庫 - 主記憶體儲庫中子文件夾的副本,我想做一個檢查頭。我試過直接這樣做:

$ cvs -d /path/B2MEj/ co B2MEj
cvs [checkout aborted]: /path/B2MEj/CVSROOT: No such file or directory

我的副本不包含 CVSROOT(因為它是原始儲存庫根目錄的子目錄,我假設)。

如何獲得此文件夾中最新版本文件的清晰快照?我不關心保留任何版本歷史,因為這對我來說是一種單向提取。

似乎所有必要的資訊都包含在我的部分儲存庫中的 ,v 文件和 Attic 目錄中。關鍵是簡單地創建一個空的 CVS 根目錄,cvs -d /workingdir init然後將原始(部分)儲存庫文件夾複製到workingdir. 那時,一個簡單的cvs -d /workingdir co B2MEj(或任何您的項目名稱)將完成完整的結帳。

如果沒有 CVSROOT,cvs 對文件夾中的內容一無所知,因為所有文件和版本資訊都在那個 CVSROOT 目錄中。

您需要做的是使用 RCS,v單獨提取每個文件的最新版本,這應該與 bash 中的以下內容一起使用:

for fn in *,v; do
 co ${fn%,v}
done

由於 RCS 的co命令需要原始文件名,我們必須找到所有,v文件並使用文件名減去 ,v 來執行 co。

完成後,您必須從 ,v 文件中整理出程式碼。

引用自:https://serverfault.com/questions/232906