Return-Path: Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: (qmail 45881 invoked from network); 13 Jan 2011 16:15:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 13 Jan 2011 16:15:27 -0000 Received: (qmail 80205 invoked by uid 500); 13 Jan 2011 16:15:26 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 80044 invoked by uid 500); 13 Jan 2011 16:15:23 -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 Delivered-To: moderator for users@subversion.apache.org Received: (qmail 75014 invoked by uid 99); 13 Jan 2011 16:12:34 -0000 X-ASF-Spam-Status: No, hits=1.5 required=10.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) X-TM-IMSS-Message-ID: <5d66c29d0000bcaa@rwe.com> X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CBB33C.9E6072CC" Subject: Subversion Issue: 'delete file' not transmitted to server when performing multiple merge-commit Date: Thu, 13 Jan 2011 16:12:04 +0000 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Subversion Issue: 'delete file' not transmitted to server when performing multiple merge-commit thread-index: AcuzPJ4SWL2m7bK5QDyzmYuF8Z79/g== From: To: CC: , X-OriginalArrivalTime: 13 Jan 2011 16:12:05.0214 (UTC) FILETIME=[9EB31FE0:01CBB33C] X-Virus-Checked: Checked by ClamAV on apache.org ------_=_NextPart_001_01CBB33C.9E6072CC Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Dear Users, My user reported that an extra file existed in the repository after performing a merge (claiming this file was not in his working copy prior to the commit). My initial thought was they had done the merges out of sequence causing the deletion of a file before it was added, the user was adamant this was not the case. I created a copy of the repository (up to the revision immediately before the merge) and reproduced the merge. The working copy was correct however once committed the extra file appeared in the repository. What appears to be the issue was when a revision containing and add folder with files is merged, then delete one of the files in a subsequent revision merge, the working copy is correct but the "delete" was not transmitted to the server (only the add folder & contents). If each merge revision was committed separately then the issue does not appear (this is *not* a practical work-around since the merge-commit is one logical unit of work - i.e. all the changes related to one defect). We are currently using Subversion 1.6.12 (client & server), Apache 2.2 (server) and TortoiseSVN 1.6.10 (clients) in a Windows only environment (Server 2003 / XP). I have created a test script that reproduces the issue (the file that should be deleted is 'trunk/folder3/file6.txt') This script should be run twice (copy it to two separate directories), once performing three merges with three commits (gives correct result) and once performing three merges with one commit. REM build starting structure md start md start\branches md start\tags md start\trunk md start\trunk\folder1 echo > start\trunk\folder1\file1.txt md start\trunk\folder2 echo > start\trunk\folder2\file2.txt echo > start\trunk\folder2\file3.txt REM initiate repository (set repo=3D saves code) svnadmin create repo set repo=3Dfile:///%cd:\=3D/%/repo svn import start %repo% -m "Import Starting Structure" svn copy %repo%/trunk %repo%/branches/dev -m "" svn checkout %repo%/branches/dev dev REM add new files=20 echo > dev\folder1\file4.txt svn add dev/folder1/file4.txt echo > dev\folder2\file5.txt svn add dev/folder2/file5.txt svn commit dev -m "Add some new files" REM add new folder=20 md dev\folder3 echo > dev\folder3\file6.txt echo > dev\folder3\file7.txt svn add dev/folder3 REM modify a file echo >> dev\folder2\file3.txt svn commit dev -m "Add new folder/files + change a file" svn del dev/folder2/file5.txt svn del dev/folder3/file6.txt svn commit dev -m "Delete some files" svn checkout %repo%/trunk trunk svn merge %repo%/branches/dev@3 trunk REM comment-out on second run!!! svn commit trunk -m "Merge changes back" svn merge %repo%/branches/dev@4 trunk REM comment-out on second run!!! svn commit trunk -m "Merge changes back" svn merge %repo%/branches/dev@5 trunk svn commit trunk -m "Merge changes back" svn ls -R trunk The working copy (trunk) will be identical after both runs, however the repositories are different. The file "file6.txt" that was deleted from the "branches/dev/folder3" in revision 5 is not removed from "trunk/folder3" when merged at the same time that this folder was added in revision 4. Awaiting an acknowledgement (and a "buddy" to confirm). Regards Neil Tuffs Configuration & Release Management RWE Supply & Trading GmbH Windmill Hill Business Park Whitehill Way Swindon SN5 6PB Tel (Internal): 7 322 2705 Tel (External): +44 (0)1793 892705 Fax: +44 (0)1793 893560 E-mail: neil.tuffs@rwe.com ------_=_NextPart_001_01CBB33C.9E6072CC Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subversion Issue: 'delete file' not transmitted to server when = performing multiple merge-commit

