SVN как разрешить «локальное добавление, входящее добавление при обновлении» в * папке *?

Вот мой сценарий:

Предположим, у нас есть репозиторий SVN со следующим содержимым: myfolder myfolder \ file.txt

Сейчас я создаю две кассы этого репо, co1 и co2.

В co1 мы модифицируем файл .txt. В со2 мы:

SVN удалить мою папкуSVN коммитСоздайте новую папку с именем myfolderSVN добавить мою папкуSVN коммит

Теперь, если я пытаюсь обновить в co1, я получаю конфликт дерева:

A  +  C myfolder >   local edit, incoming delete upon update
M  +    myfolder\file.txt

Я хочу сохранить мою папку и измененный файл, чтобы разрешить конфликт дерева:

svn resolve --accept working folder

Теперь, если я попытаюсь сделать коммит, я получу сообщение "svn: Directory '/ myfolder' устарела". Если я пытаюсь решить эту проблему с помощью svn up myfolder, я снова получаю конфликт дерева:

A  +  C folder >   local add, incoming add upon update
M  +    myfolder\file.txt

Итак, мы попробуем снова выполнить svn resolv --accept рабочей папки. Но мы все еще не можем зафиксировать, мы получаем то же самое сообщение, что «svn: Directory '/ myfolder' устарело», если мы делаем svn up myfolder, мы возвращаемся к последнему конфликту дерева.

Какова правильная процедура для разрешения этого типа конфликта (когда мы хотим сохранить мою папку и ее изменения)?

РЕДАКТИРОВАТЬ: Windows cmd line script для иллюстрации:

rmdir /S /Q C:\svntest 
mkdir C:\svntest

cd C:\svntest

svnadmin create repo

svn co file:///c:/svntest/repo co1
svn co file:///c:/svntest/repo co2

cd co1
mkdir folder
echo content > folder\file.txt
svn add folder
svn commit folder -m ""

cd C:\svntest\co2
svn up

cd C:\svntest\co1
svn del folder
svn commit -m ""
mkdir folder
svn add folder
svn commit -m ""

cd C:\svntest\co2
echo changed_content > folder\file.txt
svn up
svn resolve --accept working folder
svn commit -m ""

svn up folder
svn resolve --accept working folder
svn commit -m ""

И вот результат выполнения этого скрипта (обратите внимание на сбои фиксации в конце):

C:\>rmdir /S /Q C:\svntest  

C:\>mkdir C:\svntest 

C:\>cd C:\svntest 

C:\svntest>svnadmin create repo 

C:\svntest>svn co file:///c:/svntest/repo co1 
Checked out revision 0.

C:\svntest>svn co file:///c:/svntest/repo co2 
Checked out revision 0.

C:\svntest>cd co1 

C:\svntest\co1>mkdir folder 

C:\svntest\co1>echo content  1>folder\file.txt 

C:\svntest\co1>svn add folder 
A         folder
A         folder\file.txt

C:\svntest\co1>svn commit folder -m "" 
Adding         folder
Adding         folder\file.txt
Transmitting file data .
Committed revision 1.

C:\svntest\co1>cd C:\svntest\co2 

C:\svntest\co2>svn up 
A    folder
A    folder\file.txt
Updated to revision 1.

C:\svntest\co2>cd C:\svntest\co1 

C:\svntest\co1>svn del folder 
D         folder\file.txt
D         folder

C:\svntest\co1>svn commit -m "" 
Deleting       folder

Committed revision 2.

C:\svntest\co1>mkdir folder 

C:\svntest\co1>svn add folder 
A         folder

C:\svntest\co1>svn commit -m "" 
Adding         folder

Committed revision 3.

C:\svntest\co1>cd C:\svntest\co2 

C:\svntest\co2>echo changed_content  1>folder\file.txt 

C:\svntest\co2>svn up 
C folder
At revision 3.
Summary of conflicts:
  Tree conflicts: 1

C:\svntest\co2>svn resolve --accept working folder 
Resolved conflicted state of 'folder'

C:\svntest\co2>svn commit -m "" 
Adding         folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date

C:\svntest\co2>svn up folder 
   C folder
At revision 3.
Summary of conflicts:
  Tree conflicts: 1

C:\svntest\co2>svn resolve --accept working folder 
Resolved conflicted state of 'folder'

C:\svntest\co2>svn commit -m "" 
Adding         folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date

Ответы на вопрос(5)

Ваш ответ на вопрос