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

RE: Segmentation fault during diff generation

From: Bert Huijben <bert_at_qqmail.nl>
Date: Mon, 1 Sep 2014 16:58:53 +0200

> -----Original Message-----
> From: Julian Foad [mailto:julianfoad_at_btopenworld.com]
> Sent: maandag 1 september 2014 15:59
> To: Peter Galcik
> Cc: dev_at_subversion.apache.org
> Subject: Re: Segmentation fault during diff generation


> (In the longer term, I would like it if we could implement this changelist
> filtering in one place instead of scattering these "if" conditions around.
> would like to see a code structure more analogous to "find /wc/path <node
> selection conditions: depth, changelists, etc.> | xargs diff", probably
> the existing svn_wc__internal_walk_children() function or something
> to it.)

You do know that this kind of restructuring would make it +- impossible to
handle tree changes?

Sure, that structure would work if files would only change... but things
break hard when you start replacing things.

And restructuring that way would be +- impossible once you start applying
changes from multiple origins, like with repository diffs that even handle a
switch in the background... as in this case.

Diff is a very simple output processor over a very hard tree translation
process with dozens of corner cases added to handle all the possible flags
we implement in every layer. (And in many cases explicitly ignoring
ancestry, because that produces nicer diffs...)

Personally I would wish we could just do the changelist filtering in the
output layer, instead of in all the diff drivers separately... But the
current code doesn't properly guarantee access to the local working copy
paths to do that kind of processing there.

In many cases it prefers to just pass something url like. (Not necessary the
proper url)

Received on 2014-09-01 16:59:28 CEST

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