2015-02-11 44 views
0

操作系統和工具信息:我使用Windows 7 Cygwin的mintty的Unix慶典的最新(2015年2月11日)更新爲什麼rcs co,v文件爲某些文件創建0kb文件?

我的工作轉換CVS倉庫使用Git和需要恢復的文件從tarball。提取文件後,我嘗試使用「cvs checkout」並獲得了一些文件,但大部分文件都在Attic目錄中,並且沒有檢出,即使我將它們全部移到一個目錄中,以便它們沒有在閣樓建議in this gnu forum在這之後沒有工作,我試過cvs2svn這不會解決。最後我嘗試使用常規的RCS co,它創建了我需要的大部分文件。

但是,一個頂級目錄中來自Attic子目錄的所有轉換文件都是空的(0kb)。即使將v文件移動到更高級別,它們也不會正確提取。

代碼(RCS共同工作,因爲它應該以下)

$ pwd 
/tmp/test/repo/<working-directories>/ 
$ find . -type f -wholename "*Attic/**,v" -exec rcs co {} \; 
$ find . -type f -name "*,v" -exec rcs co {} \; 

$ cd /tmp/test/repo/<trouble-directory> 
$ find . -type f -name "*,v" ! -wholename "*Attic/**,v" -exec rcs co {} \; 

然而,RCS不能正常工作,因爲它應該爲下面的命令,並創建0KB大小

$ pwd 
/tmp/test/repo/<trouble-directory> 
$ find . -type f -wholename "*Attic/**,v" -exec rcs co {} \; 

的文件移動到頂層沒有工作

$ pwd 
/tmp/test/repo/<trouble-directory> 
$ find . -type f -wholename "*Attic/**,v" -exec mv {} . \; 
$ find . -maxdepth 1 -type f -name "*,v" -exec rcs co {} \; 

即使移動到工作目錄沒有工作

$ pwd 
/tmp/test/repo/<trouble-directory> 
$ find . -type f -wholename "*Attic/**,v" -exec mv {} ../<working-directory> \; 
$ cd /tmp/test/repo/<working-directory> 
$ find . -maxdepth 1 -type f -name "*,v" -exec rcs co {} \; 

什麼能解釋這種行爲的rcs co?其他文件具有相似的大小和擴展名。我似乎無法找到存儲庫文檔中的任何內容,以任何不同的方式處理此特定目錄中的Attic文件,並且我無法在任何配置中找到吸菸槍。有任何想法嗎?

回答

0

有些開發人員檢入一個零大小的文件以表明它已被刪除。或者,他們可能依賴版本標籤並忽略該標籤中的文件。

如果這樣做了,rlog會顯示更改(並且通常會有一條評論說文件已被刪除)。

此外,可以使用rlog顯示的tip/head版本編寫腳本來計算一個修訂版本並獲取該文件的最後一個非空版本。這當然是比較複雜的 - 但由於問題是爲什麼,而不是如何,一個合適的腳本將是一個單獨的答案。

0

reason for files being in the Attic是他們被刪除或以某種方式不可用。這種文件的最新版本可以合理地用空文件表示,或者根本沒有文件。

如果你想從閣樓檢索早期版本,我想你可以;但是,那麼你在這個項目的歷史中引入了一個不一致的地方。

我對git cvsimport沒有什麼經驗,但如果我是你,這是我第一次嘗試。這不像你是第一個想從CVS遷移到Git的人。

+0

然後再次,每個工具都可能有問題。尋找git/cvsimport我看到一對[http://www.crescendo。net/content/tech/2013/05/an-interesting-error-on-cvsimport-for-git /]和[http://osdir.com/ml/version-control.subversion.cvs2svn.user/2008-07 /msg00041.html]這是相關的。 – 2015-02-14 13:41:31

相關問題