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

RE: Incorrect/confusing merge notification

From: Paul Burba <pburba_at_collab.net>
Date: 2007-10-19 17:29:41 CEST

> -----Original Message-----
> From: Mark Phippard [mailto:markphip@gmail.com]
> Sent: Friday, October 19, 2007 10:21 AM
> To: Subversion Developers
> Cc: Kamesh Jayachandran
> Subject: Incorrect/confusing merge notification
>
> I saw someone else mention this in another email thread. I
> just wanted to revive it and give a sample.
>
> Using the merge tracking sample repository from CollabNet:
>
> $ svn co $R/trunk notify
> A notify/products
> A notify/products/little.html
> A notify/products/medium.html
> A notify/products/big.html
> A notify/products/roadmap.html
> A notify/products/index.html
> A notify/about
> A notify/about/index.html
> A notify/index.html
> A notify/news
> A notify/news/index.html
> A notify/support
> A notify/support/index.html
> A notify/jobs
> A notify/jobs/index.html
> U notify
> Checked out revision 17.
> $ cd notify/
> $ svn merge $R/branches/a
> --- Merging r8 through r17 into '.':
> A products/roadmap.html
> $ svn st
> M .
>
> The 'A'dd notification should not be happening. The file has
> already been added and committed via a previous merge. All
> of the changes from branches/a have already been merged to
> trunk via /branches/b.

Mark,

On Windows I get even more bad behavior:

>svn merge %URLMT%/branches/a -c11
--- Merging r11 into '.':
A products\roadmap.html
U products\index.html
U index.html
U news\index.html

The three 'U'pdates look like a longstanding bug that is only seeing the
light of day now that we avoid repeated merges. The problem is in
libsvn_wc/merge.c:svn_wc__merge_internal():

615 else
616 {
617 svn_boolean_t same;
618 SVN_ERR(svn_io_files_contents_same_p(&same, result_target,
619 merge_target, pool));
620
621 *merge_outcome = same ? svn_wc_merge_unchanged :
svn_wc_merge_merged;
622 }

result_target: "products/.svn/tmp/tempfile.6.tmp"
merge_target: "products/index.html"

"products/index.html" and "products/.svn/tmp/tempfile.6.tmp" effectively
have the same contents so the merge_outcome should be
svn_wc_merge_unchanged. I say "effectively" because
"products/index.html" has svn:eol-style : native set on it, so on
Windows svn_io_files_contents_same_p() thinks they differ, so the
merge_outcome get's set to svn_wc_merge_merged leading to the bogus
notification.

The 'A products\roadmap.html' notification suffers from the same
problem but also from an analogous problem with a prop add...still
tracking that down.

Paul

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Oct 19 17:34:25 2007

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