Сведения о вопросе

Fedya

21:56, 9th August, 2020

Теги

svn    

Лучший способ структурировать репозиторий в Subversion для проектов Visual Studio?

Просмотров: 394   Ответов: 6

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

Недавно я переключился на Subversion для управления версиями, и я боюсь, что я не сделал хорошую работу по структурированию репозитория. Я хотел бы услышать, что делают другие.



  Сведения об ответе

ITSME

10:57, 19th August, 2020

Репозитории Subversion обычно подразделяются на:

branch/
tags/
trunk/

Вы можете либо поместить все ваши проекты DLL и приложения в магистраль , а затем использовать ветвь и теги для всех них по мере необходимости.:

branch/
tags/
trunk/
    project1/
    project2/

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

project1/
    branch/
    tags/
    trunk/

project2/
    branch/
    tags/
    trunk/

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

Если говорить более подробно, то магистраль -это то место, где будет происходить ваше основное развитие. Если вы хотите отметить определенную редакцию (например, версию выпуска), то просто svn скопируйте проект в каталог тегов. Кроме того, просто скопируйте код в каталог филиала , когда вы хотите сделать что-то резкое или длительное и не хотите мешать прогрессу в магистрали . Позже вы можете svn слить свою ветвь обратно в ствол , когда она будет готова к действию!

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


  Сведения об ответе

PIRLO

11:52, 15th August, 2020

использование структуры репозитория branch/trunk/tag довольно стандартно, но если я правильно вас понимаю, ваша проблема заключается в том, что у вас есть набор общих проектов dll, которые используются в нескольких проектах. Это определенно может стать сложным в управлении.

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

Допустим, я запускаю новое приложение под названием StackOverflow.Web, которое должно ссылаться на Common.Helpers.

Обычно вы создаете новый файл решения и добавляете новый проект с именем Stackoverflow.Web и добавляете существующий проект Common.Helpers, а затем ссылаетесь на него из нового проекта Stackoverflow.Web.

Обычно я пытаюсь создать репозиторий для проекта Common.Helpers, а затем в subversion ссылаюсь на него как на внешний . Таким образом, вы можете хранить код под управлением исходного кода в одном месте, но по-прежнему использовать его отдельно в нескольких проектах.


  Сведения об ответе

pumpa

21:03, 2nd August, 2020

Если вы хотите использовать отслеживание слияний Subversion 1.5 для нескольких проектов одновременно, вы должны использовать одно дерево без внешних объектов.

Отслеживаемое слияние (как и фиксация) всегда происходит над каталогом и его дочерними элементами.

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


  Сведения об ответе

KOMP

13:19, 9th August, 2020

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

Решение
Проект 1

  • Ветка
  • Метить
  • Багажник

Проект 2

  • Ветка
  • Метить
  • Багажник

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

В противном случае наиболее распространенной структурой является:

  • Ветка
  • Метить
  • Багажник
  • Документы (Необязательно)


  Сведения об ответе

DAAA

21:00, 26th August, 2020

Я храню все в репозитории, чтобы разработчики (или перестроенные devboxes) могли легко извлечь из SVN и затем запустить сборку (со всеми необходимыми сборками в относительных путях). Если у вас есть несколько проектов, которые должны быть разделены, это также будет стимулировать команду ваших общих компонентов к поставке высококачественных сборок. Это может последовать за обычным выпуском в производство, где общий ассемблер будет обновляться в ваших последующих проектах. Это очень естественная цепочка создания стоимости программного обеспечения, за счет небольшого объема дискового пространства.

ДЖП Будху есть отличная серия на тему автоматизированное построение, VS структуру папок, и получать разработчики и работает быстро.


  Сведения об ответе

LIZA

04:05, 10th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться