[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Merging add of directory within deleted directory fails

From: <ben_at_jsupport.com.au>
Date: 2006-01-20 00:48:14 CET

Hi,

I haven't been able to pin this down as an already identified bug or not,
any comments or status would be very helpful.

Regards,
Ben Hatton

SUMMARY
=======

Merging fails if a) a directory in the source has been deleted in the
destination, and b) the merge set includes a directory addition within that
deleted directory.

I've tried this with subversion 1.2.3 and subversion 1.3.0 (client-side)
against subversion 1.2.3 server, all on windows xp.

TEST CASE
=========

The repository has the following initial structure of two branch
directories:

b1
b2

The process is:

A: Baseline and Branch the Code

1) add and commit a directory ("deltest") and file ("a.txt") in b1
2) copy and commit into b2 (i.e. branch the code)

B: Change in branch 2 to delete the directory

1) delete (with commit) the directory in b2

C: Changes in branch 1, testing merge of updates into branch 2

1) modify the file in b1
2) observe that merge to b2 works with "skipped" message

3) add a new file ("new.txt") in b1
4) observe that merge to b2 works with "skipped" messages

5) add a new direcdtory ("newdir") in b1
6) observe that merge to b2 fails partway through with "is missing or not
locked" message.

TEST CASE RUN
-------------
(I've done some text editing on this to cleanup long pathnames)

C:\svntest>cd b1
C:\svntest\b1>mkdir deltest
C:\svntest\b1>echo "hello" > deltest\a.txt
C:\svntest\b1>svn add deltest
A deltest
A deltest\a.txt

C:\svntest\b1>svn commit -m "original deltest in b1"
Adding b1\deltest
Adding b1\deltest\a.txt
Transmitting file data .
Committed revision 9147.

C:\svntest\b1>svn copy deltest ..\b2
A ..\b2\deltest

C:\svntest\b1>cd ..\b2

C:\svntest\b2>svn status
A + deltest

C:\svntest\b2>svn commit -m "commit copy of deltest in b2"
Adding b2\deltest

Committed revision 9148.

C:\svntest\b2>svn delete deltest
D deltest\a.txt
D deltest

C:\svntest\b2>svn commit -m "deleted deltest in b2"
Deleting b2\deltest

Committed revision 9149.

C:\svntest\b2>cd ..\b1

C:\svntest\b1>echo "newtext" > deltest\a.txt

C:\svntest\b1>svn commit -m "changed a.txt in b1"
Sending b1\deltest\a.txt
Transmitting file data .
Committed revision 9150.

C:\svntest\b1>cd ..\b2

C:\svntest\b2>svn merge http://server:8001/svn/myRepo/b1@9147
http://server:8001/svn/myRepo/b1@HEAD
Skipped missing target: 'deltest\a.txt'
Skipped missing target: 'deltest'

C:\svntest\b2>cd ..\b1

C:\svntest\b1>echo anotherFile > deltest\new.txt

C:\svntest\b1>svn add deltest\new.txt
A deltest\new.txt

C:\svntest\b1>svn commit -m "adding new file under deltest"
Adding b1\deltest\new.txt
Transmitting file data .
Committed revision 9153.

C:\svntest\b1>cd ..\b2

C:\svntest\b2>svn merge http://server:8001/svn/myRepo/b1@9147
http://server:8001/svn/myRepo/b1@HEAD
Skipped missing target: 'deltest\new.txt'
Skipped missing target: 'deltest\a.txt'
Skipped missing target: 'deltest'

C:\svntest\b2>cd ..\b1

C:\svntest\b1>mkdir deltest\newdir

C:\svntest\b1>svn add deltest\newdir
A deltest\newdir

C:\svntest\b1>svn commit -m "newdir"
Adding b1\deltest\newdir

Committed revision 9154.

C:\svntest\b1>cd ..\b2

C:\svntest\b2>svn merge http://server:8001/svn/myRepo/b1@9147
http://server:8001/svn/myRepo/b1@HEAD
Skipped missing target: 'deltest\new.txt'
svn: Working copy 'deltest' is missing or not locked

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Jan 20 02:24:35 2006

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.