Return-Path: X-Original-To: apmail-subversion-dev-archive@minotaur.apache.org Delivered-To: apmail-subversion-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2FC7C6F13 for ; Wed, 1 Jun 2011 08:29:02 +0000 (UTC) Received: (qmail 9280 invoked by uid 500); 1 Jun 2011 08:29:01 -0000 Delivered-To: apmail-subversion-dev-archive@subversion.apache.org Received: (qmail 9250 invoked by uid 500); 1 Jun 2011 08:29:01 -0000 Mailing-List: contact dev-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@subversion.apache.org Received: (qmail 9242 invoked by uid 99); 1 Jun 2011 08:29:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 08:29:01 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jcorvel@gmail.com designates 209.85.210.171 as permitted sender) Received: from [209.85.210.171] (HELO mail-iy0-f171.google.com) (209.85.210.171) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 08:28:56 +0000 Received: by iyi20 with SMTP id 20so6575869iyi.16 for ; Wed, 01 Jun 2011 01:28:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:content-transfer-encoding; bh=yl+ZSQckVJOAyhVVoUmMeHH/VFqN8BBL416m7yTAKss=; b=IGEx227kjlzzH5jxkX5TSm46++4yfR5bXTBeCGcU7KHYS96wDT33Wqaqgg1Bk6Eo2y DvtwZV3e8NpM6CSs/6fqTIttOf0dwe+yirnZPI0zyZXk7JGIe7mP9P7Whg+LakyRh94O LQv4TfuQ7Q7s9cmMaUbFoxJEiYDKe0Uo1x/rQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=s9O9uYqAaAOheSV7Qt/jmUA1LJ13pGeN5O33uHdQQyGiV0gTDT/DV5lqnPkBmDuK0H ruZbS4jS3AZW22CIt94xqA4t2zJXYmtnQJv9798mxZIm7krRRT5SS7o++BTEiWlyaRzQ dFPIr9hdXhSGBFsJCV3fWVFMUP8VxzWafq4/k= Received: by 10.42.150.132 with SMTP id a4mr12666527icw.199.1306916915908; Wed, 01 Jun 2011 01:28:35 -0700 (PDT) MIME-Version: 1.0 Received: by 10.42.228.137 with HTTP; Wed, 1 Jun 2011 01:28:15 -0700 (PDT) In-Reply-To: <87vcwqm0z8.fsf@stat.home.lan> References: <2AD5BED2527E354DB77EB7C09A081E451824000A@fe20099s.ecn.etasgroup.com> <1306501985.1991.1918.camel@edith> <4DE22DA4.8090805@web.de> <87vcwqm0z8.fsf@stat.home.lan> From: Johan Corveleyn Date: Wed, 1 Jun 2011 10:28:15 +0200 Message-ID: Subject: Re: [PATCH] Simplification/speed-up of libsvn_diff by eliminating idx To: Philip Martin Cc: Stefan Fuhrmann , dev@subversion.apache.org, morklo@gmail.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Wed, Jun 1, 2011 at 10:04 AM, Philip Martin wrote: > Stefan Fuhrmann writes: > >>> Updated log message: >>> [[[ >>> Simpler/faster LCS algorithm in libsvn_diff by elimination of idx. >>> >>> * subversion/libsvn_diff/lcs.c >>> =A0 (svn_diff__snake): Removed idx parameter (always 0) >>> =A0 (svn_diff__lcs): Removed idx variable (always 0) , let d have eithe= r >>> =A0 =A0sign, and moved the origo of fp by d. New version no longer choo= ses >>> =A0 =A0the shorter file as the "original", and can thus give different = LCS's >>> =A0 =A0depending on the order of the input files even when the files ha= ve >>> =A0 =A0different lengths. Speed is ~15% faster for core lcs algorithm. >>> ]]] >> Committed as r1128857. I took the liberty to >> weaken the speed-up claim. > > This commit fixed the spurious conflict on update in issue 3449, I > suppose the chosen LCS is "better" in this particular case. =A0Are there > likely to be cases where the chosen LCS is "worse" so that previously > clean merges are now conflicts? > > See r1130036 for a 3449 regression test. I was wondering about the exact same thing yesterday :). I suspected that the sudden resolution to issue 3449 was related to this. The chosen LCS is indeed better now, because it follows the same direction for both comparisons involved in the update/merge (i.e. (Base, Mine) and (Base, Theirs), whereas previously the LCS could be reversed based on which side was shorter). See Morten's explanation (and my reply) about this a couple of mails ago in this thread. But I'm also unsure about your second question: are the cases where there was previously a clean merge, and now a "spurious" conflict. I suppose one could come up with an example, but I guess it would be more up to interpretation whether or not there should be (or should have been) a conflict. I have to think some more about this. Maybe Morten has an idea? Cheers, --=20 Johan