Modify the CVS plugin in IntelliJ idea to be compatible with other CVS tools

Source: Internet
Author: User
Tags commit contains log modify version client netbeans

For forum discussion, please see: http://community.csdn.net/Expert/topic/3492/3492097.xml?temp=.1520502

The idea of CVS is the most powerful and best CVS client I have ever seen, and the integration of the project is almost seamless.    If a team uses idea uniformly, it will greatly reduce the learning burden of team members in the CVS tool alone. Idea's CVS plug-in supports two encoding methods: UTF8 and ASCII. It would have made up for a flaw in the CVS system itself that does not support internationalization. But in actual use, it is found that these two coding methods are somewhat "underachievement".

In UTF8 encoding, when the commit log is in Chinese, idea will UTF8 it and send it to the server, and a generic CVS server (such as my cvsnt) will be saved to the CVS repository without any conversion. The result is that idea can see each version of the log information, and other tools such as Wincvs, Tortorisecvs, and cvstracnt, and other tracking software can not be decoded correctly. Conversely, if you submit a Chinese log with another CVS client, the showhistory command in idea will report an error. The most puzzling is that only log information is encoded, if the source file contains Chinese, it still uses GB encoding. If you are a CVS administrator, you will find both GB-encoded and UTF8-encoded Chinese in Xxxxx.java, v files.    How can you not mess? In addition, the annotate function is not available when the source file contains Chinese characters in the UTF8 encoding mode.

If you do not use the UTF8 encoding, that is, the use of ASCII encoding, the annotate function is no problem, but the commit can not submit the Chinese log information, reported coding errors. Showhistory when looking at the outside submitted the Chinese log is garbled.

Said so much, in a word, the Chinese coding problem. How to solve it? The above post hair for six months also did not knot, in idea official forum also asked, but because all foreigners, finally there is no ideal answer. I got the Irida version a few days ago, found that the CVS plug-in jar package is not confused (4.5 version is confusing, to read is simply impossible), so the reverse compilation (hehe Don't Sue me), after analysis found that the final problem in the Org\netbeans\lib\ Asciioutputstreamwriter and Asciiinputstreamreader in the Cvsclient\io directory.    After a simple modification (as long as the Java coding problem has been solved, this modification is not difficult), and finally the problem has been fixed! Please download this patch in Http://www.jroller.com/resources/WarBaby/CvsPatchForIrida.zip and open the%ideahome%\plugins\cvsintegration\lib\ Cvsintegration.jar, with the class file in the patch cover Org\netbeans\lib\cvsclient\io under the same name file can be. This is the Irida modification method, 4.5 version of a slightly different, here only point, Org\netbeans\lib\cvsclient\io\asciioutputstreamwriter.java = = Org\a\a\a\b\ F.javaorg\netbeans\lib\cvsclient\io\asciiinputstreamreader.java = = Org\a\a\a\b\c.java Please the fans of their own decompile and compile the good.

After modification, please! UTF-8 encoding is selected, the above problem is completely solved. The Chinese log, previously submitted with idea, is now displayed as garbled, but if selected UTF-8 encoding is exactly the same as the previous idea.    So please feel free to use. There is only one point to explain, I in Asciiinputstreamreader, in order to efficiency problem, built a few static variables, may be linear unsafe. But I see idea. When you operate CVS, the window is modal and cannot do anything else. Please take care of yourself if you have any problems.


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.