Return-Path: X-Original-To: apmail-subversion-users-archive@minotaur.apache.org Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 13EE818BA1 for ; Mon, 22 Feb 2016 12:40:34 +0000 (UTC) Received: (qmail 33001 invoked by uid 500); 22 Feb 2016 12:24:22 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 30850 invoked by uid 500); 22 Feb 2016 12:24:22 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 12846 invoked by uid 99); 22 Feb 2016 12:21:04 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Feb 2016 12:21:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id A1F621A058C for ; Mon, 22 Feb 2016 12:21:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.021 X-Spam-Level: X-Spam-Status: No, score=-0.021 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=qqmail.nl Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id y-bL3ACSBM0t for ; Mon, 22 Feb 2016 12:21:00 +0000 (UTC) Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 18CD85F60D for ; Mon, 22 Feb 2016 12:21:00 +0000 (UTC) Received: by mail-wm0-f48.google.com with SMTP id b205so153004416wmb.1 for ; Mon, 22 Feb 2016 04:21:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qqmail.nl; s=google; h=from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:content-transfer-encoding:thread-index :content-language; bh=PgYiK1Em9Q9yKgQNVs8oMTzGclQjiU0eXU4CJnuMwMo=; b=VlfheUkE6qdHAM8BL7owaws7+XeyF43c7gBXEmqFBIEI+24oNK6rkb4LKfm8nYpHXI 2j6bbRFiUr4Xnqy7ufFecN0saE/A1kYgmB/2I83lbcKbDYk+5uS4SQOt8239ckK+0jFg nodaQTDLpY2vgseK+cfRLrwT3cEH+lLcMZ+TE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:references:in-reply-to:subject:date :message-id:mime-version:content-transfer-encoding:thread-index :content-language; bh=PgYiK1Em9Q9yKgQNVs8oMTzGclQjiU0eXU4CJnuMwMo=; b=azPvttOCPl5/jjrSRXCeh2hbdqbqGsUBa15EMSfTy5X12gjah/fyiXwidyZV2XruIi AV+OX0Q+78tqb972H2jgi3B22M8Gpy5Q85S7c1y/T4IjWGZClyy9iXjJcMfU5ZnSLvxt FbHI5x545FqXN3Ao+fTppqhgLVgPJwnyVBdyLxsY5leHgyhPq+/iZuycF8QCZas3/yin o7tVc8rSCXHNwHZNXGfkF5+rdoJOFEHQgt7f+y4Vo92mbOpCi21ReR9/5qXfkxIl+6Lr s8BQsRX8NEVKESi7/pN91Yn8Ws4BZoxBjdP1xs9GatfPB3ZNgLfYAcAivqAg5gMZ+B0g tY3g== X-Gm-Message-State: AG10YOTphlpQhP7tVaAbVbH+ND+PYOdWealM87HnEn8IolqryJGLku/C/ulxEcog6GGCmQ== X-Received: by 10.28.125.77 with SMTP id y74mr11564674wmc.21.1456143659796; Mon, 22 Feb 2016 04:20:59 -0800 (PST) Received: from I72600 ([2001:610:66e:0:52e5:49ff:fee1:96b7]) by smtp.gmail.com with ESMTPSA id t12sm20812383wmt.20.2016.02.22.04.20.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Feb 2016 04:20:59 -0800 (PST) From: "Bert Huijben" To: "'Daniel Shahaf'" , "'Michal Matyl'" Cc: References: <20160214143442.GA5664@tarsus.local2> In-Reply-To: <20160214143442.GA5664@tarsus.local2> Subject: RE: (unknown) Date: Mon, 22 Feb 2016 13:20:55 +0100 Message-ID: <3f4901d16d6b$7c9a72c0$75cf5840$@qqmail.nl> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQI31TEzXrAOJ+yyOUpzUQTJ5+TV1gHFo0qXnlz8uvA= Content-Language: nl > -----Original Message----- > From: Daniel Shahaf [mailto:d.s@daniel.shahaf.name] > Sent: zondag 14 februari 2016 15:35 > To: Michal Matyl > Cc: users@subversion.apache.org > Subject: Re: (unknown) >=20 > Michal Matyl wrote on Thu, Feb 11, 2016 at 10:19:02 +0000: > > The example is about a simple branch merging with default settings = and > > a classic conflict situation, no fancy features or complex > > trunk-to-branch back merging, so I belive simple prose description = of > > the problem is enough. >=20 > The prose did not suffice: I would not have understood the problem > without the attachment. The preferred way to describe a bug is by > a script that reproduces it. >=20 > For future reference, we provide template scripts at: > https://subversion.apache.org/docs/community- > guide/issues.html#reporting-bugs > (fourth paragraph) >=20 > > First developer creates branch-01 and inserts few lines into = existing > > file. Another developer creates branch-02 and makes exactly the same > > changes as first developer, i.e. inserts the same lines with the = same > > content. The only difference in the second's developer branch is > > whitespace change (space/tab doesn't matter) in a line preceding > > inserted lines. > > >=20 > You are describing a merge where >=20 > * The difference between the OLD and MINE is: >=20 > Index: branches/branch-01/test_file.txt >=20 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D > --- branches/branch-01/test_file.txt (revision 3) > +++ branches/branch-01/test_file.txt (revision 4) > @@ -1,6 +1,9 @@ > A > B > C > +D > +E > +F > J > K > L > \ No newline at end of file >=20 > * The difference between OLD and THEIRS is: >=20 > Index: branches/branch-02/test_file.txt >=20 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D > --- branches/branch-02/test_file.txt (revision 6) > +++ branches/branch-02/test_file.txt (revision 7) > @@ -1,6 +1,9 @@ > A > B > -C > + C > +D > +E > +F > J > K > L > \ No newline at end of file >=20 > * There are no local mods. >=20 > That merge results in: >=20 > Index: trunk/test_file.txt >=20 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/test_file.txt (revision 7) > +++ trunk/test_file.txt (revision 8) > @@ -1,9 +1,12 @@ > A > B > -C > + C > D > E > F > +D > +E > +F > J > K > L > \ No newline at end of file >=20 > Yes, I also think that is a bug: a text conflict should have been > flagged. I just reviewed most of the code that is responsible for this = behavior... and I have to conclude it works 'as designed'. 1) We determine the changes on both sides. * On one side we see a replacement of line 'C', by a different set of = tokens. * And on the other side we see an insertion of a set of tokens after = 'C'. (This code is in subversion/diff/lcs.c) 2) Then we combine the changes of both sides. * We can apply the first change as there are no overlapping regions * We can apply the second change as there no overlapping regions (This code is in subversion/diff/diff3.c) In our very abstract implementation things work as intended... so now we = have to determine how we want to fix things. -> back to design phase. I have a working patch that determines that these changes touch each = other and then marks them as conflict, but that still doesn't produce = the kind of conflict that you would really want here. And I'm not sure In the optimal case we would flag one conflict containing both changes = *as one*, but that will take more work. Note that the 'whitespace' (noted in original report) is completely = unrelated to this issue. Our diff code works with tokens, while the = whitespace is handled in the tokenizer. I can easily reproduce this = issue without any whitespace changes. Bert