Dear Users,

My user reported that an extra file = existed in the repository after performing a merge (claiming this file = was not in his working copy prior to the commit).  My initial = thought was they had done the merges out of sequence causing the = deletion of a file before it was added, the user was adamant this was = not the case.

I created a copy of the repository (up = to the revision immediately before the merge) and reproduced the = merge.  The working copy was correct however once committed the = extra file appeared in the repository.  What appears to be the = issue was when a revision containing and add folder with files is = merged, then delete one of the files in a subsequent revision merge, the = working copy is correct but the "delete" was not transmitted = to the server (only the add folder & contents).   If each = merge revision was committed separately then the issue does not appear = (this is *not* a practical work-around since the merge-commit is one = logical unit of work - i.e. all the changes related to one = defect).

We are currently using Subversion = 1.6.12 (client & server), Apache 2.2 (server) and TortoiseSVN 1.6.10 = (clients) in a Windows only environment (Server 2003 / XP).

I have created a test script that = reproduces the issue (the file that should be deleted is = 'trunk/folder3/file6.txt')

This script should be run twice (copy = it to two separate directories), once performing three merges with three = commits (gives correct result) and once performing three merges with one = commit.

REM build = starting structure
md = start
md = start\branches
md = start\tags
md = start\trunk
md = start\trunk\folder1
echo > = start\trunk\folder1\file1.txt
md = start\trunk\folder2
echo > = start\trunk\folder2\file2.txt
echo > = start\trunk\folder2\file3.txt

REM initiate = repository (set repo=3D saves code)
svnadmin = create repo
set repo=3Dfile:///%cd:\=3D/%/repo

svn import = start %repo% -m "Import Starting Structure"
svn copy = %repo%/trunk %repo%/branches/dev -m ""

svn checkout = %repo%/branches/dev dev

REM add new = files
echo > = dev\folder1\file4.txt
svn add = dev/folder1/file4.txt
echo > = dev\folder2\file5.txt
svn add = dev/folder2/file5.txt
svn commit dev = -m "Add some new files"

REM add new = folder
md = dev\folder3
echo > = dev\folder3\file6.txt
echo > = dev\folder3\file7.txt
svn add = dev/folder3
REM modify a = file
echo >> = dev\folder2\file3.txt
svn commit dev = -m "Add new folder/files + change a file"

svn del = dev/folder2/file5.txt
svn del = dev/folder3/file6.txt
svn commit dev = -m "Delete some files"

svn checkout = %repo%/trunk trunk

svn merge = %repo%/branches/dev@3 trunk
REM = comment-out on second run!!!
svn commit = trunk -m "Merge changes back"

svn merge = %repo%/branches/dev@4 trunk
REM = comment-out on second run!!!
svn commit = trunk -m "Merge changes back"

svn merge = %repo%/branches/dev@5 trunk
svn commit = trunk -m "Merge changes back"

svn ls -R = trunk

The working copy (trunk) will be = identical after both runs, however the repositories are different.  = The file "file6.txt" that was deleted from the = "branches/dev/folder3" in revision 5 is not removed from = "trunk/folder3" when merged at the same time that this folder = was added in revision 4.

Awaiting an acknowledgement (and a = "buddy" to confirm).

Regards
Neil = Tuffs
Configuration & = Release Management

RWE Supply & = Trading GmbH
Windmill Hill = Business Park
Whitehill Way
Swindon
SN5 6PB

Tel (Internal): 7 322 = 2705
Tel (External): +44 (0)1793 892705
Fax:    +44 (0)1793 893560
E-mail: neil.tuffs@rwe.com


------_=_NextPart_001_01CBB33C.9E6072CC--