Перейти к содержанию
    

svn : как культурно перенести ревизию из прошлого в head?

пока сделал так : достал ревизию, потер все .svn и положил снова

но не нравится

 

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

 

хотел бы ключи/команды svn увидеть в ответах...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хотел бы ключи/команды svn увидеть в ответах...
Пока не приходилось, но кое-что в закладках есть:

http://aralbalkan.com/1381 - это именно дублирует прошлое состояние на верхушке, "всякая фигня" останется

http://stackoverflow.com/questions/402159/...-older-revision - это именно усекает всё "после" путём коирования всего "до" в отдельно место. Работать должно подольше, но зато ничего глазами не смотреть в результаах merge.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пока сделал так : достал ревизию, потер все .svn и положил снова

вы хотите полностью заменить текущий trunk на какую то конкретную ревизию/ветку/метку ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вы хотите полностью заменить текущий trunk на какую то конкретную ревизию/ветку/метку ?

 

нет. некий кусок (отдельный каталог с подкаталогами)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет. некий кусок (отдельный каталог с подкаталогами)

Возможно, вам поможет svn merge -rN:M, где N > М (в вашем случае N - это ревизия head, М - ревизия, которую вы хотите вытащить в head). Такое действие как бы "отменит" все изменения, внесенные с М ревизии по N. Конечно, в хранилище ничего никуда не пропадет, просто в head у вас будет теперь состояние, соответствующее ревизии М.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Команда "svn copy" может делать именно это: брать директорию из произвольной ревизии и копировать в нужное место.

svn copy

Предварительно нужно удалить директорию с ненужным содержимым: svn delete.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно, вам поможет svn merge -rN:M, где N > М (в вашем случае N - это ревизия head, М - ревизия, которую вы хотите вытащить в head). Такое действие как бы "отменит" все изменения, внесенные с М ревизии по N. Конечно, в хранилище ничего никуда не пропадет, просто в head у вас будет теперь состояние, соответствующее ревизии М.

 

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

 

svn copy убъет всю предысторию, получите новую ветку, а не откат ствола.

Изменено пользователем Ko4egap

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Команда "svn copy" может делать именно это: брать директорию из произвольной ревизии и копировать в нужное место.

svn copy

Предварительно нужно удалить директорию с ненужным содержимым: svn delete.

 

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

 

 

Такое действие как бы "отменит" все изменения, внесенные с М ревизии по N. К.

 

Ревизия svn это билет в один конец. "Отменять" ничего нельзя. Ваш метод, по сути, это то же самое что делает автор: насаждает новую ревизию, которая своим видом повторяет старую.

Изменено пользователем icyrock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...