2008-10-27 4 views
6

Когда я объединяю соединительную линию в ветви функции, удаление, произошедшее на соединительной линии, не будет реплицировано в мою рабочую копию.subversion merge a delete command

Почему удаление на соединительной линии не удаляет тот же файл на ветке при слиянии? Я использую клиент и сервер subversion 1.5.

Я предполагаю, что изменения в файле в ветке будут пропущены при реинтеграции ветки?

Каков наилучший способ выкупить файл на багажнике, поскольку коллега удалил файл из ствола только потому, что он не был «готов».

Ситуация:

cd project; svn copy trunk branches/f1; svn ci -m "branching out" branches f1; 
echo "modifying a file on branch." >> branches/f1/file1; svn ci branches/f1 -m "Branch modified"; 
echo "Above modify is not even needed to state the case"; 
svn rm trunk/file1; svn ci trunk -m "creating (conflicting) delete on trunk"; 
cd branches/f1; svn merge svn+ssh://repos/trunk . 
[ -f file1 ] && echo "file f1 does exist while it should have been deleted by merge."; 

Таким образом, файл по-прежнему существует в моей рабочей копии, даже если я сливаясь в багажник, где файл был удален активно. Очень неожиданно. В моем случае я даже не внес никаких изменений в файл, и это единственная причина, по которой я могу думать о том, почему svn сохранит файл.

ответ

1

Насколько я понимаю, вы сделали локальный конфликт в файле1. В вашем филиале он был изменен. В вашем багажнике он был удален. Когда вы слились, это будет в конфликте. Таким образом, файл все равно будет рядом.

Я предлагаю 2 теста:

  1. После выполнения кода, включают результаты svn status.
  2. Просьба тот же код, как указано выше, но без изменения этой ветки на . (svn status бы полезно здесь.)
0

Вы уверены, что файл удален на стволе все еще находится под контролем версий после слияния? Это может быть неверсифицированным, но все же присутствующим, что является ожидаемым поведением. Глядя на вывод svn status, вы увидите, что файл все еще находится под контролем версии.

Возможно, вы захотите ознакомиться с этим отчетом об ошибке, который подробно объясняет ситуацию: http://subversion.tigris.org/issues/show_bug.cgi?id=2282