Вопрос по Subversion.
Допустим у меня первоначальная версия файла А, затем от нее отделились ветки А1 и А2.
После определенного этапа я понял что в файле А есть опечатка, которая перешла во все ветки.
Я пытаюсь изменить файл А, получив из репозитария его вид до отделения от него веток.
Но при попытке сохранить он сохраняется как новая версия, а старая как была так и осталась.
Как обновить старый релиз файла А в SVN.
>Вопрос по Subversion.
>Допустим у меня первоначальная версия файла А, затем от нее отделились ветки
>А1 и А2.
>После определенного этапа я понял что в файле А есть опечатка,
>которая перешла во все ветки.
>Я пытаюсь изменить файл А, получив из репозитария его вид до отделения
>от него веток.
>Но при попытке сохранить он сохраняется как новая версия, а старая как
>была так и осталась.А дальше ты обновляешь все ветки, которые тебе надо, командой svn merge.
>Как обновить старый релиз файла А в SVN.
ИМХО правильный процесс разработки заключается в выделении центрального ствола разработки и обмена изменениями между ветками и стволом в обе стороны.
первоначальная версия развивается в одной ветке, в trunk (А)
Затем от неё отпочковываются девелоперские ветки, например А1 и А2
Релизы продукта делаются из основной ветки А, либо из дополнительной релизной ветки.
Изменения при этом мержатся из А1 и А2 в транк А, откуда делаются релизы, либо из транка они мержатся всем скопом в релизную ветку, и релиз делается уже оттуда.
При этом нужно чаще закрывать А1 и А2 и обновлять их созданием заново из основной ветки А.
Сделал какую-то атомарную работу, слил изменения, обновил исходник до свежей версии.Если делается несколько версий продукта, то вся эта картина смещается на уровень ниже, появляются основные ветки для каждой версии и общий ствол всей разработки. Обмен изменениям тогда делать сложнее, но оно и в принципе правильно - это же всё-таки две разные версии ( для случая 1.х.х и 2.х.х, а не 1.х и 1.х+1 )
>А дальше ты обновляешь все ветки, которые тебе надо, командой svn merge.Завтра попробую
>>Как обновить старый релиз файла А в SVN.
>ИМХО правильный процесс разработки заключается в выделении центрального ствола разработки и обмена
>изменениями между ветками и стволом в обе стороны.Согласен, но вопрос о случае когда все отпочковавшиеся ветки имеют общую ошибку унаследованную от главной, их могут быть десятки. Исправлять в каждой ветке довольно долго.
Не прокатило, старая версия как была так и осталась и изменения в ветки не перенеслись.
После merge просто создалась новая версия основной ветки.
Я пришел к выводу что старую версию изменить нельзя, т.к. тогда нарушится история хранения версий или что-то делаю не так?
>Не прокатило, старая версия как была так и осталась и изменения в
>ветки не перенеслись.
>После merge просто создалась новая версия основной ветки.
>Я пришел к выводу что старую версию изменить нельзя, т.к. тогда нарушится
>история хранения версий или что-то делаю не так?команда merge создает новую версию. Новую версию той ветки, в которую мержатся изменения.
>[оверквотинг удален]
>
>Завтра попробую
>
>>>Как обновить старый релиз файла А в SVN.
>>ИМХО правильный процесс разработки заключается в выделении центрального ствола разработки и обмена
>>изменениями между ветками и стволом в обе стороны.
>
>Согласен, но вопрос о случае когда все отпочковавшиеся ветки имеют общую ошибку
>унаследованную от главной, их могут быть десятки. Исправлять в каждой ветке
>довольно долго.достаточно исправить в релизных ветках.
разработческие ветки всеравно должны периодически от неё обновляться.
>достаточно исправить в релизных ветках.
>
>разработческие ветки всеравно должны периодически от неё обновляться.спасибо, теперь все ясно.
т.е. автоматически (изменить корень) изменения провести не получится.
придется потом все остальные ветки с основной веткой сравнить чтоб устранить опечатку.
>
>>достаточно исправить в релизных ветках.
>>
>>разработческие ветки всеравно должны периодически от неё обновляться.
>
>спасибо, теперь все ясно.
>т.е. автоматически (изменить корень) изменения провести не получится.
>придется потом все остальные ветки с основной веткой сравнить чтоб устранить опечатку.
>Фишка в том, что не надо _все остальные_ ветки сравнивать, поскольку в основные ветки попадают только _изменения_ из разработческих веток. Достаточно изменить "опечатку" только в релизных ветках, и всё, прочие изменения из разработческих веток эту опечатку уже не сотрут. А девелоперские ветки подхватят изменение этой опечатки когда они будут обновляться из центральной ветки, для того чтобы подхватить и изменения, внесенные прочими разработчиками.
>[оверквотинг удален]
>>т.е. автоматически (изменить корень) изменения провести не получится.
>>придется потом все остальные ветки с основной веткой сравнить чтоб устранить опечатку.
>>
>
>Фишка в том, что не надо _все остальные_ ветки сравнивать, поскольку в
>основные ветки попадают только _изменения_ из разработческих веток. Достаточно изменить "опечатку"
>только в релизных ветках, и всё, прочие изменения из разработческих веток
>эту опечатку уже не сотрут. А девелоперские ветки подхватят изменение этой
>опечатки когда они будут обновляться из центральной ветки, для того чтобы
>подхватить и изменения, внесенные прочими разработчиками.Я о том что не изменится опечатка в прошлых версиях, в любом случае создается новый релиз.
А ветки сравнить все равно придется, иначе будет конфликт при слиянии.
Похоже вам стоит заново открыть доку по subversion и перечитать описание идеологии и концепций. То, чего вы хотите, не будет работать by design.