SVN: Возможный иметь изменения распространяют к различным версиям файла?

Я использовал основные технические возможности SVN прежде, чтобы зарегистрироваться в коде и проверить его. Я никогда не касался ответвлений и более сложного материала как этот. Действительно ли возможно использовать SVN, таким образом, я могу сохранить основную версию файла исходного кода, сделайте немного отличающуюся версию из него для другого проекта и затем имейте какие-либо изменения в основной версии быть скопированными в другие версии, не перезаписывая изменения, внесенные в те другие версии?

Я вид сомнения, с которым это возможно легко иметь дело, не имея необходимость вручную иметь дело с конфликтами, таким образом позвольте мне задать альтернативный вопрос: Если я сделал репозиторий со своего рода общей библиотекой кода и затем внес какие-либо определенные изменения проекта, к которым в отдельных файлах с помощью наследования классов, действительно ли возможно настроить его, таким образом, существует два репозитория, проверенные в той же папке?

4
задан 24.09.2010, 22:03

4 ответа

Это - трудная вещь сделать в SVN. Это требует большого ручного слияния и подвержено ошибкам. Однако, если у Вас есть опция, как упоминания @Ash, распределенные системы управления версиями обрабатывают этот сценарий вполне хорошо. В частности, я знаю, что Мерзавец делает это чрезвычайно легким.

Переосновная мерзавцем команда делает точно, что Вы хотите. Принятие Вас имеет основное ответвление или ответвление "источника" Вашего источника, Вы просто делаете новое ответвление ("mywork") для внесения определенных изменений проекта на (представленными блоком C6).

Project branch

Теперь, в то время как основное ответвление кода продолжает изменяться (пересмотр C3 и C4), Вы просто повторно основываете свое определенное ответвление проекта к новому пересмотру, и Вы получите все изменения, которые были внесены на основном ответвлении в Вас ответвление проекта.

Rebase graph

Существует все еще возможность необходимости сделать ручное слияние, но вероятность необходимости сделать это намного ниже. Мерзавец вынимает много боли из выполнения операции слияния. Проверьте главу перебазирования Книги Мерзавца для большего количества информации.

4
ответ дан 07.12.2019, 20:09

Я думаю, что это довольно трудно сделать с подверсией (по крайней мере, текущие версии), если не невозможный, но распределенная система управления версиями обработает его. Я использовал Подвижный для решения этой проблемы:

На стороне "сервера":

  • Создайте "основной" репозиторий
  • Клон, что репозиторий для создания определенной версии проекта репозитория (клонирование делает дубликат всего репозитория где-то в другом месте),

На "клиентской" стороне:

  • Клонируйте репозиторий проекта к своей области разработки и проверьте его
  • Внесите изменения, фиксируя локально много и пододвинув обратно к серверу как соответствующий

Если изменения в ведущем устройстве происходят, их можно "вытянуть" в определенный репозиторий проекта, который будет течь вниз к локальному репозиторию. Если изменения, внесенные в определенный репозиторий проекта, считают подходящими для "ведущего устройства", они могут быть пододвинуты обратно до него. Подвижный помнит пути между родительскими репозиториями, таким образом, все это совмещается. Слияния между ответвлениями (который Вы склонны использовать намного больше) и репозитории обычно являются свободной болью. Один недостаток - то, что Подвижный не позволяет "избирательно подходить к выбору" обновлений, но это может быть преимуществом, так как это не допускает Вас в потенциальную проблему в будущих слияниях.

Существует, вероятно, большее кривая обучения в выполнении всего этого, но могло бы стоить для исследования.

1
ответ дан 07.12.2019, 20:09

На этом вопросе намного лучше не задают ТАК (который имеет более чем 5 000 вопросов SVN)? Я вижу, что здесь существуют некоторые вопросы SVN, но я не знаю то, что делает один лучше подходящий для любого сайта.

0
ответ дан 07.12.2019, 20:09

Короткий ответ является "нет". Проблема, которую Вы описываете, объединяет ответвления, когда существует изменение. Существуют инструменты, которые помогут, но в конце Вы объединяете два ответвления кода, которые оба изменились. Эта ситуация может вызвать конфликт, который потребует человеческого вмешательства.

1
ответ дан 07.12.2019, 20:09

Теги

Похожие вопросы