Я использую 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?
Ответ 1
Что вы действительно задаете, так это: "Можете ли вы указать --depth
для svn:externals
", а ответ - нет. Внешние в настоящее время полностью рекурсивные в указанном каталоге.
Проблема 3216 запрашивает эту функциональность, но похоже, что это не скоро.
Ответ 2
Вы можете сделать отдельные внешние ссылки для каждой подпапки в ссылочном репозитории. Таким образом, если ваш внешний объект находится в репо с проектами A, B и C, и вам нужны только A и B, вы можете сделать две отдельные внешние ссылки на подпапки для A и B индивидуально.
В настоящее время я делаю это с проектом, но вы можете столкнуться с проблемами, если на самом деле вы делаете изменения для внешних и фиксируете их, поскольку изменения в двух отдельных внешних элементах не могут выполняться атомарно. Эта проблема существует, даже если оба внешних элемента фактически указывают на один и тот же репозиторий, что имеет смысл, но важно отметить при использовании этой техники.
Также, если вы несете ответственность за второй репозиторий, один из них также должен подталкивать тестирование, документацию и другие связанные папки в другой отдельный репозиторий с внешними исходными текстами, чтобы отделить их от основного репозитория кода. Таким образом, эти папки не будут извлекаться при создании внешней ссылки из-за зависимостей кода.
Ответ 3
Вы можете сделать это с помощью разреженных каталогов (также известный как мелкие проверки). Я не на 100% уверен, что он работает при использовании внешних, но я не понимаю, почему это не так.
Ответ 4
Что произойдет, если вы попытаетесь удалить локальный каталог wp-content, но сделайте это через SVN? то есть.
svn rm /wordpress/wp-content
Таким образом, SVN должен помнить ваши изменения, и я предполагаю, что вы не нажимаете материал на репо Wordpress, поэтому вам не нужно беспокоиться о том, чтобы случайно его совершить.