2009-08-03 61 views
-2

我正在尋找一種方法來爲單個文件加入兩個修訂歷史記錄。在CVS(或RCS)中加入兩個歷史版本?

我們的一個項目是通過RCS進行跟蹤的。現在,這個項目住在CVS中。它最初是作爲一個新項目承諾的。因此,CVS歷史記錄不顯示通過RCS跟蹤的舊版本。

例如,假設文件foo.c在RCS中修改了10次,然後在CVS中修改了2次。 RCS的版本爲1.1至1.10,而CVS的版本爲1.1,1.2和1.3。 RCS版本1.10和CVS版本1.1是相同的。

我想創建一個組合歷史記錄,使foo.c顯示12個版本,從1.1到1.12。由於CVS以與RCS相同的文件格式存儲修訂,因此從現有RCS文件開始,然後使用「ci」命令(保留時間戳,用戶標識和提交消息)檢入新更改應該是一件簡單的事情, 。任何CVS標籤也需要保留。這個新的RCS文件將具有完整的歷史記錄,然後可以將其添加到CVS存儲庫中,替換舊版本。

假設在這個代碼庫中沒有分支。只是直線發展。

這樣的應用程序是否已經存在?

+1

在等待答案,請上網:從CVS培訓手冊本節http://rpmfind.net/tools/CVS/培訓/ cvstrain-9.1.html – Pete 2009-08-03 19:36:50

回答

1

我剛剛寫了一個Python庫,EditRCSPyPi),來操縱RCS文件。示例腳本rcs_join會將一個RCS文件的第一個版本連接到另一個RCS文件的頭部,並更新分支和標記修訂版本。

希望這你想要做什麼(!雖然現在可能爲時已晚)

2

如果它是單個文件,並且不必傳輸大量的修訂版本,則可以一次從舊的版本控制系統檢出一個修訂版本,並在新的版本控制系統中將其提交(大多數版本控制系統元數據可以共存於同一個目錄中)......當然,這種方法的工作原理就是源和目標版本控制系統是什麼,當我遇到類似於你的問題時,這就是我親自做的。

或者你可以嘗試Tailor工具,它可以轉換成許多版本控制系統,但我真的不知道它是否也可以像你需要的那樣在一個版本中「合併」兩個不同的歷史。