Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: svn : как культурно перенести ревизию из прошлого в head?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Управление проектами
yes
пока сделал так : достал ревизию, потер все .svn и положил снова
но не нравится

пытался положить эту ревизию в отдельную ветку (cp в branches), а затем switch этой ветки с head - но какаято фигня вышла - структура подкаталогов нарушается, возможно какие-то правила распространения команд svn на подкаталоги не понимаю

хотел бы ключи/команды svn увидеть в ответах...
ReAl
Цитата(yes @ Mar 23 2010, 13:46) *
хотел бы ключи/команды svn увидеть в ответах...
Пока не приходилось, но кое-что в закладках есть:
http://aralbalkan.com/1381 - это именно дублирует прошлое состояние на верхушке, "всякая фигня" останется
http://stackoverflow.com/questions/402159/...-older-revision - это именно усекает всё "после" путём коирования всего "до" в отдельно место. Работать должно подольше, но зато ничего глазами не смотреть в результаах merge.
des00
Цитата(yes @ Mar 23 2010, 05:46) *
пока сделал так : достал ревизию, потер все .svn и положил снова

вы хотите полностью заменить текущий trunk на какую то конкретную ревизию/ветку/метку ?
yes
Цитата(des00 @ Mar 24 2010, 05:52) *
вы хотите полностью заменить текущий trunk на какую то конкретную ревизию/ветку/метку ?


нет. некий кусок (отдельный каталог с подкаталогами)
dxp
Цитата(yes @ Mar 24 2010, 23:32) *
нет. некий кусок (отдельный каталог с подкаталогами)

Возможно, вам поможет svn merge -rN:M, где N > М (в вашем случае N - это ревизия head, М - ревизия, которую вы хотите вытащить в head). Такое действие как бы "отменит" все изменения, внесенные с М ревизии по N. Конечно, в хранилище ничего никуда не пропадет, просто в head у вас будет теперь состояние, соответствующее ревизии М.
scifi
Команда "svn copy" может делать именно это: брать директорию из произвольной ревизии и копировать в нужное место.
svn copy
Предварительно нужно удалить директорию с ненужным содержимым: svn delete.
Ko4egap
Цитата(dxp @ Mar 25 2010, 08:26) *
Возможно, вам поможет svn merge -rN:M, где N > М (в вашем случае N - это ревизия head, М - ревизия, которую вы хотите вытащить в head). Такое действие как бы "отменит" все изменения, внесенные с М ревизии по N. Конечно, в хранилище ничего никуда не пропадет, просто в head у вас будет теперь состояние, соответствующее ревизии М.


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

svn copy убъет всю предысторию, получите новую ветку, а не откат ствола.
icyrock
Цитата(scifi @ Mar 25 2010, 10:25) *
Команда "svn copy" может делать именно это: брать директорию из произвольной ревизии и копировать в нужное место.
svn copy
Предварительно нужно удалить директорию с ненужным содержимым: svn delete.


Да, это конечно хардкор.


Цитата(dxp @ Mar 25 2010, 09:26) *
Такое действие как бы "отменит" все изменения, внесенные с М ревизии по N. К.


Ревизия svn это билет в один конец. "Отменять" ничего нельзя. Ваш метод, по сути, это то же самое что делает автор: насаждает новую ревизию, которая своим видом повторяет старую.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.