Re: Re-merge a change from own history - corrupts svn:mergeinfo
From: Karl Fogel <kfogel_at_red-bean.com>
Date: Thu, 27 Mar 2008 15:16:39 -0400
I wrote:
Just FYI folks, Julian and I had this conversation in IRC:
<kfogel> julianf: responding to your mergeinfo corruption mail right
<kfogel> first making sure I can reproduce
<kfogel> julianf: is the argument
<kfogel> Can't quite tell, from how your mail is formatted.
* kfogel notes that the command now seg faults!
<julianf> kfogel: Yes there were two identical arguments, both
<kfogel> julianf: well, if you only use one of them, you can make svn
<kfogel> I'm debugging that right now.
<julianf> :-)
<kfogel> julianf: suggest using \ for continuation lines in
<kfogel> Though in this case, the ambiguity led us to discover a seg
<julianf> Sure, will try to remember to do so.
<kfogel> julianf: maybe we can figure out this seg fault right here,
<kfogel> got a sec?
<julianf> Er.. certainly got a second, but trying to get my first
<kfogel> heh
<kfogel> okay, one sec
<julianf> I'll go to the command line now and try to reproduce your seg
<julianf> (Yes it's "yours" now :-)
<kfogel> This is if you pass just *one* of the two file args from your
<kfogel> (I haven't tested with two yet.)
<kfogel> I'm in libsvn_client/merge.c:do_file_merge(). We enter the
<kfogel> with 'honor_mergeinfo' set to FALSE, as expected. Now look
<kfogel> block that starts with "if (honor_mergeinfo)\n {". Note that
<kfogel> conditional block is the only place we set local var
<kfogel> (There's also an 'else' clause that is two lines long. Since
<kfogel> honor_mergeinfo is false for us, we go into that 'else'
<kfogel> Later, near the end of the function, we call
<kfogel> passing it mergeinfo_path (which in my process has value 0x9
<kfogel> which is obviously bogus -- it's just an uninitialized local
<kfogel> julianf: EOT :-)
<kfogel> julianf: aha, I can reproduce the seg fault even passing
<kfogel> Here, I'll write up a repro script for you.
<kfogel> julianf: http://pastebin.ca/959867
<kfogel> I'm assuming that's the same segfault as the one-arg version,
<julianf> It's very likely the exact same code path that results in no
<kfogel> julianf: makes sense
<julianf> Want me to have a go at fixing it? (Doesn't sound
<kfogel> julianf: sure, go for it
---------------------------------------------------------------------
|
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.