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

Re: tree-conflicts: dirs_same_p()

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Thu, 25 Sep 2008 23:38:24 +0100

On Fri, 2008-09-26 at 00:17 +0200, Neels J. Hofmeyr wrote:
> Duh, target needs to be "".

> Neels J. Hofmeyr wrote:
> > Hey Julian,
> >
> > I'm investigating your preliminary patch for directory comparison (I've
> > attached the patch for dev@'s reference). Here's what I found:
> >
> >
> > In merge_tests.py 122
> > First merge operation
> > In dirs_same_p()
> > dirs_same_file_delete() reports a difference, where it shouldn't.
> >
> >
> > A backtrace reveals some sort of pointer fault in the PATH argument:
> >
> > #0 dirs_same_file_deleted (adm_access=0x0, state=0x0,
> > path=0x82c5340 "A/B2/X�\036\b�!*\b �'\b\\�\036\b/lambda",
> > [...]
> >
> >
> > To cut a long trace short, the erratic path element is introduced because
> > const char *TARGET is used uninitialized in dirs_same_p(). That any of it
> > ever worked is close to a miracle ;)

Neels, this didn't ever work. This is me having started to port some of
the diff code into this new "dirs_same_p" function. I haven't finished
it. I forgot to initialise "target", as you've discovered. There are,
I'm quite sure, other things I haven't yet initialised or coded in this
function.

Next thing I notice is that the test suite says:

[[[
$ svn-py-test merge 122
Couldn't find node 'psi.tmp' in expected disk tree
 * Node name: psi.tmp
    Path: __SVN_ROOT_NODE/psi.tmp
    Contents: This is the file 'psi'.

    Properties: {}
    Attributes: {}
    Children: None (node is probably a file)
=============================================================
Dry-run merge altered working copy
=============================================================
[...]
]]]

Notice the "Dry-run merge altered working copy". It shouldn't do that.
That's a bug I can go looking for. That will be when it is raising tree
conflicts, it wants to generate a notification but it shouldn't store
the conflict information in the WC if it's a dry run.

Do you use IRC? We could chat on #svn-dev if so.

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-26 00:38:50 CEST

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