Доброго времени суток.
Есть такая проблема — велась разработка в cvs проекта и все хорошо (почему cvs — не спрашивайте.
В какой то момент сделал ветку, что бы поэкспериментировать. Через некоторое время (десяток коммитов) стало понятно, что эта ветка достойна жизни. При этом в основную ветку ничего не комитилось и других веток не было ( я сам веду разработку). Теперь хочеться от этой ветки избавиться и как бы логически кажеться, что если бы переименовать эту ветку в главную, а главную откинуть, то все было бы хорошо. Смержить основную ветку и рабочую как то не то — изменений много очень и промежуточные коммиты терять не хочеться.
Здравствуйте, OdesitVadim, Вы писали:
OV>Вопрос в том — как такое сделать.
Не вижу проблемы... Хочешь считать новую ветку главной — так считай же уже Ну там, если хочешь — провозгласи "аз есмь повелеваю!" или типа того...
По науке это называется отделение ветки релиза. То есть ты перешел на новую ветку продукта — и теперь именно его ветка является главной, на ней выпускаются все бэйзлайны, на неё все должны равняться.
Здравствуйте, Aquary, Вы писали:
A>Как-то так. Спрашивай, что ещё смущает.
а смущает то, что если кто то другой делает cvs checkout, то ему сливается старые сорцы. нужно сливать ветку сразу
Здравствуйте, OdesitVadim, Вы писали:
OV>Доброго времени суток. OV>Есть такая проблема — велась разработка в cvs проекта и все хорошо (почему cvs — не спрашивайте. OV>В какой то момент сделал ветку, что бы поэкспериментировать. Через некоторое время (десяток коммитов) стало понятно, что эта ветка достойна жизни. При этом в основную ветку ничего не комитилось и других веток не было ( я сам веду разработку). Теперь хочеться от этой ветки избавиться и как бы логически кажеться, что если бы переименовать эту ветку в главную, а главную откинуть, то все было бы хорошо. Смержить основную ветку и рабочую как то не то — изменений много очень и промежуточные коммиты терять не хочеться.
OV>Вопрос в том — как такое сделать.
без мержа только хирургическим вмешательством в служебные файлы репозитория на стороне сервера. когдато давно я делал мелкие хаки в репе... но нада быть аццки аккуратным. мега проблема в том, что ветки убить в cvs низя (они там сделаны через заднее место)...
альтернативой может стать конвертация cvs репы в svn (такой скрипт точно есть и он сохраняет историю коммитов), сделать все что нужно в svn и обратно сконвертировать в cvs (вот насчет такого скрипта я даже не знаю есть ли в природе %) -- ибо уходя с cvs никто на него не возвращается в здравом уме)
а вообще я бы задумался о том, чтобы остаться на svn (или куда тебя там занесет... я бы смотрел в сторону Mercurial еси честно)...
Здравствуйте, OdesitVadim, Вы писали:
OV>а смущает то, что если кто то другой делает cvs checkout, то ему сливается старые сорцы. нужно сливать ветку сразу
Ну тогда без вариантов — делай merge, а при возникновении конфликтов слияния — принимай изменения из ветки. Т.е. получится большая одноразовая операция — и после этого будешь спокойно жить дальше, уже отращивая и сливая вместе ветки более часто
Здравствуйте, zaufi, Вы писали:
OV>>Вопрос в том — как такое сделать. Z>без мержа только хирургическим вмешательством в служебные файлы репозитория на стороне сервера. когдато давно я делал мелкие хаки в репе... но нада быть аццки аккуратным. мега проблема в том, что ветки убить в cvs низя (они там сделаны через заднее место)...
Ну, cvs бекапиться, можно админа попросить внештатно забекапить Z>альтернативой может стать конвертация cvs репы в svn (такой скрипт точно есть и он сохраняет историю коммитов), сделать все что нужно в svn и обратно сконвертировать в cvs (вот насчет такого скрипта я даже не знаю есть ли в природе %) -- ибо уходя с cvs никто на него не возвращается в здравом уме)
а с svn еще в mercurial зайти, веселиться, так с музыкой Z>а вообще я бы задумался о том, чтобы остаться на svn (или куда тебя там занесет... я бы смотрел в сторону Mercurial еси честно)...
Другие проекты на git и svn живут
Здравствуйте, OdesitVadim, Вы писали:
OV>Здравствуйте, Aquary, Вы писали:
A>>Как-то так. Спрашивай, что ещё смущает. OV>а смущает то, что если кто то другой делает cvs checkout, то ему сливается старые сорцы. нужно сливать ветку сразу
Никто не мешает делать checkout сразу по ветке.
А вообще, я думаю, если очень хочется скинуть всю историю коммитов с ветки на ХЕД — можно написать скрипт, который пробежится по всем файлам (т.к. в cvs у каждого файла своя история, а не одна на репозиторий), и "пошагово" воспроизведет коммиты с ветки на ХЕДЕ. Прийдется попариться и поэкспериментировать на каком-то тестовом модуле, за-то сделаешь то, чего хочется. Не удивлюсь, если такой велосипед уже кто-то создавал — погугли че-то типа rebase for cvs.
Еще мысль — раз ты сам в проекте — юзай git (да-да, ты просил не спрашивать, почему cvs... )