You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Erich Enke <ep...@ruffdogs.com> on 2004/10/01 18:47:12 UTC

International Characters & Subversion 1.0.8 problems

# svn add G%E4steBuch
A         G%E4steBuch

# svn ci -m 'Testing international characters'
Adding         de/G%E4steBuch

# svn ls [path_to_file_in_repository]/G%E4steBuch
svn: Unable to open an ra_local session to URL
svn: Unable to open repository '[path_to_file_in_repository]/G?\228steBuch'
svn: Can't recode string

This is the simplest example of the problems I am having.  Yes, I have 
read all applicable issues and searched the mail archives.  Yes I have 
googled.  Either there is a bug here, or I'm not understanding something.

What I'm really trying to do is to merge a branch into the trunk, which 
had this file added into it (and other files with similar filenames).  
If adding the file doesn't cause problems, I wouldn't think other 
operations should, but they do.  The merge was successful, but on 
commit, I get:

svn: Commit failed (details follow):
svn: File not found: revision '552', path 
'[path_within_repository]/G?\228steBuch'

Doing an svn ls on the repository directory containing the file gives 
"G%E4steBuch".  I would expect svn ls to be consistent, but I get 
G%E4steBuch one way and G%E4steBuch the other way.  Very confusing.

OK.  So, maybe it got in fine, but I'm using the wrong LC_CTYPE, 
LC_CLANG, or LANG, since subversion stores all filenames as unicode 
internally.  So I change all three of these to UTF-8 and do the following:

# svn ls [path to file in repo]
G%E4steBuch
[other entries]

# svn ls [path to file in repo]/G%E4steBuch
svn: URL non-existent in that revision

# svn st -u
A  +            -   [path]/G%E4steBuch

#svn ci -m ""
svn: Commit failed (details follow):
svn: File not found: revision '552', path 
'[path_within_repository]/GästeBuch'

(Note that [path_within_repository] of course refers to the branch that 
I'm trying to merge in, since this file doesn't exist in the trunk yet)

OK, so that didn't do it.  Maybe subversion is having issues with the 
fact that I added the file while not in UTF-8 (though the addition 
process never complained to me about this).  However, this would be very 
unfortunate since the rest of my code is expecting the filename 
"G%E4steBuch".  But, I'll try it and see what I can learn.  So, with 
those three variables set as UTF-8, I try the following:

# svn mv [path_to_file_in_repository]/{G%E4steBuch,GästeBuch}
svn: Valid UTF-8 data
(hex: [pathname characters] 2f 47)
followed by invalid UTF-8 sequence
(hex: e4 73 74 65)

# svn ls [path_to_file_in_repostory]/GästeBuch
[same thing]

Grr... I can't svn mv.  Let's try adding it straight as GästeBuch while 
in UTF-8.

# cd [my branch that I'm trying to merge into the trunk]
# cp G%E4steBuch GästeBuch
# svn add GästeBuch
A         GästeBuch
# svn ci -m ""
Adding         pgsrc/GästeBuch
Transmitting file data .
Committed revision 856.

Some success!  Now let's try that commit (since the file GästeBuch _is_ 
there now.  I just added it, right?)

# svn ci -m ""
svn: Commit failed (details follow):
svn: File not found: revision '552', path 
'[path_within_repository]/GästeBuch'

But I just added it!

# svn ls [path_to_file_in_repo]
GästeBuch
G%E4steBuch
[other entries]

Huh?  If I add GästeBuch using UTF-8, and subversion stores in UTF-8, 
there should be no issues.  I should see GästeBuch in the ls, but I 
don't.  OK.  Maybe, just maybe, I should have used the --encoding flag 
when adding the file, so svn REALLY knows I'm giving it to subversion in 
UTF-8 encoding.

(I svn removed the GästeBuch file.  That went fine)
# cd [my branch that I'm trying to merge into the trunk]
# cp G%E4steBuch GästeBuch
# svn add GästeBuch
A         GästeBuch
# svn ci --encoding UTF-8 -m ""
Adding         pgsrc/GästeBuch
Transmitting file data .
Committed revision 859.

# svn ls [path_to_file_in_repo]
GästeBuch
G%E4steBuch
[other entries...]

Good.  Now let's try the commit.  It should work.  The file it was 
saying wasn't there is there now.  I can see it.

# svn ci -m ""
svn: Commit failed (details follow):
svn: File not found: revision '552', path '[path_within_repo]/GästeBuch'

Which seems to me to be definitely broken.  What I would really like, 
though, is just to store off G%E4steBuch in the repository, and have it 
come out the same way, have it be interpreted just like that, because 
G-percent-E-4-steBuch is really the desired filename.

Thank you in advance for any assistance that anyone may be able to give me.
Erich
Ruffdogs.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: International Characters & Subversion 1.0.8 problems

Posted by Loïc Joly <lo...@wanadoo.fr>.
FYI, I had the same problems, but I just upgraded to svn 1.1.0 rc3, and 
now it works just fine.

-- 
Loïc


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: International Characters & Subversion 1.0.8 problems

Posted by Erich Enke <ep...@ruffdogs.com>.
Some of what I wrote is invalid.  I was using two terminal windows, one 
to add/delete, the other to commit.  I didn't set the LC_CLANG LC_CTYPE 
and LANG variables in one of the windows.

So, I'll retry.

Of course, native en_US usage of G%E4steBuch doesn't work.  That is the 
same (when trying to commit my merge it says: svn: Unable to open 
repository '[path_to_file_in_repository]/G?\228steBuch' even though svn 
ls says it has G%E4steBuch).

# cp G%E4steBuch GästeBuch

# ls
G?steBuch
G%E4steBuch
[ among others ... ]

# svn add G?steBuch
svn: Valid UTF-8 data
(hex: 47)
followed by invalid UTF-8 sequence
(hex: e4 73 74 65)

# svn add GästeBuch
svn: Valid UTF-8 data
(hex: 47)
followed by invalid UTF-8 sequence
(hex: e4 73 74 65)

And I'm completely stuck there.

As before, all I'm looking to do is store off the file G%E4steBuch in 
the repository and eventually get it out as G%E4steBuch.  Help anyone?  
I'm looking for explanations, workarounds.  Anything.

thanks,
Erich
Ruffdogs.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org