IntelliJ IDEA 的 CVS 整合功能強大,但中文編碼處理存在缺陷:
xxxx.java,v 檔案混雙編碼。核心問題在於 org.netbeans.lib.cvsclient.io 套件下的 AsciiOutputStreamWriter 與 AsciiInputStreamReader 類別。IDEA Irida 版本的 cvsIntegration.jar 未經混淆,可直接反編譯修改;4.5 版本經混淆,需自行反編譯對應類別(org.a.a.a.b.f、org.a.a.a.b.c)。
%IDEA_HOME%\plugins\cvsIntegration\lib\cvsIntegration.jarclass 檔覆蓋 org\netbeans\lib\cvsclient\io 下的同名檔案。修改的 AsciiInputStreamReader 引入靜態變量以提升效能,理論上可能存在執行緒安全隱憂,但 IDEA 操作 CVS 時視窗為模態,實際風險極低。使用者自行評估。