Внешние SVN в подкаталогах хранят только конечный каталог в SVN - PullRequest
0 голосов
/ 19 февраля 2010

Я пытаюсь добавить что-то вроде:

subdir
  modules
    module1ext
    module2ext
    module3NOText
  other dir not from externals

, в котором subdir / modules / module {1,2} ext определены специально для внешних файлов, но не для / subdir и /modules. Это в основномдобавляет модуль {1,2} ext к репозиторию svn, но не к subdir и модулям.

Итак, теперь я хочу добавить каталог в subdir (другой каталог не из внешних источников) или модули (module3NOText) и яне может, потому что родительские каталоги не находятся под SVN.Должен ли я просто SVN добавить их?Разве это не испортит определение externals?

Также, скажем, я хочу изменить module1ext.Я думал об удалении внешнего определения, а затем svn добавить этот каталог.По моему опыту, это работает, но можете ли вы сказать мне, есть ли у него какие-либо недостатки или это нужно делать вообще?

1 Ответ

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

Вы, кажется, здесь что-то перепутали.

Ваш репозиторий должен выглядеть так:

trunk
   subdir
     modules ---------> property svn:externals with links to module1ext and module2ext
        module3NOText
   otherdirnotfromexternals

При проверке транка все папки (subdir, modules, module3NOTExt, otherdirnotfromexternals) находятся под контролем версии SVN. Модули должны содержать два внешних модуля (если свойство svn: externals установлено правильно).

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

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

  • если код находится в одном и том же хранилище, вы можете просто использовать svn copy для создания ветви и использовать svn merge
  • если код находится в другом репозитории, вы можете управлять этим как ветка поставщика . В двух словах: вы импортируете код в свой собственный репозиторий, помечаете его, чтобы отметить точку, с которой вы начали, переходите в свой собственный проект и вносите в него свои изменения. Чтобы объединить изменения в исходном коде, вы импортируете новую версию в ветку поставщика, пометите ее снова и объедините изменения с веткой проекта.
...