Как исправить версию проекта в истории работы SVN? - PullRequest
1 голос
/ 02 декабря 2010

Я работаю над проектом, который может содержать несколько версий для нескольких клиентов.Т.е. 2.65 - версия для клиента 1, а 2.67 - версия для клиента 2;как правило, различия между 2,65 и 2,67 действительно невелики - и поэтому нет необходимости в нескольких филиалах для каждого клиента.Все, что мне нужно, - исправить версию в рабочей истории и, если потребуется в будущем, проверить выбранную версию (например, проверить версию 2.65, если рабочая копия 3.4 - и добавить некоторые изменения для соответствующего клиента).

Я использую VisualSVNна сервере и TortoiseSVN в клиенте.ТНХ)

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

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

Пример:

В настоящее время филиал client1 имеет тег '2.65', а филиал client2 имеет тег '2.67'.
Теперь вы делаете некоторые исправления в стволе и хотите передать их обратно в ветку client1 только потому, что client2 не имеет функции, к которой было применено исправление.

Объедините изменения из магистрали в ветку client1 , создайте новый тег «что угодно» и передайте эту новую маркированную версию клиенту.

Кстати: TortoiseSVN имеет встроенную функциональность Merge , с которой я никогда не работал (возможно, не понимал этого). Использование Git в другом проекте показало мне, что интеллектуальное (автоматическое) объединение может действительно работать ...

1 голос
/ 02 декабря 2010

Вы описываете один из прототипов вариантов использования для веток.Серьезно.

Тем не менее, я полагаю, что вы отбрасываете ветки, потому что перенос изменений между ветвями является сложной и трудоемкой задачей.Это медленно, и вы должны исправить конфликты, которые трудно понять.Ну, это не ограничение ветвей: это ограничение Subversion.Очевидно, что Subversion не хранит достаточно информации о ваших изменениях, и это действительно затрудняет правильное слияние.

Говорят, что другие современные системы контроля версий обрабатывают ветвления намного лучше, чем Subversion: git, Mercurial, Bazaar... Вы можете рассмотреть возможность переключения.

Как бы то ни было, вы можете обрабатывать параллельные ветви даже в Subversion.Взгляните на раздел «Ветвление и слияние» в книге «Контроль версий с помощью Subversion».TortoiseSVN может быть очень удобен, потому что, когда вы пытаетесь выполнить слияние, он выделяет ревизии, которые уже были перенесены.

...