2008-11-11 35 views
2

我使用WinCVS作爲客戶端,CVSNT作爲我的源代碼管理服務器。我想添加到我的CVS倉庫中的一些文件被添加爲Unicode文件。現在,我想重新提交與ANSI(又名ASCII)文件相同的文件。但是,儘管從回購庫中刪除舊文件,但每次添加具有相同名稱的文件時,都會自動將Unicode編碼分配給該文件。更改文件類型一旦添加到CVSNT

有沒有出路?換句話說,一旦將它添加到CVS中,我可以更改文件的編碼嗎?

回答

4

有幾件事情可能(可能)在這裏發揮作用:

  • 您可以在WinCvs中本身禁用自動文件類型檢測:進入管理|首選項|全局,「添加文件時,供應控制」評選的選項 - 理論上你應該能夠你以後從工具欄中使用常規的添加命令做到了這一點

  • 確保你沒有在你的cvswrappers(客戶端和服務器端),定義您要添加爲Unicode

  • 最近WinCvs中的版本的文件類型捆綁任何條目與添加文件與特定的k模式,不包括在WinCvs中UI的情況下,宏(尋找宏|收藏|添加擴展選擇...... - 你應該明確地迫使它使用「文本」(又名-kt )以確保服務器不執行文件類型的自動檢測或者

  • CVSNT支持的文件類型的改變版本。你的情況造成這種情況的命令序列之後將最近cvs commit -f

  • 版本WinCvs中還捆綁有用於執行後的宏cvs update -kt,這是宏下| CVS |更改文件選項

[我都在這裏引述所以覺得免費的,如果他們給你任何麻煩與我聯繫宏的作者 - 你可以找到自己的宏裏面我的聯繫方式]

0

首先,我建議使用TortoiseCVS,因爲它有更好的CVSNT支持。 Whie CVSCVSNT非常相似,CVSNT不是CVS。 TortoiseCVS Add對話框將顯示文件類型,因爲它猜測它們,您可以在其中覆蓋文件類型。

對於現有情況,假設您不想保留Unicode文件的歷史記錄,可以嘗試以下操作。

OK,第一個警告:

你不可編輯的CVS倉庫由專人(除非你是真正的絕望)

現在對於打破指令稱規則,風險自擔。

  1. 讓你的CVSNT資源庫目錄備份(簡單的ZIP文件將做)
  2. 在客戶端,確保Unicode文件實際上是在本地和版本庫中刪除。
  3. 在CVSNT資源庫目錄:
  4. 找到您最初添加的文件
  5. 找到Attic目錄
  6. 刪除這些文件,它們中的任何,v擴展模塊目錄。
  • 在客戶端:
  • 確認文件具有ANSI編碼(純醇」文本文件)
  • cvs add再次將文件
  • +0

    規定,除非這是一個非常古老CVSNT斯塔在沒有Attic文件夾的情況下 - 只有在使用仍然使用它的服務器創建的存儲庫上運行時,Attic才支持向後兼容。 – 2008-11-12 01:37:22

    +0

    但也沒有必要刪除回購文件作爲CVSNT完全能夠版本更改文件類型(見我的回答)的 - 至少這是在過去的三年中釋放或使CVSNT的任何版本... – 2008-11-12 01:39:15

    0

    無的建議在這裏幫我,但這工作

    1. 備份CVSNT文件
    2. 刪除文件並提交
    3. 恢復文件
    4. 在CVSNT在命令行中添加文件「添加-kt - myfile.html」
    5. 承諾要添加的文件

    注:文件類型與-k開關其次是文件類型