Лучшие практики для структуры каталогов проекта и контроля версий - PullRequest
1 голос
/ 21 сентября 2010

Я пытаюсь придумать канонический способ структурирования моих проектов с исходным кодом. Я использую JetBrains IntelliJ IDEA и Subversion (1.6.12) (используя SmartSVN в качестве моего GUI).

Я создал структуру каталогов источника следующим образом:

project
  + trunk
  + branches
  + tags

и откройте новый проект IDEA в каталоге trunk. Я пишу код: -).

Сейчас я собираюсь добавить проект в новый репозиторий, который я создал на сервере SVN (svnadmin create myproject). Я использую SmartSVN 6.6.2.

В SmartSVN я говорю ему импортировать код в новый проект и указать его в моем хранилище, используя SVN + SSH. SmartSVN предупреждает меня, что я импортирую каталог, отличный от обычного trunk, потому что я дал ему каталог верхнего уровня project. Я сбит с толку. Разве я не должен импортировать всю структуру каталогов в SVN?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2010

При использовании стандартной структуры каталогов Subversion вы обычно не получаете все trunk, branches и tags на своей машине, потому что это даст вам много-много копий одних и тех же файлов наваша система, если у вас есть несколько тегов или ветвей.Вместо этого вы обычно просто извлекаете trunk и можете позже переключить вашу проверку, чтобы указать на ветку или тег, или проверить интересующую вас ветку или тег в отдельном каталоге, если вам нужно поработать с ними.

Раньше я не использовал SmartSVN, но похоже, что при создании нового проекта ему дадут только каталог trunk, потому что он ожидает, что у вас будет только это проверено.Совершенно правильно иметь структуру каталогов, которую вы описываете на сервере, просто не ожидайте получить это для импорта.Обратите внимание, что если вы уже создали что-либо в тегах или папках веток на клиенте, Subversion не будет знать, как они относятся к стволу, и, таким образом, просто будет рассматривать их как совершенно отдельные файлы.Но если эти каталоги пусты при импорте, у вас все будет хорошо, просто предупреждаю, что вы импортировали код немного неожиданным образом.

0 голосов
/ 21 сентября 2010

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

Вы хотите иметь возможность выписать из <server>/svn/repos/project/trunk.

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

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