You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Hiroharu Tamaru <ta...@myn.rcast.u-tokyo.ac.jp> on 2005/05/12 11:05:04 UTC

wcprops not updated on commit when entries has UTF-8 chars in repository URL

Dear developers,

I've been off this list for some time, so my appologies if
it has been mentioned already.

I am using subversion 1.1.4 and TortoiseSVN 1.1.3(and also
1.1.7).

I found a fuzzy behaviour which may be a bug in subversion
or TortoiseSVN.  I couldn't conclude on which to blame,
since I couldn't find the concrete API definition for the
'entries' file.

If a .svn/entries file have a repository URL that has RAW
(as opposed to %-escaped) utf-8 characters within it, a
commit of a file does not update the revision number that
appears in the files in .svn/wcprops/* .

This results in a succeeding commit of the same file to
fail with out-of-date error.  Performing update on the file
or its parent directories does not resolve this matter,
but brute forcing with an editor and hand correct the
revision number in .svn/wcprops/* file does resolve the
issue (for this one time).

Obviously, this is a problem in the state of checked out WC,
so deleting this WC and checking out a fresh one will allow
me to commit again (but again only once, if you checkout
with TortoiseSVN; see below).

Other random things that I noticed:

O wcprops/* and dir-wcprops are seemingly not used for
  file:// and svn:// repositories.  So only WC's that are
  checked out from https:// (and http:// ?) repositories are
  affected.
  (Thus I couldn't come here with a simple sample transcript... :(  )

O subversion-1.1.4 %-escapes all non-ASCII chars that were
  given on the command line at the time of check out, as
  well as the non-ASCII chars in subdirectory names under
  the checked-out root, where as TortoiseSVN leaves the
  repository part raw, and only escapes the subdirectory
  part.  Therefore, a WC checked out by TortoiseSVN has the
  above mentioned problem for commits performed by either
  subvesrion or TortoiseSVN, whereas a WC checked out by
  subversion are handled correctly by both subverson AND
  TortoiseSVN.

O subversion as well as TortoiseSVN do not %-escape the
  name="..."  part in the .svn/entries file, and the first
  line of this file says encoding="utf-8", so the use of
  utf-8 itself did not look as to be forbidden in this file.

O If multiple WC are checked out from the same repository,
  and many concurrent commits and updates occur, chances are
  that wcporps/* will be updated in the course of fetching
  other people's work, and above mentioned problem will not
  be observed so much; it took me some months to come up
  with the above reproducible description.

Now to the final part:

Should subversion be more gracefull and process the raw
utf-8 url correctly, or should TortoiseSVN be more strict
and always %-escape every non-ASCII chars?

If former, will it be fixed in 1.1 branch?
If latter, I will try the TortoiseSVN list next.  In this
case, I'd appreciate a pointer to some documentation that
should convince TortoiseSVN developers.

Thank you.

-- 
Hiroharu Tamaru

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

Re: wcprops not updated on commit when entries has UTF-8 chars in repository URL

Posted by SteveKing <st...@wagner-group.ch>.
Hiroharu Tamaru wrote:

> O subversion-1.1.4 %-escapes all non-ASCII chars that were
>   given on the command line at the time of check out, as
>   well as the non-ASCII chars in subdirectory names under
>   the checked-out root, where as TortoiseSVN leaves the
>   repository part raw, and only escapes the subdirectory
>   part.  Therefore, a WC checked out by TortoiseSVN has the
>   above mentioned problem for commits performed by either
>   subvesrion or TortoiseSVN, whereas a WC checked out by
>   subversion are handled correctly by both subverson AND
>   TortoiseSVN.

Try absolute/full paths with the CL client instead of relative paths. If 
  then the CL client doesn't escape correctly either, then it's a 
Subversion issue, otherwise a TSVN one.

Stefan


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

Re: wcprops not updated on commit when entries has UTF-8 chars in repository URL

Posted by Hiroharu Tamaru <ta...@myn.rcast.u-tokyo.ac.jp>.
Thank you, Stefan and Peter for your quick answers

At Thu, 12 May 2005 13:41:25 +0200, SteveKing wrote:

> Try absolute/full paths with the CL client instead of relative paths. If 
>   then the CL client doesn't escape correctly either, then it's a 
> Subversion issue, otherwise a TSVN one.

OK.  Command line client escapes URI in .svn/entries

At Thu, 12 May 2005 14:00:46 +0200 (CEST), Peter N. Lundblad wrote:

> > If a .svn/entries file have a repository URL that has RAW
> > (as opposed to %-escaped) utf-8 characters within it, a
> > commit of a file does not update the revision number that
> > appears in the files in .svn/wcprops/* .
> >
> Non-ASCII characters are not allowed in a URI, so there is a bug if
> something lets such characters in. My guess is that something strips the
> repository root part from an URL and getting it wrong since the
> %-escapings don't match. (We have had similar bugs before.)

OK.  That's reasonable.

> > Should subversion be more gracefull and process the raw
> > utf-8 url correctly, or should TortoiseSVN be more strict
> > and always %-escape every non-ASCII chars?
> >
> I don't think we should handle this situation, but maybe we should find
> some way to error out, so it gets noticed earlier. I don't know enough
> about how DAV handles wcprop to give a good answer here.

OK. I'm convinced that TortoiseSVN should be fixed.
I'll try their list.

Thank you for your help.
-- 
Hiroharu Tamaru

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

Re: wcprops not updated on commit when entries has UTF-8 chars in repository URL

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Thu, 12 May 2005, Hiroharu Tamaru wrote:

> I've been off this list for some time, so my appologies if
> it has been mentioned already.
>
> I am using subversion 1.1.4 and TortoiseSVN 1.1.3(and also
> 1.1.7).
>
> I found a fuzzy behaviour which may be a bug in subversion
> or TortoiseSVN.  I couldn't conclude on which to blame,
> since I couldn't find the concrete API definition for the
> 'entries' file.
>
> If a .svn/entries file have a repository URL that has RAW
> (as opposed to %-escaped) utf-8 characters within it, a
> commit of a file does not update the revision number that
> appears in the files in .svn/wcprops/* .
>
Non-ASCII characters are not allowed in a URI, so there is a bug if
something lets such characters in. My guess is that something strips the
repository root part from an URL and getting it wrong since the
%-escapings don't match. (We have had similar bugs before.)


> Other random things that I noticed:
>
...
> O subversion-1.1.4 %-escapes all non-ASCII chars that were
>   given on the command line at the time of check out, as
>   well as the non-ASCII chars in subdirectory names under
>   the checked-out root, where as TortoiseSVN leaves the
>   repository part raw, and only escapes the subdirectory
>   part.  Therefore, a WC checked out by TortoiseSVN has the
>   above mentioned problem for commits performed by either
>   subvesrion or TortoiseSVN, whereas a WC checked out by
>   subversion are handled correctly by both subverson AND
>   TortoiseSVN.
>
That must be a bug in TortoiseSVN.

> O subversion as well as TortoiseSVN do not %-escape the
>   name="..."  part in the .svn/entries file, and the first
>   line of this file says encoding="utf-8", so the use of
>   utf-8 itself did not look as to be forbidden in this file.
>
The name attribute is not an URL, but a path, so it shouldn't be
%-escaped.

> Now to the final part:
>
> Should subversion be more gracefull and process the raw
> utf-8 url correctly, or should TortoiseSVN be more strict
> and always %-escape every non-ASCII chars?
>
I don't think we should handle this situation, but maybe we should find
some way to error out, so it gets noticed earlier. I don't know enough
about how DAV handles wcprop to give a good answer here.

Regards,
//Peter

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