Здравствуйте.
Есть большой проект который лежит в svn. В корне trunk лежит 2 папки src и ic. Я хочу сделать ветку, но менять в ней буду только ic. Как сделать так, чтобы не приходилось постоянно мержить изменения src из транка в ветку. Т.е. поменяли в транке — поменялось в ветке. Интересует решения, отличные от екстернал.
Заранее спасибо.
Здравствуйте, AShushunov, Вы писали:
AS>Здравствуйте. AS>Есть большой проект который лежит в svn. В корне trunk лежит 2 папки src и ic. Я хочу сделать ветку, но менять в ней буду только ic. Как сделать так, чтобы не приходилось постоянно мержить изменения src из транка в ветку. Т.е. поменяли в транке — поменялось в ветке. Интересует решения, отличные от екстернал. AS>Заранее спасибо.
Ну так наверное надо сделать ветку из ic а то и глубже, а не из транка.
Здравствуйте, Wolverrum, Вы писали: W>Ну так наверное надо сделать ветку из ic а то и глубже, а не из транка.
Должна быть ветка по структуре одинаковая с транком. По содержанию отличается лишь одна папка. Если с делать ветку из ic и то как получить требуемую структуру?
Здравствуйте, AShushunov, Вы писали:
W>>Ну так наверное надо сделать ветку из ic а то и глубже, а не из транка. AS>Должна быть ветка по структуре одинаковая с транком. По содержанию отличается лишь одна папка. Если с делать ветку из ic и то как получить требуемую структуру?
По уму должна соблюдаться повторяемость (reproducibility). Т.е. в любой момент времени должно быть возможно легко выяснить какая ревизия src с какой версией ic взаимодействовала, тестировалась, публиковалась, етс.
Если src и ic никак несвязанные вещи, то просто разделяете на два независимых репозитория со своими trunk/branches/tags.
Если они зависят, то зависящий должен как-то точно указывать на конкретную ревизию зависимого и как-то фиксировать это в svn, а не просто кто-то как-то хитро сделал checkout в хитром порядке у себя в рабочей папке. Тогда external неплохой вариант, имхо. Чем плох? Но, конечно, очень желательно тоже разделить на два репозитория.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, AShushunov, Вы писали:
AS>Здравствуйте, Wolverrum, Вы писали: W>>Ну так наверное надо сделать ветку из ic а то и глубже, а не из транка. AS>Должна быть ветка по структуре одинаковая с транком. По содержанию отличается лишь одна папка. Если с делать ветку из ic и то как получить требуемую структуру?
Возможно вопрос кажется глупым, так как с ветками в subversion я не работал. Почему нельзя сделать так:
— создать ветку всей рабочей копии от trunk, где будут делаться эксперименты с ic
— периодически (например раз в 1-2 дня, но если важно, то чаще) мерджить trunk в эту ветку
AS>Здравствуйте. AS>Есть большой проект который лежит в svn. В корне trunk лежит 2 папки src и ic. Я хочу сделать ветку, но менять в ней буду только ic. Как сделать так, чтобы не приходилось постоянно мержить изменения src из транка в ветку. Т.е. поменяли в транке — поменялось в ветке. Интересует решения, отличные от екстернал. AS>Заранее спасибо.
Subversion не запускает демонов и не может автоматически обновлять working copy, если кто-то поменяет src. Соответственно, какую-то команду на обновление все равно придется делать. Чем вам не нравится сделать branch всего репозитория и время от времени делать в него merge из транка? Это вполне себе рекомендуемая практика, называется "feature branches", все будет мерджится автоматически, от вас только команда "merge" и "commit" с пометкой "обновили ветку до актуального состояния транка". Если очень не хочется делать лишний клик, эти две команды можно поместить в shell script (ну или .bat файл, если у вас windows) и вызывать утром. Все так делают.
Здравствуйте, Константин, Вы писали:
К>Возможно вопрос кажется глупым, так как с ветками в subversion я не работал. Почему нельзя сделать так: К>- создать ветку всей рабочей копии от trunk, где будут делаться эксперименты с ic К>- периодически (например раз в 1-2 дня, но если важно, то чаще) мерджить trunk в эту ветку
Как раз эту процедуру хочется автоматизировать.
Здравствуйте, AShushunov, Вы писали:
AS>Здравствуйте, Константин, Вы писали:
К>>Возможно вопрос кажется глупым, так как с ветками в subversion я не работал. Почему нельзя сделать так: К>>- создать ветку всей рабочей копии от trunk, где будут делаться эксперименты с ic К>>- периодически (например раз в 1-2 дня, но если важно, то чаще) мерджить trunk в эту ветку AS>Как раз эту процедуру хочется автоматизировать.
Я бы не стал автоматизировать merge из общефилософских соображений. Однако технически, наверное, можно написать скрипт и повесить его на планировщик. По крайней мере для git подобный скрипт пишется без труда. Думаю, что для subversion это тоже возможно.