> -----Original Message-----
> From: Stefan Sperling [mailto:stsp_at_elego.de]
> Sent: zondag 9 mei 2010 15:43
> To: Greg Stein
> Cc: dev_at_subversion.apache.org
> Subject: Re: conflict-storage, and filenames
> On Sat, May 08, 2010 at 11:15:31PM -0400, Greg Stein wrote:
> > Hey all,
> > In wc-1, we record filenames where merge sources are stored, and
> > property rejects are written. These are:
> > entry->conflict_wrk, ->conflict_old, ->conflict_new, and ->prejfile
> > These file names do not appear to have any corresponding values in
> > proposed skels detailed in notes/wc-ng/conflict-storage.
> > We cannot simply derive the filenames because there may be versioned
> > (or unversioned) content with the same names.
> That problem must also exists in wc-1. What does wc-1 do if the files
> already exist?
It creates a file with a different (unique) name and it stores the name that
is used in the svn_wc_entry_t. (The code uses svn_io_open_uniquely_named()
to create the conflict marker file)
As suggested on IRC, I think it is just fine to store the basename of the
conflict filename in the skel as we don't use it in many places. We should
probably store a list of names per conflict type (and maybe allow the same
file to be used for multiple conflict types at the same time?).
We need the names when resolving the conflict and when we want to detect if
a conflict has been resolved by just removing the marker files (We currently
do this from some code paths), but not in performance critical functions as
status; we see that there are no conflicts with _read_info()'s conflicted
boolean and we see the conflict marker files as unversioned.
Another option is to still keep them in the separate columns where they are
now. (Shouldn't be much trouble if we want to store the checksums only in
their own columns, instead of duplicating them in the skels. But if I
remember correctly we do duplicate the values)
Received on 2010-05-09 20:47:10 CEST