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

Re: Fwd: Subversion AppleDouble patch updated to 1.5.0

From: Steve Sisak <sgs_at_codewell.com>
Date: Sun, 10 Aug 2008 22:38:23 -0400

Hi Karl, Peter,

Thanks for taking the time to review Matt's patch -- the effort is appreciated.

At 5:44 PM -0400 8/8/08, Karl Fogel wrote:
>I think the current idea is that this problem will simply go away when
>the "next generation" working copy library is done (see
>https://svn.collab.net/repos/svn/trunk/notes/wc-ng-design). I don't
>have a timetable for that, so I realize this is small comfort.

That's nice, but until it happens, I'm stuck with cvs for my
production code because it contains too many files (>4000) that svn
cannot represent.

CVS has no problem because it's possible to use hook scripts to do
what's needed and there are several Mac OS cvs clients that store a
AppleSingle to get around the limitation.

>On http://www.ambrosiasw.com/~fprefect/subversion-appledouble.html, the
>language is a little, well, tiresome:
>
> "This patch enables Subversion to manage HFS metadata and resource
> forks on MacOS X. It seems like a no-brainer to most Mac folks, but
> so far the Subversion community has been dismissive. With this
> patch, Subversion will automatically import, add, update, and
> checkout any metadata associated with the file into the property
> file:appledouble."
>
>Dismissive? I don't recall specific threads, but not wanting to apply a
>patch for technical reasons, and explaining those reasons clearly, is
>not the same as being dismissive. It's kind of the opposite, really.
>And I'll bet that's what happened here; it's hard to imagine any of the
>maintainers being dismissive of such a patch, although there are plenty
>of reasons why they might not want to apply it.

Speaking as a Mac developer (and I was not involved in any of the
initial threads), I could see how one could get that feeling:

Without getting into any religious debates, Subversion is a
non-starter for any of us Mac developers who have code with any
history because it can't perform the most basic function of a version
control system: recover a historical copy of a file (*).

(*) That means the entire file, not just the data fork stripped of
resources, file type, file creator, finder comments, bundle bits,
script code, creation date, and a host of other Mac OS Attributes. (I
would imagine the same applies to other platforms)

Anyway, we're working on it now so probably not worth rehashing old history.

>I took a look at the patch. There are a few stylistic nits ("if (1)"
>comes to mind :-) ), but they're no big deal. Basically, the patch
>seems pretty straightforward and like it does what it says it does. I'm
>not a Mac developer myself, and do not feel competent to give a final
>evaluation of the patch. (I also am not sure if/when the wc-ng work is
>going to happen, though we're all on board with it in principle.)

Thank you very much for taking the time to look -- I realize that
this isn't a perfect solution, but it does appear to get to the point
where we could begin to use svn for our repository (and I don't see
any reason why a future version of svn couldn't relocate the data and
delete the file:appledouble property.

I also see a couple potential improvements if the file:appledouble
property were broken up into multiple properties (and if the resource
fork were broken up so each resource were a versioned property), but
since that conversion could trivially done in the future with no data
loss and there are existing repositories using this scheme, it may be
worth handling that in the "next generation".

I'd be willing to look into that if it would be useful.

>A log message would help :-).

I'll see about writing that.

>Because the patch is a bit hard to extract from the site, I'll insert it
>at the bottom of this mail, for others to review.

Maybe it's a Mac thing -- I clicked the link and got a .tar file,
double clicked that and got a directory. :-)

At 11:28 AM -0500 8/9/08, Peter Samuelson wrote:
> > --- subversion-1.5.0/subversion/include/applefile.h 1969-12-31
>19:00:00.000000000 -0500
> > +++ subversion-appledouble-1.5.0/subversion/include/applefile.h
> 2008-06-19 15:25:57.000000000 -0400
>> @@ -0,0 +1,348 @@
>> +/* applefile.h - Data structures used by AppleSingle/AppleDouble
>> +* file format
>> +*
> > +* Written by Lee Jones, 22-Oct-1993
>
>With no license. Ummm. Lee Jones, you have a call on line 1. Lee
>Jones, line 1, please.

 From <http://www.ietf.org/rfc/rfc1740.txt> (link on patch page):

>Appendix C. applefile.h
>
> This is an example of a header file for the language C which can be
> used when parsing the data in either an AppleSingle file or
> AppleDouble header.
>
> The file is written by Lee Jones. Distribution is unlimited.
>
> /* applefile.h - Data structures used by AppleSingle/AppleDouble
> * file format
> *
> * Written by Lee Jones, 22-Oct-1993
> *

Is that sufficient?

I agree with the rest of your comments.

Thanks again for the effort,

-Steve

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-08-11 04:43:41 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.