SVN хорошая практика (филиалы) - PullRequest
0 голосов
/ 10 марта 2010

Наше приложение в настоящее время состоит из двух больших объектов: файлы C # ASPX и файлы шаблонов отчетов RPT.

Файлы ASPX разработаны кем-то, а файлы RPT - кем-то другим.

Оба мира не синхронизированы. Например, у вас может быть 10 новых версий для шаблонов RPT, в то время как для файла C # делается только одна версия.

Есть ли способ разделить эти два логических потока части разработки одного и того же проекта в SVN? Должно ли все храниться в одном и том же хранилище? Будут ли ветки SVN хорошим приложением для этого?

Я бы хотел, чтобы все каталоги в одном приложении были такими же,

  • / ModuleA / Main.aspx
  • / ModuleB / Admin.aspx
  • / ReportTemplates / Generic.rpt

Любое руководство будет оценено!

Спасибо

Ответы [ 4 ]

4 голосов
/ 10 марта 2010

Если они являются частью одного и того же проекта, они должны находиться в одном и том же хранилище. И вам не нужно разветвляться; один человек может работать с шаблонами RPT, другой человек может работать с файлами ASPX, и каждый получит изменения друг от друга.

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

1 голос
/ 10 марта 2010

Это не очень хорошее применение для ветвления. Ветвление больше похоже на то, когда у вас есть код, который одинаков, но отличается (либо для унаследованного, либо для релиза, либо для чего-либо еще)

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

1 голос
/ 10 марта 2010

Если файлы ASPX и RPT зависят друг от друга (например, изменение одного может сломать другое), и люди, выполняющие коммиты, не проверяют функциональность приложения перед фиксацией, на самом деле вы можете захотеть разделить ветви, так что вы можете изолировать потенциальное влияние критических изменений. Тогда у вас будет назначен интегратор, который выполнит слияние и подтвердит функциональность перед фиксацией.

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

1 голос
/ 10 марта 2010

Файлы, принадлежащие одному и тому же проекту, должны попадать в один и тот же репозиторий, если только некоторые файлы не могут быть использованы и в другом проекте (тогда вам придется рассмотреть возможность создания отдельного репозитория для общего кода и использовать externals возможность ссылки в некоторых его частях).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...