List Info

Thread: New - reflective merges are faulty




New - reflective merges are faulty
user name
2007-08-30 07:12:06
http://subversion.tigris.org/issues/show_bug.cgi?id=2897

                 Issue #|2897
                 Summary|reflective merges are faulty
               Component|subversion
                 Version|trunk
                Platform|All
                     URL|
              OS/Version|All
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P1
            Subcomponent|libsvn_client
             Assigned to|issuessubversion
             Reported by|kameshj






------- Additional comments from kameshjtigris.org Thu Aug 30 05:12:06 -0700 2007 -------
While studying merge.c to fix issue 2821, I came across the
following snippet of
code which suggested a bug to me.

<snip from calculate_requested_merges>
  if (added_mergeinfo)
    {
      const char *src_rel_path;
     
SVN_ERR(svn_client__path_relative_to_root(&src_rel_path,
entry->url,
                                               
entry->repos, ra_session,
                                                adm_access,
pool));
      src_rangelist_for_tgt = apr_hash_get(added_mergeinfo,
src_rel_path,
                                          
APR_HASH_KEY_STRING);
    }
</snip>

The above logic is wrong, take the following usecase,
1)We branched /trunk as /fb at r51.(Now /fb has a mergeinfo
of /trunk: 1-50)
2)We did changes to /fb at r52 and r53
3)Synched up the changes from /trunk to /fb via a merge and
committed the merge
at r60(Now /fb has a mergeinfo of /trunk: 1-59)
4)Did some changes to /fb at r61, r62
5)Merge -r51:62 $URL_to/fb to $WC_of_trunk
Now our above reflective logic code removes '51:59' from
'51:62' and hence just
merges '60:62' and hence does a bogus possible conflict and
never merges the
commits '/fb' prior to synch up from the '/trunk' to '/fb'.

Attaching simple shell script to prove the problem.

------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


reflective merges are faulty
user name
2007-08-30 07:12:48
http://subversion.tigris.org/issues/show_bug.cgi?id=2897




User kameshj changed the following:

                What    ld value 
               |New value
============================================================
====================
        Target milestone|---                       |1.5
------------------------------------------------------------
--------------------




------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


reflective merges are faulty
user name
2007-08-30 07:13:42
http://subversion.tigris.org/issues/show_bug.cgi?id=2897




User kameshj changed the following:

                What    ld value 
               |New value
============================================================
====================
         Attachment data|                          |Created
an attachment (id=
                        |                          |720)
Shell script to prove
                        |                          | the
problem

------------------------------------------------------------
--------------------




------- Additional comments from kameshjtigris.org Thu Aug 30 05:13:42 -0700 2007 -------
Created an attachment (id=720)
Shell script to prove the problem


------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


reflective merges are faulty
user name
2007-08-30 07:13:58
http://subversion.tigris.org/issues/show_bug.cgi?id=2897




User kameshj changed the following:

                What    ld value 
               |New value
============================================================
====================
       Status whiteboard|                         
|merge-tracking
------------------------------------------------------------
--------------------




------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


reflective merges are faulty
user name
2007-08-30 07:59:28
http://subversion.tigris.org/issues/show_bug.cgi?id=2897







------- Additional comments from kameshjtigris.org Thu Aug 30 05:59:28 -0700 2007 -------
Possible approach would be to run 'svn log' on
$MERGE_SRC_URL and find the
revisions where any node underwent a 'property modification'
and that property
is 'svn:mergeinfo'. It may be very complex/resource
intensive to do if some
subtree of feature branch has explicit merge from the
corresponding item from
the '/trunk'.

We already keep track of the 'commit revision' inside the
sqlite, when this
merge has been committed.

We should propagate this commit revision to the client via
our existing
'mergeinfo' report.(Yes it causes a difference of
information that our working
copy can not give on its own at anytime).

Currently our mergeinfo http response gives the following
output.
<S:mergeinfo-report xmlns:S="svn:" xmlns="D
AV:">
<S:mergeinfo-item>
<S:mergeinfo-path>/fb</S:mergeinfo-path>
<S:mergeinfo-info>/trunk:1-2,4-5</S:mergeinfo-info&
gt;
</S:mergeinfo-item></S:mergeinfo-report>

It should be changed to ('S:mergeinfo-info' tag
specifically)
<S:mergeinfo-report xmlns:S="svn:" xmlns="D
AV:">
<S:mergeinfo-item>
<S:mergeinfo-path>/fb</S:mergeinfo-path>
<S:mergeinfo-info
src='/trunk'>(3)1-2,(6)4-5,(9)3</S:mergeinfo-info>
</S:mergeinfo-item></S:mergeinfo-report>

(3)1-2,(6)4-5,(9)3, Here the numbers in bracket preceding
range means a 'commit
revision number having this merge.

------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


reflective merges are faulty
user name
2007-09-14 07:56:12
http://subversion.tigris.org/issues/show_bug.cgi?id=2897







------- Additional comments from kameshjtigris.org Fri Sep 14 05:56:12 -0700 2007 -------
Thanks to Senthil's patch, XFail Testcase has been committed
in r26594.

------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribesubversion.tigris.org
For additional commands, e-mail: issues-helpsubversion.tigris.org


[1-6]

about | contact  Other archives ( Real Estate discussion Medical topics )