Могу ли я добавить внешнюю Subversion как встроенную папку, в которую я добавляю ее? - PullRequest
1 голос
/ 11 февраля 2010

У меня есть две папки, как показано ниже:

svn/BaseLibrary/trunk (which contains)
svn/BaseLibrary/trunk/Core
svn/BaseLibrary/trunk/Controls

Я бы хотел включить BaseLibrary в качестве внешнего элемента в другой проект, чтобы библиотеки Core и Controls находились на одной линии с остальной частью моего проекта. Так с моим другим проектом ниже:

svn/Project/trunk/Site

Я хочу добавить внешние, чтобы они могли объединяться вместе так:

/svn/Project/trunk/Core
/svn/Project/trunk/Controls
/svn/Project/trunk/Site

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

https://svn.repo.co.uk/svn/BaseLibrary/trunk

Есть идеи?

Ответы [ 2 ]

1 голос
/ 11 февраля 2010

Да возможно. В / svn / Project / trunk установите свойство svn: externals для внешних:

Core ../BaseLibrary/trunk/Core@HEAD

Controls ../BaseLibrary/trunk/Controls@HEAD

Примечания:

  • Вы должны использовать ревизию колышка (это не HEAD). Если вы не используете ревизию колышка, вы в основном уничтожаете свою историю (любой тег / ветвь, которые вы делаете из каталога, будут по-прежнему иметь внешние элементы, указывающие на ствол BaseLibrary в текущем HEAD, а не при создании исторического тега)
  • Внешние элементы на первый взгляд кажутся хорошими, но добавляют много ограничений и проблем при попытке создания веток и управления ими. IMO, гораздо лучше сделать Project зависимым от конкретной «выпущенной» версии BaseLibrary, или, если вы действительно хотите тесную интеграцию, сохраните Copy Core и Controls в своем Project и выполните дополнительное слияние. Да, дополнительное слияние, но также полный контроль, никаких неожиданностей или ограничений.
1 голос
/ 11 февраля 2010

Что если вы добавили две папки по отдельности как внешние к svn/Project/trunk/?

Core svn/BaseLibrary/trunk/Core
Controls svn/BaseLibrary/trunk/Controls
...