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

Problem mergin moves from different repos

From: Guille -bisho- <bisho_at_eurielec.etsit.upm.es>
Date: 2004-10-14 15:59:57 CEST

If you merge a changeset that involves moves from a repository into another,
an error is raised on commit.
                                                                                                                              
A changeset only involving modificacions is handled correctly.
                                                                                                                              
I think is very usefull to be able to merge any kind of changeset between
repos, not only between branches in the same repository.
                                                                                                                              
On svn version 1.0.6 (r10360) you get an uglier error than in svn version
1.1.0:
---- Error in svn 1.0.6 when moving "aux" to "auxiliar" ----
Deleting phpBuild/engine/aux
Adding phpBuild/engine/auxiliar
svn: Commit failed (details follow):
svn: PROPFIND request failed on
'/svn/arfo3-devel/trunk/phpBuild/engine/auxiliar'
svn: PROPFIND of '/svn/arfo3-devel/trunk/phpBuild/engine/auxiliar': timed out
waiting for server (http://localhost)
svn: Your commit message was left in a temporary file:
svn: '/tmp/repos/maquetita/svn-commit.6.tmp'
------------------------------------------------------------

---- Error in svn 1.1.0 when moving "dira" to "moved_dira" ----
Deleting dira
Adding moved_dira
svn: Commit failed (details follow):
svn: Source url 'moved_dira' is from different repository
---------------------------------------------------------------

A complete collection of commands to shown the problem (with svn version
1.1.0)

---------------------------------------------------------------
#############################
# Create two repositories
##########
$ svnadmin create /tmp/a
$ svnadmin create /tmp/b

#############################
# The source we are going to use
##########
$ cd source
source $ find
.
./dirb
./filec
./dira
./dira/subdira
./dira/fileb
./dira/filea
./fileb
./filea

#############################
# Import the source to both repos
##########
source $ svn import . file:///tmp/a -m "repository a"
Adding dira
Adding dira/filea
Adding dira/fileb
Adding dira/subdira
Adding dirb
Adding filea
Adding fileb
Adding filec
                                                                                                                                                                                                        
Committed revision 1.
source $ svn import . file:///tmp/b -m "repository b"
Adding dira
Adding dira/filea
Adding dira/fileb
Adding dira/subdira
Adding dirb
Adding filea
Adding fileb
Adding filec
                                                                                                                                                                                                        
Committed revision 1.
                                                                                                                                                                                                        
#############################
# Checkout both repositories
##########
source $ cd ../test
test $ svn co file:///tmp/a a
A a/dira
A a/dira/filea
A a/dira/fileb
A a/dira/subdira
A a/filea
A a/dirb
A a/fileb
A a/filec
Checked out revision 1.
test $ svn co file:///tmp/b b
A b/dira
A b/dira/filea
A b/dira/fileb
A b/dira/subdira
A b/filea
A b/dirb
A b/fileb
A b/filec
Checked out revision 1.

#############################
# Modify repository 'a', moving 'dira' to 'moved_dira', and commit the change
##########
test $ cd a
test/a $ svn move dira moved_dira
A moved_dira
D dira/filea
D dira/fileb
D dira/subdira
D dira
test/a $ svn commit -m "We move a directory"
Deleting dira
Adding moved_dira
                                                                                                                                                                                                        
Committed revision 2.

#############################
# Merge the changes into repository 'b'
##########
test/a $ cd ../b
test/b $ svn merge -r 1:2 file:///tmp/a .
A moved_dira
A moved_dira/filea
A moved_dira/fileb
A moved_dira/subdira
D dira/filea
D dira/fileb
D dira/subdira
D dira
D dira

#############################
# Try commiting the changes
##########
test/b $ svn commit -m "Trying to commit the merge"
Deleting dira
Adding moved_dira
svn: Commit failed (details follow):
svn: Source url 'moved_dira' is from different repository
---------------------------------------------------------------

Any idea of the problem? Any workarround? Is a bug?

-- 
        .,,,   Guillermo Pérez    -=] 14/10/2004 [=-
      _' .,,,,  - bisho@ ( onirica.com | eurielec.etsit.upm.es )
     (v)/ ,''
      ( \/    ::        Software Patents will kill Open Source        ::
bisho! ``\\  ::           EuropeSwPatentFree Demostration:            ::
   .........::                 http://online-demo.org                 ::
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Oct 14 16:00:39 2004

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