[prev in list] [next in list] [prev in thread] [next in thread] 

List:       subversion-issues
Subject:    [Issue 3503] New - Merge success depends on whether target is
From:       grummund <svn-bugs () nospam ! pz ! podzone ! net>
Date:       2009-09-28 16:23:49
Message-ID: iz3503 () subversion ! tigris ! org
[Download RAW message or body]

http://subversion.tigris.org/issues/show_bug.cgi?id=3503
                 Issue #|3503
                 Summary|Merge success depends on whether target is directory o
                        |r file
               Component|subversion
                 Version|1.6.x
                Platform|PC
                     URL|
              OS/Version|Windows XP
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|cmdline client
             Assigned to|issues@subversion
             Reported by|grummund






------- Additional comments from grummund@tigris.org Mon Sep 28 09:23:48 -0700 2009 -------
Hi,

I had this confirmed as a (potential) bug by @stsp on #svn, who asked
that I post a bug report.  Here it is:

In case there's some problem with the pasting, it's also at:
http://svn.pastebin.com/m163d27f4


Problem:

svn merge finds a conflict when the target is ./ but is happy to merge
when the target is a file.  Tested with svn 1.6.3 & 1.6.4 on the
client.  Server is running 1.4.2.

Although not shown, when --dry-run is removed it prompts on the
conflict for a directory target, but with file as target the 'merge'
is performed without prompting.  That is, the results with and without
--dry-run are consistent.


-------------------------------------------------------------------

~/svn/sandbox$ svn commit -m 'Create trunk branches tags.'
Adding         sandbox/branches
Adding         sandbox/tags
Adding         sandbox/trunk

Committed revision 698.

~/svn/sandbox$ cd trunk/
/cygdrive/d/svn/sandbox/trunk

~/svn/sandbox/trunk$ dd if=/dev/urandom of=file.bin bs=1k count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.073 s, 14.0 kB/s

~/svn/sandbox/trunk$ ls -l
total 4
-rw-r--r-- 1 xx None 1024 Sep  8 12:01 file.bin

~/svn/sandbox/trunk$ md5sum file.bin
5b30d5c55499ff9d3805e45bad80359f *file.bin

~/svn/sandbox/trunk$ svn add file.bin
A  (bin)  file.bin

~/svn/sandbox/trunk$ svn commit -m 'Add file.bin'
Adding  (bin)  trunk/file.bin
Transmitting file data .
Committed revision 699.

~/svn/sandbox/trunk$ svn pg svn:mime-type file.bin
application/octet-stream

~/svn/sandbox/trunk$ cd ..

~/svn/sandbox$ svn cp trunk/ branches/mybranch
A         branches/mybranch

~/svn/sandbox$ cd branches/mybranch
/cygdrive/d/svn/sandbox/branches/mybranch

~/svn/sandbox/branches/mybranch$ svn commit . -m 'Create branches/mybranch'
Adding         mybranch
Adding  (bin)  mybranch/file.bin

Committed revision 700.

~/svn/sandbox/branches/mybranch$ ls -l
total 4
-rw-r--r-- 1 xx None 1024 Sep  8 12:05 file.bin

~/svn/sandbox/branches/mybranch$ md5sum file.bin
5b30d5c55499ff9d3805e45bad80359f *file.bin

~/svn/sandbox/branches/mybranch$ svn status

~/svn/sandbox/branches/mybranch$ svn pg svn:mime-type file.bin
application/octet-stream

~/svn/sandbox/branches/mybranch$ dd if=/dev/urandom of=file.bin bs=1k count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.05 s, 20 kB/s

~/svn/sandbox/branches/mybranch$ svn status
M       file.bin

~/svn/sandbox/branches/mybranch$ md5sum file.bin
1bda4e2d5a86c654b8a8e26b19fe4426 *file.bin

~/svn/sandbox/branches/mybranch$ svn commit -m 'Changed file.bin'
Sending        mybranch/file.bin
Transmitting file data .
Committed revision 701.

~/svn/sandbox/branches/mybranch$ cd ../..

~/svn/sandbox$ svn status

~/svn/sandbox$ cd trunk/
/cygdrive/d/svn/sandbox/trunk

~/svn/sandbox/trunk$ ls -l
total 4
-rw-r--r-- 1 xx None 1024 Sep  8 12:01 file.bin

~/svn/sandbox/trunk$ md5sum file.bin ../branches/mybranch/file.bin
5b30d5c55499ff9d3805e45bad80359f *file.bin
1bda4e2d5a86c654b8a8e26b19fe4426 *../branches/mybranch/file.bin

~/svn/sandbox/trunk$ svn pg svn:mime-type file.bin ../branches/mybranch/file.bin
file.bin - application/octet-stream
../branches/mybranch/file.bin - application/octet-stream

~/svn/sandbox/trunk$ svn merge --dry-run -c 701 ../branches/mybranch/file.bin ./
--- Merging r701 into '../branches/mybranch/file.bin':
C    ../branches/mybranch/file.bin
Summary of conflicts:
  Text conflicts: 1

~/svn/sandbox/trunk$ svn merge --dry-run -c 701 ../branches/mybranch/file.bin
./file.bin
--- Merging r701 into 'file.bin':
U    file.bin

~/svn/sandbox/trunk$

~/svn/sandbox/trunk$ svn --version
svn, version 1.6.4 (r38063)
   compiled Aug  7 2009, 13:13:11

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme


~/svn/sandbox/trunk$


-------------------------------------------------------------------
On the server machine:

# svnserve --version
svnserve, version 1.4.2 (r22196)
   compiled Nov 10 2006, 16:22:08

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.

-------------------------------------------------------------------
Repeat attempt after upgrading svn on the local machine:

~/svn/sandbox/trunk$ svn --version
svn, version 1.6.5 (r38866)
   compiled Aug 26 2009, 13:50:17

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme


~/svn/sandbox/trunk$ svn merge --dry-run -c 701 ../branches/mybranch/file.bin ./
--- Merging r701 into '../branches/mybranch/file.bin':
C    ../branches/mybranch/file.bin
Summary of conflicts:
  Text conflicts: 1

~/svn/sandbox/trunk$ svn merge --dry-run -c 701 ../branches/mybranch/file.bin
./file.bin
--- Merging r701 into 'file.bin':
U    file.bin

~/svn/sandbox/trunk$ svn pg svn:mime-type file.bin ../branches/mybranch/file.bin
file.bin - application/octet-stream
../branches/mybranch/file.bin - application/octet-stream

~/svn/sandbox/trunk$

-------------------------------------------------------------------

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=463&dsMessageId=2401303

To unsubscribe from this discussion, e-mail: [issues-unsubscribe@subversion.tigris.org].
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic