Как: перенести репозиторий GitHub на серверы плагинов WordPress


21

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

Я видел и пробовал несколько сценариев, но я думаю, что я должен запускать их неправильно, так как они либо ошибаются, либо неправильно копируют файлы.

Поэтому мой вопрос: кто-нибудь достиг этого автоматически, и если да, то как ты это сделал?

Благодарность!


Хотя я думаю, что это интересный и полезный вопрос, он также выпадает из сферы действия, поскольку касается взаимодействия Git и Subversion, и в нем нет ничего конкретного для WordPress. Мне нужно подумать, что будет лучшим действием здесь ...
Rarst

Я начал вопрос о мета, чтобы обсудить этот случай.
Rarst

@ Большое спасибо за это, извините за неправильный вопрос
studioromeo

Ответы:


1

см. это руководство от сотрудника моей команды: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

но он не использует решение, его легче работать отдельно :(


Спасибо @bueltge. Так я прав, думая, что он вернулся к ручному методу?
studioromeo

4
Ради любви ко всему святому, не следуйте инструкциям на этом сайте. Если вы вдруг сделаете сотни коммитов в нашу SVN, я лично сделаю целью своей жизни найти вас и избить вас палкой. Или, может быть, просто забанить вас с WordPress.org. ;) Пожалуйста, оставляйте только окончательную версию, а не все изменения, которые вы сделали для git. Мы ценим вашу историю, но только значимую историю. Проблема с git в том, что люди совершают кучу бесполезного дерьма, и нам вообще не нужно знать все эти вещи.
Отто

@ Отто Лол! Нет, я просто хочу иметь возможность развернуть мои изменения в репозитории SVN. В настоящее время делайте это вручную, перезаписывая файлы в моем извлеченном репозитории svn, но это утомительно и подвержено ошибкам. У вас есть какие-нибудь предложения?
studioromeo

3
Интерактивная перебазировка ваших изменений в Git позволит вам объединить их в один SVN-коммит. Более подробную информацию о том, как это сделать, можно найти
Otto

1
@ Отто " Я бы не знал, если честно, я не использую Git. Я нахожу это раздражающим. " Можно ответить другой цитатой (прямо от тебя) " Я лично сделаю своей целью, чтобы найти тебя и победить тебя с палкой ":)
Кайзер

1

Прочитав эти ответы, я вставил один из своих плагинов в GitHub и написал скрипт release.sh . Этот скрипт получает частичную проверку моего плагина с помощью plugins.svn.wordpress.org --depth immediatesи обновляет файлы в trunk/и assets/. Это должно упростить периодическую отправку в svn, используя репозиторий wordpress.org для маркировки релизов, а не для поддержки истории разработки:

./release.sh
svn cp trunk tags/0.6
svn ci "Sending 0.6 from https://github.com/foo/bar to wordpress.org"

Более общая версия может работать с более широким набором плагинов, обрабатывать удаленные файлы и автоматически обновлять теги svn на основе тегов git.


1

См. Как опубликовать плагин WordPress - Git от @EAMann для подробного описания.


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

5
@ Отто Хотя я полностью понимаю ваше желание уменьшить нагрузку на сервер :) Я действительно, очень люблю атомарные коммиты, если мне нужно отлаживать чужой код. Хм ... автоматическая ссылка на публичный репозиторий Git с полной историей коммитов может быть полезным улучшением для каталога плагинов.
fuxia

3
Должен согласиться с @ Отто об этом. SVN WordPress.org действительно должен быть репозиторием релиза, а не репозиторием разработки.
MikeSchinkel

1

Вопрос был старый, но теперь решение доступно с помощью действий GitHub. Недавно GitHub добавил Github Actions автоматизированный рабочий процесс для репозитория GitHub.

И известная компания 10up создала «Action WordPress Plugin Deploy».

Это очень легко настроить. И, как говорит @otto, нам не нужно помещать каждое изменение в svn, поэтому мы можем настроить автоматизацию при создании нового тега на github.

Итак, наш плагин github автоматически отправляет код в репозиторий WordPress, когда мы создаем новый тег выпуска.

Полезные ссылки:


0

Я не делаю это автоматически, но это довольно просто:

Проверьте SVN truck и Git master в одном и том же каталоге. Используйте Git практически для всего, как это было бы с любым Git-проектом.

Установите значение « stable tagбыть» trunk, а затем, когда будете готовы выпустить релиз, отметьте его в Git и сразу же отправьте в транк. Не беспокойтесь о переходе в SVN /tags, так как ваша история релизов безопасна в Git (и Github).

Вот и все.

Для того, чтобы очистить его, добавить .svnк .gitignoreи .gittests/, phpunit.xmlи т.д.) , которые будут игнорироваться SVN.

Сценарий release.sh действительно был бы не чем иным, как следующим (после того, как номер версии в коде был обновлен и все переданы в Git):

git tag $1
svn ci -m"Release: $1"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.