Как заставить SVN игнорировать каталог внутри внешнего определения - PullRequest
10 голосов
/ 21 января 2010

Я использую Subversion для размещения собственного репозитория для установки WordPress. Я настроил его так, чтобы все основные файлы WordPress находились в своем собственном каталоге (называемом WordPress) и были настроены на использование svn: externals для ссылки на репозиторий WordPress. Затем у меня есть собственная копия каталога wp-content (расположенного вне каталога wordpress), в котором не используется svn: externals. Это все работает нормально.

Когда я обновляю свой репозиторий, ядро ​​WordPress обновляется. Поскольку репозиторий WordPress содержит собственный каталог wp-content, он также обновляет этот каталог. Итак, моя файловая структура выглядит примерно так:

/
--/wordpress/   (wordpress repo)
-----/wp-admin/
-----/wp-content/
--/wp-content/  (my local repo)

У меня две отдельные версии папки wp-content (одна из моего репо и одна из репозитория WordPress). Я не хочу один из репозитория WordPress (или, по крайней мере, не в этом месте). Есть ли способ настроить svn на игнорирование каталога wordpress / wp-content при использовании определения externals?

Ответы [ 4 ]

10 голосов
/ 22 января 2010

Вы действительно спрашиваете: «Можете ли вы указать --depth для svn:externals», а ответ - нет. В настоящее время внешние объекты полностью рекурсивны в указанном каталоге.

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

2 голосов
/ 05 апреля 2010

Вы можете создать отдельные внешние элементы для каждой подпапки в указанном репозитории. Таким образом, если ваш внешний репозиторий с проектами A, B и C и вы хотите только A и B, то вы можете сделать две отдельные внешние ссылки на подпапки для A и B по отдельности.

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

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

0 голосов
/ 07 июля 2010

Что произойдет, если вы попытаетесь удалить локальный каталог wp-content, но сделаете это через SVN? то есть.

svn rm /wordpress/wp-content

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

0 голосов
/ 22 января 2010

Вы можете сделать это с разреженными каталогами (также известными как мелкие проверки ). Я не уверен на 100%, что это работает при использовании внешних устройств, но я не понимаю, почему это не так.

...