On 07/19/11 12:04, Mattius McLaughlin wrote:
Hi All,
I'm encountering some strange behaviour with replacing a symlink
with a real file in the repository and wanted to know if what I was
seeing is a bug or whether I'm doing something wrong. I'd like to
replace the file in one commit, but Subversion objects to changing the
file type:
% ls -l trunk/memory_ddr3.v
lrwxrwxrwx 1 mclaughl eng 74 Jul 19 11:51 trunk/memory_ddr3.v ->
/proj/ddr3/s39/s39a0c2762e5ac7f7
% svn status trunk/memory_ddr3.v
% svn rm trunk/memory_ddr3.v
D trunk/memory_ddr3.v
% cp /proj/ddr3/s39/s39a0c2762e5ac7f7 trunk/memory_ddr3.v
% svn add trunk/memory_ddr3.v
A trunk/memory_ddr3.v
% svn status trunk/memory_ddr3.v
R trunk/memory_ddr3.v
% svn ci -m "Correcting link" trunk/memory_ddr3.v
svn: Commit failed (details follow):
svn: Entry '/home/mclaughl/nobackup/trunk/memory_ddr3.v' has
unexpectedly changed special status
In case anyone stumbles across this later, the missing step here was to
remove the svn:special property as well as removing the file:
% ls -l trunk/memory_ddr3.v
lrwxrwxrwx 1 mclaughl eng 74 Jul 19 11:51 trunk/memory_ddr3.v ->
/proj/ddr3/s39/s39a0c2762e5ac7f7
% svn status trunk/memory_ddr3.v
% svn rm trunk/memory_ddr3.v
D trunk/memory_ddr3.v
% svn propdel svn:special trunk/memory_ddr3.v
property 'svn:special' deleted from 'trunk/memory_ddr3.v'.
% cp /proj/ddr3/s39/s39a0c2762e5ac7f7 trunk/memory_ddr3.v
% svn add trunk/memory_ddr3.v
A trunk/memory_ddr3.v
% svn status trunk/memory_ddr3.v
R trunk/memory_ddr3.v
% svn ci -m "Correcting link" trunk/memory_ddr3.v
Replacing trunk/memory_ddr3.v
Transmitting file data .
Committed revision 20311.
I'm surprised the client can't handle this automatically, but I suppose
it's a fairly rare use case.
--Mattius McLaughlin