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 8104A105DF for ; Thu, 13 Mar 2014 03:59:41 +0000 (UTC) Received: (qmail 49768 invoked by uid 500); 13 Mar 2014 03:59:40 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 49741 invoked by uid 500); 13 Mar 2014 03:59:39 -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 49713 invoked by uid 99); 13 Mar 2014 03:59:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Mar 2014 03:59:37 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of brane@wandisco.com designates 74.125.83.52 as permitted sender) Received: from [74.125.83.52] (HELO mail-ee0-f52.google.com) (74.125.83.52) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Mar 2014 03:59:31 +0000 Received: by mail-ee0-f52.google.com with SMTP id e49so149001eek.39 for ; Wed, 12 Mar 2014 20:59:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wandisco.com; s=gapps; h=message-id:date:from:organization:user-agent:mime-version:to :subject:references:in-reply-to:content-type; bh=2IhXg5RWG4UGoMsgWbKm47+mt5Si8VbvqgMLOoVVjQQ=; b=eIwQcWTtpPetdbh7AobJg7528X65M0hXbd5pzGRv6PIVcM6qSgc4m2hce/2vKP/1u2 NGGhAD24wSTEW5TBa+bRMGcz0jjpuD2xhqL+75fcswerSxaiSGVNsyN8xuzCPRNrCcsH wLaSOMpS3wsZspPxjXi7i0cWA2R8acPXZjwYM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:organization:user-agent :mime-version:to:subject:references:in-reply-to:content-type; bh=2IhXg5RWG4UGoMsgWbKm47+mt5Si8VbvqgMLOoVVjQQ=; b=fEQT4vRS3mPXvrV+Z3dWv6vbUrrpSbwZ5g4ACpiXZR4/KC8ciRN5xHK9alBF3m7Gcn adQQ4+ZGEcK7rC/QUdRS/hxNMyl4q+MF+NcqBoQYeFhQIM2SztyLuQtcUpHyVOGm5iCz luR2R/JJ5xK4hQOvNy4Dl0FRiXDx3llvoPbgobdXbrGOpGMd6gd4aas2yAhhZFjH14Dd /q2urEpaIDM21U332dhlgf+6FZ8S4K5Q8jqevE1I2ctlc891bPe0B8P2stNjiKAgmnXQ xDqFyZVWVNTojFsCtYY++anJv/B6Y6rtwxPRxHZimpXeMZ5223g1WPMS6sjVI7w0NMc7 F58Q== X-Gm-Message-State: ALoCoQlCiB6I72EdDzNS5xgP4luxxfncsnLIH1rgsYwbm2MN9N0Emd1XwTDsghwEtCTsOXpBI7HM X-Received: by 10.14.95.2 with SMTP id o2mr1100469eef.69.1394683150078; Wed, 12 Mar 2014 20:59:10 -0700 (PDT) Received: from zulu.local ([77.234.149.122]) by mx.google.com with ESMTPSA id f45sm3444098eeg.5.2014.03.12.20.59.08 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 12 Mar 2014 20:59:09 -0700 (PDT) Received: from zulu.local (localhost [IPv6:::1]) by zulu.local (Postfix) with ESMTP id CDDE9AAA5C98 for ; Thu, 13 Mar 2014 04:59:09 +0100 (CET) Message-ID: <53212D0D.9080509@wandisco.com> Date: Thu, 13 Mar 2014 04:59:09 +0100 From: =?UTF-8?B?QnJhbmtvIMSMaWJlag==?= Organization: WANdisco User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: users@subversion.apache.org Subject: Re: Mergeinfo overwritten from successive merges References: In-Reply-To: Content-Type: multipart/mixed; boundary="------------000705090009010702090306" X-Virus-Checked: Checked by ClamAV on apache.org This is a multi-part message in MIME format. --------------000705090009010702090306 Content-Type: multipart/alternative; boundary="------------090401000008010102030704" --------------090401000008010102030704 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 12.03.2014 21:24, Jeb Wilson wrote: > Hello all, > > Apologies if this has already been reported, but it's a difficult one to search for. This came through from TortoiseSVN 1.8.5. > > Here's the basic way to reproduce: > > User #1 merges from A -> B and commits. > User #2 merges SOMETHING ELSE from A->B but doesn't update first to get User #1's changes. > User #2 commits, and SVN allows the commit. After reviewing the resulting mergeinfo, User #1's mergeinfo is overwritten, and the merge info from User #1 is lost. > > I've reproduced this several times with TortoiseSVN 1.8.5. Note, we're using 2.5.16 version of VisualSVN server. > > My opinion is SVN should reject User #2's commit, and inform them they have an out-of-date working copy and it should force them to update before committing their merge changes. > When I downgrade to 1.8.3, the proper "out of date" warning comes up and forces an update. Thus, it must have been something that was introduced as of 1.8.4. > FYI, another user has reported this issue here: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3071239 I can't reproduce this with either 1.8.5 or 1.8.8, with the attached script; both give the same output (see below). If this is indeed a bug, and not pilot error, it would appear to be specific to TortoiseSVN, not Subversion. -- Brane brane@zulu:/tmp/test$ ~/repro.sh + svnadmin create repo + svn checkout file:///tmp/test/repo structure Checked out revision 0. + svn mkdir structure/trunk A structure/trunk + echo a + echo b + svn add structure/trunk/a structure/trunk/b A structure/trunk/a A structure/trunk/b + svn commit -mm structure Adding structure/trunk Adding structure/trunk/a Adding structure/trunk/b Transmitting file data .. Committed revision 1. + rm -fr structure + svn copy -mm file:///tmp/test/repo/trunk file:///tmp/test/repo/branch Committed revision 2. + svn checkout file:///tmp/test/repo/trunk user1 A user1/a A user1/b Checked out revision 2. + echo aa + svn commit -mm user1 Sending user1/a Transmitting file data . Committed revision 3. + svn checkout file:///tmp/test/repo/trunk user2 A user2/a A user2/b Checked out revision 3. + echo bb + svn commit -mm user2 Sending user2/b Transmitting file data . Committed revision 4. + svn switch file:///tmp/test/repo/branch user1 U user1/a Updated to revision 4. + svn switch file:///tmp/test/repo/branch user2 U user2/b U user2/a Updated to revision 4. + svn merge -c3 file:///tmp/test/repo/trunk user1 --- Merging r3 into 'user1': U user1/a --- Recording mergeinfo for merge of r3 into 'user1': U user1 + svn commit -mm user1 Sending user1 Sending user1/a Transmitting file data . Committed revision 5. + svn merge -c4 file:///tmp/test/repo/trunk user2 --- Merging r4 into 'user2': U user2/b --- Recording mergeinfo for merge of r4 into 'user2': U user2 + svn commit -mm user2 Sending user2 svn: E155011: Commit failed (details follow): svn: E155011: Directory '/private/tmp/test/user2' is out of date svn: E160028: Directory '/branch' is out of date -- Branko Čibej | Director of Subversion WANdisco // Non-Stop Data e. brane@wandisco.com --------------090401000008010102030704 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
On 12.03.2014 21:24, Jeb Wilson wrote:
Hello all,

Apologies if this has already been reported, but it's a difficult one to search for. This came through from TortoiseSVN 1.8.5.

Here's the basic way to reproduce:

User #1 merges from A -> B and commits.
User #2 merges SOMETHING ELSE from A->B but doesn't update first to get User #1's changes.
User #2 commits, and SVN allows the commit. After reviewing the resulting mergeinfo, User #1's mergeinfo is overwritten, and the merge info from User #1 is lost.

I've reproduced this several times with TortoiseSVN 1.8.5. Note, we're using 2.5.16 version of VisualSVN server.

My opinion is SVN should reject User #2's commit, and inform them they have an out-of-date working copy and it should force them to update before committing their merge changes.
When I downgrade to 1.8.3, the proper "out of date" warning comes up and forces an update. Thus, it must have been something that was introduced as of 1.8.4.
FYI, another user has reported this issue here: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3071239

I can't reproduce this with either 1.8.5 or 1.8.8, with the attached script; both give the same output (see below). If this is indeed a bug, and not pilot error, it would appear to be specific to TortoiseSVN, not Subversion.

-- Brane

brane@zulu:/tmp/test$ ~/repro.sh 
+ svnadmin create repo
+ svn checkout file:///tmp/test/repo structure
Checked out revision 0.
+ svn mkdir structure/trunk
A         structure/trunk
+ echo a
+ echo b
+ svn add structure/trunk/a structure/trunk/b
A         structure/trunk/a
A         structure/trunk/b
+ svn commit -mm structure
Adding         structure/trunk
Adding         structure/trunk/a
Adding         structure/trunk/b
Transmitting file data ..
Committed revision 1.
+ rm -fr structure
+ svn copy -mm file:///tmp/test/repo/trunk file:///tmp/test/repo/branch

