[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Issue 1954

From: Philipp Marek <philipp_at_marek.priv.at>
Date: 2006-07-13 18:41:54 CEST

Hello everybody,

I'd like to know if the email from Branko
(http://svn.haxx.se/dev/archive-2004-11/1063.shtml) for issue 1954
(http://subversion.tigris.org/issues/show_bug.cgi?id=1954) is still the
current status:
> Yes, let's ban control characters from SVN filenames.
And there's a svn_path_check_valid since r12???, so I believe that's the
current policy.

I'm asking because I need a way to encode *any* filename for fsvs (especially
with \t, as that's a often used special character), so I'd like to ask if
there's some news regarding issue 1954.

If not - I'd like to present some ideas, to ask which would make the least
disgust here :-). The examples will encode "tab\tname".

1) Just store the filename as eg. "tab&#09;name", and use a property as flag,
eg. svn:filename-encoded (like svn:special).
If there's an entry with this flag set, but with a (real-) filename which
needs not be encoded, error out. This would mean that "buggy&#41;filename"
with svn:filename-encoded would not be allowed, to secure against having a
repository with two entries which would resolve to the same local (client)
name (see the problems on win32 with upper/lower-case).

2) Mostly the same as 1, but with an encoding like "tab\\x09name". Is a
character per special character smaller than 1.

3) Mostly the same as 1, but the filename encoded in
hexadecimal: "746162096e616d65". This has the advantage of an easier
encoding/decoding, but is not as human-readable.

4) Instead of a flag use a property to give the correct filename; the name of
the file would be irrelevant.
Eg. an entry with name "746162096e616d65" would have a property svn:real-name
of "tab\tname"; as properties can have *any* value, another encoding would
not be necessary.

My personal favorite is 3, followed by 2, followed by 1; they are easy to code
(store only a flag per entry), and the small disadvantage of having not
human-readable filenames (for 3) would be no big problem if one counts how
many files this really targets.

Please don't misunderstand me - I believe that such filenames are used often
enough so that they must be allowed; but they're not so common that we'd have
to jump through extra hoops for them.

I used the svn:-prefix because I believe that svn might sooner or later have
to understand such filenames too. If I get an absolutely negative feedback
I'm prepared to use a fsvs:-prefix, and do that privately for fsvs.

Comments? Better ideas? Other feedback?

Thank you very much!

Regards,

Phil

-- 
Versioning your /etc, /home or even your whole installation?
             Try fsvs (fsvs.tigris.org)!
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jul 13 18:42:31 2006

This is an archived mail posted to the Subversion Dev mailing list.