Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 7D7A3200BAE for ; Fri, 28 Oct 2016 16:18:16 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 7C0DD160AE3; Fri, 28 Oct 2016 14:18:16 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 74C12160ADD for ; Fri, 28 Oct 2016 16:18:15 +0200 (CEST) Received: (qmail 50366 invoked by uid 500); 28 Oct 2016 14:18:14 -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 50351 invoked by uid 99); 28 Oct 2016 14:18:14 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Oct 2016 14:18:14 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 9A875C0B41 for ; Fri, 28 Oct 2016 14:18:13 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.379 X-Spam-Level: X-Spam-Status: No, score=0.379 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id lKwWt-ywBIGu for ; Fri, 28 Oct 2016 14:18:09 +0000 (UTC) Received: from mail-qk0-f169.google.com (mail-qk0-f169.google.com [209.85.220.169]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id D29BF5F24F for ; Fri, 28 Oct 2016 14:18:08 +0000 (UTC) Received: by mail-qk0-f169.google.com with SMTP id o68so88115526qkf.3 for ; Fri, 28 Oct 2016 07:18:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=WNVrGLfwc6Y0lq8Cmo30ZPbmd/5ecPzp/OeD7cBRKT0=; b=iNCKINL14BhL+Iz7w+823GosClbmzFV+Pjnnx3Mz4bawhs7rndj2Ko4aVzWA2rY9a3 N36QFwpNxUgX6iIxSJa8NMggoZ1y4Ydx4eaRrAHvWOLTm/04N2TdDvVp75cVnzSGSsdM lzwRAQs5az21P01YireNi08wVuxXnooLdypPr9MvqGlXWnZOcwtizjvTCUuR4vpMHZFa Cy2kqKJ21sYvEnqKSUVUhAjDqkkA66u8aSlCfle2ZUOEarKiCbnecXnJWnUlZTB9g0uX l5nkXj3Frf6+u/E3lUPft38igjkJyuMf/JVk4cw7ysA9GBtPzb9rR0hkZ/8krxvO8dFn 8eZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=WNVrGLfwc6Y0lq8Cmo30ZPbmd/5ecPzp/OeD7cBRKT0=; b=M3R4F2pN66USi0qaWxFlsfW8iH7X3sWq6FlBOhd/2jU69U7lQyU1QaX1pL0O9S+V3K lMSz5UtJhUzKYZQr8Lnr5HqHUhiDLusLtl2oMnPUOWRt+0NIZQLKaUhgUydxw9Dyn2i3 orSgjenr/8GVtGGZZdys9/FNPYWxeAIh+M+EP2sSzG4csSLy6j/8qh5x6yf68/2N/aP7 WZwjGxpoum3twngtnzCQNIvqTCvScOvbDtzZ4cnXJQnPNk0/O/APOPFQCbxdeyts+o0u CVGvD1+XTmXh8HG4BlRhLU73ziWo2yTrx+RG9dSq1CUP5MOv91kq+CLqlTETXnXOu93C zB8A== X-Gm-Message-State: ABUngvcFYW8bGOkWFNKdS2liG8yyqXSYwlNBBbXp25UcCG/HByaDDQaLjTN4qS8wT4WtDZxU7TkajwbKM+U2nw== X-Received: by 10.55.175.199 with SMTP id y190mr7962712qke.24.1477664228313; Fri, 28 Oct 2016 07:17:08 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.174.135 with HTTP; Fri, 28 Oct 2016 07:16:48 -0700 (PDT) In-Reply-To: <1275f98d-03ff-20b9-d34d-ee8dbd7a0fa4@oma.be> References: <1275f98d-03ff-20b9-d34d-ee8dbd7a0fa4@oma.be> From: Johan Corveleyn Date: Fri, 28 Oct 2016 16:16:48 +0200 Message-ID: Subject: Re: merginfo corruption? To: Peter van Hoof Cc: "users@subversion.apache.org" Content-Type: text/plain; charset=UTF-8 archived-at: Fri, 28 Oct 2016 14:18:16 -0000 On Thu, Oct 27, 2016 at 12:14 PM, Peter van Hoof wrote: > Hi, > > Recently we have been having multiple instances of a problem that doesn't > seem to be going away. The easiest way to see it is to reproduce the > following steps. > > 1) check out a working copy of one of our development branches: > > svn co svn://svn.nublado.org/cloudy/branches/backtrace > > Changes from the trunk were last merged to this branch in r11144. This > checkout looks fine and I want to merge the more recent changes from the > trunk. So cd into it and proceed. > > 2) First take a look at which revisions are eligible: > > svn mergeinfo --show-revs eligible ^/trunk . > r11156 > r11159 > r11160 > r11165 > r11166 > r11167 > [ snip... ] > r11337 > r11338 > r11339 > r11340 > r11341 > > This all looks very plausible. The first commit to the trunk after r11144 is > r11156 and the last is r11341. All numbers shown above are correct. I didn't > check all the numbers I cut out, but I assume they are correct as well. > > 3) All looks fine, so do the merge: > > svn merge ^/trunk . > --- Merging r8669 into 'source': > C source/rt_continuum_shield_fcn.cpp > --- Recording mergeinfo for merge of r8667 through r8669 into '.': > U . > --- Recording mergeinfo for merge of r8667 through r8669 into 'source': > U source > Summary of conflicts: > Text conflicts: 1 > Conflict discovered in file 'source/rt_continuum_shield_fcn.cpp'. > Select: (p) postpone, (df) show diff, (e) edit file, (m) merge, > (mc) my side of conflict, (tc) their side of conflict, > (s) show all options: ^CSummary of conflicts: > Text conflicts: 1 > svn: E155027: Unable to resolve conflicts on > '/home/pvh/noot/backtrace/source/rt_continuum_shield_fcn.cpp' > > I hit ^C here. So all of a sudden svn wants to merge r8669, even though it > was not marked as eligible before (and was already merged a long time > ago)... > > So what is this? Corrupted information in the svn:mergeinfo propety? A bug > in svn? Or both? Maybe your branch wasn't really fully synced with ^/trunk up to r11144, or at least not all mergeinfo related to this sync was fully committed. I would guess that svn is trying to merge r8669 into 'source', because 'source' has "subtree mergeinfo", and someone didn't commit the mergeinfo-modification on 'source', way back when he merged r8669. Further down in your output below, I can see that 'source' actually has subtree mergeinfo (because svn records it there). And as you probably know: once you have subtree mergeinfo, it *always* has to be kept up to date (further merges to the parent will automatically modify any subtree mergeinfo below -- those property mods have to be committed or mergeinfo will be wrong). So maybe someone forgot to commit the property modification on 'source' when he merged r8669. You can probably verify this by checking the exact svn:mergeinfo property on 'source' (with 'svn propget svn:mergeinfo'). > And more importantly how do I fix this? I tried doing this brute-force > approach Okay, seems like a good technique to fix this, but ... > svn revert -R . > > svn merge --record-only -r1:11144 ^/trunk . > --- Merging r2 through r11144 into '.': > G tsuite/auto > G tsuite > G . > --- Recording mergeinfo for merge of r2 through r11144 into '.': > U . > --- Recording mergeinfo for merge of r2 through r11144 into > 'data/lamda/masterlist/Lamda.ini': > U data/lamda/masterlist/Lamda.ini > --- Recording mergeinfo for merge of r2 through r11144 into > 'data/stout/zn/zn_19/zn_19.coll': > U data/stout/zn/zn_19/zn_19.coll > --- Eliding mergeinfo from 'data/stout/zn/zn_19/zn_19.coll': > U data/stout/zn/zn_19/zn_19.coll > --- Recording mergeinfo for merge of r2 through r11144 into > 'data/stout/zn/zn_19/zn_19.nrg': > U data/stout/zn/zn_19/zn_19.nrg > --- Eliding mergeinfo from 'data/stout/zn/zn_19/zn_19.nrg': > U data/stout/zn/zn_19/zn_19.nrg > --- Recording mergeinfo for merge of r2 through r11144 into > 'data/stout/zn/zn_19/zn_19.tp': > U data/stout/zn/zn_19/zn_19.tp > --- Eliding mergeinfo from 'data/stout/zn/zn_19/zn_19.tp': > U data/stout/zn/zn_19/zn_19.tp > --- Recording mergeinfo for merge of r2 through r11144 into 'source': > U source > --- Recording mergeinfo for merge of r2 through r11144 into 'tsuite': > U tsuite > --- Recording mergeinfo for merge of r2 through r11144 into 'tsuite/auto': > U tsuite/auto > --- Recording mergeinfo for merge of r2 through r11144 into > 'tsuite/auto/chianti_all_cool.dat': > U tsuite/auto/chianti_all_cool.dat > --- Recording mergeinfo for merge of r2 through r11144 into > 'tsuite/auto/chianti_all_cool.in': > U tsuite/auto/chianti_all_cool.in Here you should probably perform a commit ("Fixing merginfo of previous merges" or something like that). Note the lines "Eliding mergeinfo from 'data/stout/zn/zn_19/zn_19.coll'" and other "Eliding" lines. This means svn removes subtree mergeinfo there, because it's redundant (it's the same as what the parent directory says). But you leave those property modifications as local mods without committing, which I think lead to the next problem. > svn merge ^/trunk . > --- Merging r11145 through r11342 into '.': > U data/chianti/masterlist/CloudyChianti.ini > G data/lamda/masterlist/Lamda.ini > U data/stout/c/c_3/c_3.coll > [ snip... ] > C data/stout/zn/zn_19/zn_19.coll > C data/stout/zn/zn_19/zn_19.nrg > C data/stout/zn/zn_19/zn_19.tp > [ snip... ] > G tsuite > G . > --- Recording mergeinfo for merge of r11145 through r11342 into '.': > G . > --- Recording mergeinfo for merge of r11145 through r11342 into > 'data/lamda/masterlist/Lamda.ini': > G data/lamda/masterlist/Lamda.ini > --- Recording mergeinfo for merge of r11145 through r11342 into 'source': > G source > --- Recording mergeinfo for merge of r11145 through r11342 into 'tsuite': > G tsuite > --- Recording mergeinfo for merge of r11145 through r11342 into > 'tsuite/auto': > G tsuite/auto > --- Recording mergeinfo for merge of r11145 through r11342 into > 'tsuite/auto/chianti_all_cool.dat': > G tsuite/auto/chianti_all_cool.dat > --- Recording mergeinfo for merge of r11145 through r11342 into > 'tsuite/auto/chianti_all_cool.in': > G tsuite/auto/chianti_all_cool.in > Summary of conflicts: > Property conflicts: 3 > Conflict for property 'svn:mergeinfo' discovered on > 'data/stout/zn/zn_19/zn_19.coll'. > local delete, incoming edit upon merge > Select: (p) postpone, (mf) my version, (tf) their version, > (dc) display conflict, (e) edit property, (q) quit resolution, > (h) help: > > Here I hit ^C again. So this starts promising enough, but then I am faced > with a conflict in the svn:mergeinfo property and I have no idea how to > resolve that. So, that's a property modification coming in on the node where your previous step just removed (elided) the mergeinfo. I'm not 100% sure, but I'd try to commit the previous step first, and then rerun that last command. Hope that fixes it ... > This kind of problem seems to be spreading to more and more development > branches, so I am really keen on finding a definitive solution for this. > This is starting to interfere quite seriously with our workflow. So any help > is appreciated! Maybe interesting for you: https://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/svn-mergeinfo-normalizer This hasn't been released as part of any official svn release yet, but it seems to work quite well for some people, and could surely use additional testing :-) (see [1] for another thread mentioning this tool). [1] https://svn.haxx.se/users/archive-2016-06/0062.shtml -- Johan