Committed revision 2.
+ svn checkout file:///tmp/test/repo/trunk user1
A    user1/a
A    user1/b
Checked out revision 2.
+ echo aa
+ svn commit -mm user1
Sending        user1/a
Transmitting file data .
Committed revision 3.
+ svn checkout file:///tmp/test/repo/trunk user2
A    user2/a
A    user2/b
Checked out revision 3.
+ echo bb
+ svn commit -mm user2
Sending        user2/b
Transmitting file data .
Committed revision 4.
+ svn switch file:///tmp/test/repo/branch user1
U    user1/a
Updated to revision 4.
+ svn switch file:///tmp/test/repo/branch user2
U    user2/b
U    user2/a
Updated to revision 4.
+ svn merge -c3 file:///tmp/test/repo/trunk user1
--- Merging r3 into 'user1':
U    user1/a
--- Recording mergeinfo for merge of r3 into 'user1':
 U   user1
+ svn commit -mm user1
Sending        user1
Sending        user1/a
Transmitting file data .
Committed revision 5.
+ svn merge -c4 file:///tmp/test/repo/trunk user2
--- Merging r4 into 'user2':
U    user2/b
--- Recording mergeinfo for merge of r4 into 'user2':
 U   user2
+ svn commit -mm user2
Sending        user2
svn: E155011: Commit failed (details follow):
svn: E155011: Directory '/private/tmp/test/user2' is out of date
svn: E160028: Directory '/branch' is out of date

--
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. brane@wandisco.com
--------------090401000008010102030704-- --------------000705090009010702090306 Content-Type: application/x-sh; name="repro.sh" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="repro.sh" #!/bin/sh svn="${1:-svn}" svnadmin="${2:-svnadmin}" repo="file://$(pwd)/repo" rm -fr repo structure user1 user2 set -e set -x "$svnadmin" create repo # r0 "$svn" checkout "$repo" structure "$svn" mkdir structure/trunk echo "a" > structure/trunk/a echo "b" > structure/trunk/b "$svn" add structure/trunk/a structure/trunk/b "$svn" commit -mm structure # r1 rm -fr structure "$svn" copy -mm "$repo"/trunk "$repo"/branch # r2 "$svn" checkout "$repo"/trunk user1 echo "aa" > user1/a "$svn" commit -mm user1 # r3 "$svn" checkout "$repo"/trunk user2 echo "bb" > user2/b "$svn" commit -mm user2 # r4 "$svn" switch "$repo"/branch user1 "$svn" switch "$repo"/branch user2 "$svn" merge -c3 "$repo"/trunk user1 "$svn" commit -mm user1 # r5 "$svn" merge -c4 "$repo"/trunk user2 "$svn" commit -mm user2 # r6 --------------000705090009010702090306--