Subversion не слияние изменений в переименованных файлов ?

у меня следующая проблема с использованием subversion:

в настоящее время я работаю на багажник моего проекта и план выполнить рефакторинг (которая включает в себя переименование файлов и перемещение файлов в разных каталогах).

в то же время кто-то другой, работающих над одним проектом на ветке.

В какой-то момент я хочу слить изменения, сделанные на ветке обратно к стволу. Что включает в себя изменения, внесенные в файлы (на ветке), которые были переименованы на стволе.

я сделал несколько тестов, и кажется, что либо subversion не способен следующие изменения или я пропавших без вести-то (как я надеюсь). Я проверил это с помощью следующего сценария (должно работать в bash, предполагает svn-репозиторий "http://myserver/svn/sandbox"):

svn co http://myserver/svn/sandbox

cd sandbox/

mkdir -p MyProject/trunk MyProject/branches MyProject/tags

cat - <<EOF >MyProject/trunk/FileOne.txt
Test
1
2
EOF

svn add MyProject

svn commit -m "init"

# create a branch
svn copy http://myserver/svn/sandbox/MyProject/trunk http://myserver/svn/sandbox/MyProject/branches/Branch_1 svn copy http://myserver/svn/sandbox/MyProject/trunk http://myserver/svn/sandbox/MyProject/branches/Branch_1

# rename the file
svn move MyProject/trunk/FileOne.txt MyProject/trunk/FileTwo.txt

svn commit -m "renamed file"

svn update 

# change the content of FileOne in branch

cat - <<EOF >MyProject/branches/Branch_1/FileOne.txt
Test
2
3
EOF

svn commit -m "changed branch"

# I now try to merge the changes in FileOne back to FileTwo
cd MyProject/trunk/
svn merge -r1:HEAD http://myserver/svn/sandbox/MyProject/branches/Branch_1
# but this yields the following message:
# Skipped missing target: 'FileOne.txt'

Любая помощь будет с благодарностью.

Редактировать:Возможно, процесс, предложенный mikegrb мог по несколько автоматизирован с помощью " первая генерирующая карту переименованные файлы (старые->создать) из svn log команду на стволе:

svn log -v
------------------------------------------------------------------------
r33 | sme | 2008-10-09 15:17:54 +0200 (Do, 09 Okt 2008) | 1 line
Changed paths:
   D /MyProject/trunk/FileOne.txt
   A /MyProject/trunk/FileTwo.txt (from /MyProject/trunk/FileOne.txt:31)


resulting map: {FileOne.txt => FileTwo.txt}

Теперь использовать эту карту для изменения имен файлов в патч-файл, созданный на ветке.

RUSSIAN Original:

Index: FileOne.txt
===================================================================
--- FileOne.txt (.../trunk)     (revision 31)
+++ FileOne.txt (.../branches/Branch_1) (revision 34)
@@ -1,3 +1,3 @@
 Test
-1
 2
+3

изменения:

Index: FileTwo.txt
===================================================================
--- FileTwo.txt (.../trunk)     (revision 31)
+++ FileTwo.txt (.../branches/Branch_1) (revision 34)
@@ -1,3 +1,3 @@
 Test
-1
 2
+3

Всего лишь Идея, еще этого не сделал.

Найдено 4 ответа:

Subversion not merging changes into renamed files?

http://stackoverflow.com/questions/187454/subversion-not-merging-changes-into-renamed-files

Посмотреть решение →