много страдальный SVN merge
От: Slach  
Дата: 11.03.05 14:43
Оценка:
вопрос к людям использующим SVN вместе с Бранчами... для автоматического (НЕ РУЧНОГО) merge двух бранчей

мой порядок действий
svnadmin create c:\SVNROOT\repos
cd /usr/local/Project
mkdir current
cp /usr/local/sources/Project/*.* ./current
mkdir branch1
svn import -m "Initional import" svn://localhost/repos .

после этого зашел в TortoiseSVN на /usr/local/Project/current
сделал "Branch/Tag..."
в качестве URL куда бранчить указал svn://localhost/repos/Project/branch1/current
(в принципе мог спокойно сделать svn copy)

после svn update в каталоге /usr/local/Project/branch1/current получил файлы идентичные с /usr/local/Project/current
чего и добивался

что делаю далее

в /usr/local/Project/branch1/current (бранч)
1) создаю файлик newmodule.php
правлю его
потом svn add newmodule.php
2) правлю oldmodule.php
изменяю в нем мелкий багфикс в ф-ции

завершаю все командой
svn commit -m "added newmodule.php, fix bug #xxx in oldmodule.php"

в /usr/local/Project/current (основной ствол)
редактрию файл
oldmodule.php
делаю там комментарии ввожу дополнительные ф-ции и т.п.

завершаю все командой
svn commit -m "added new function into oldmodule.php"

теперь мне неоходимо
1) изменения из основного ствола для oldmodule.php слить в
т.е. как мне разрулить конфликты между HEAD ревизиями oldmodule.php в разных бранчах ??
и вообще является ли это конфликтом в данном случае ? или это неграмотное проектирование ?

2) кроме того необходимо добавить файл newmodule.php в основной ствол

как это пытаюсь делать я
svn merge svn://localhost/repos/branch1/current svn://localhost/repos/current
после чего получаю

U oldmodule.php
D newmodule.php

я ожидал тут увидеть как минимум
G oldmodule.php
или сообщение о конфликте

и не ожидал совершенно увидеть D newmodule.php

КАК ПОДОБНЫЕ ситуации решаете вы ?
в одну операцию в несколько ???

нафига вообще нужен svn merge — если он пытается удалить какие то файлы ? какой же это тогда merge ?
может быть использовать --ignore-ancestry ???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.