[cvsnt] CVSNT server tries to write non UTF-8 characters infileattr.xml

Arthur Barrett arthur.barrett at march-hare.com
Sun Dec 28 11:56:12 GMT 2008

Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


Try and keep the thread on the newsgroup  - just send the attachments only to support at march-hare.com since the newsgroup will reject them.

> I have used two different clients while getting this error, SmartCVS 
> 7.0.4 and TortoiseCVS 1.10.8/CVSNT
> I don't think the clients are the problem here though.

There are two parts to the 'problem' you have reported, and they both need investigating:
1) fileattr filenames are not UTF8 when CVSNT Server is not running in UTF8 mode
2) some CVS clients get corrupt filenames when server running in UTF8 mode

SmartCVS is a GUI - what I need is the CVS version.  WinCVS, TortoiseCVS and MacCvsX all include CVSNT - I imagine that SmartCVS is including some very very broken version of CVS that is claiming to support UTF8 filenames but isn't.  The CVS client verion will either be some embeded java thing, the 'standard' one in /usr/bin or embedded in the .app directory for SmartCVS (eg: SmartCVS.app), eg:
MacAir:Contents abarrett$ ls -la /Applications/MacCvsX/MacCvsX.app/Contents/Resources/cvsnt/intel
total 2408
drwxrwxrwx   5 Administrator  admin      170  1 Mar  2008 .
drwxrwxrwx   4 Administrator  admin      136  1 Mar  2008 ..
-rwxrwxrwx   1 Administrator  admin    81764 14 Feb  2008 cvslockd
-rwxrwxrwx   1 Administrator  admin  1149736 14 Feb  2008 cvsnt
drwxrwxrwx  12 Administrator  admin      408  1 Mar  2008 lib

MacAir:Contents abarrett$ /Applications/MacCvsX/MacCvsX.app/Contents/Resources/cvsnt/intel/cvsnt version
Concurrent Versions System (CVSNT) 2.5.03 (Scorpio) Build 2382 (client/server)

If possible just replace the CVS version on the Mac client with the latest CVSNT and you should be able to run the CVSNT server in Unicode mode, this would be a good 'workaround' for your fileattr problem.  If SmartCVS is using some embedded Java client then you'll need to contact SmartCVS for a fix, though we may be able to 'workaround' the bug if we can identify the client from the connection string on the server.  In fact I've just had a quick look and this does appear to be the case.  I've no idea why so many programmers think it's a good idea to re-invent the wheel ... it inevitably causes these compatibility problems.

> I don't think any automagic conversion takes place with clients that 
> don't support UTF-8. At least when using SmartCVS on Mac OS 
> X, switching 
> the server to Unicode mode and then doing a CVS update corrupted all 
> filenames with non-ASCII characters (all instances of 'å', 
> 'ä', 'ö' were 
> replaced by two completely incorrect characters, so you can tell that 
> it's a matter of incorrect UTF-8 handling).
> TortoiseCVS handles the Unicode mode fine though.

In SmartCVS 7 under project->Settings on the Text File Encoding tab there are some options you can try.  If you cannot find any setting that works with the server in unicode mode then I can use the SmartCVS client identifier to automatically adjust the CVSNT Server to convert the encoding (bug5479). 

More questions:
A) which client do you think added ETT_FALL_OCH_EN_LÖSNING.txt - was it Mac or Windows (CVS  or CVSNT)?
B) What 'connection string' is the Mac using/what protocol? Eg: :pserver:host:/blah
C) If you add a new test file with an Ö character in the filename from the windows 2.5.05 client with the server running NOT utf8 is the fileattr corrupted?  If so is it possible to enable 'allow clients to trace server' on the server and trace the add and commit (cvs -ttt add; cvs -ttt commit -m "") and send the entire trace to support at march-hare.com?
D) Try downloading the 2.5.05 mac client and installing it and trying to use it from the command line with the windows server running in UTF8 mode.  Checkout the same file and if the filename becomes corrupted then enable 'allow clients to trace server' on the server and trace the checkout (cvs -ttt co path/to/ETT_FALL_OCH_EN_LÖSNING.txt) and send the entire trace to support at march-hare.com
E) what is the LANG of your Mac client?  (echo $LANG)
F) what is the iconv version of your Mac client? (iconv --version)
G) what is the MacOS X version of your Mac client, eg: ppc 10.3.7 or intel 10.5.1?


Arthur Barrett

More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook