Cara-untuk: mendorong repo GitHub ke server plugin wordpress

21

Saya mengembangkan plugin saya di github tetapi ketika datang ke penyebaran saya harus entah bagaimana menyalin perubahan saya ke Wordpress SVN . Saat ini saya melakukan ini secara manual dan menyalin setiap file di setiap direktori secara terpisah, tetapi ini memakan waktu dan rawan kesalahan.

Saya telah melihat dan mencoba beberapa skrip tetapi saya pikir saya harus salah menjalankannya karena kesalahan atau tidak menyalin file dengan benar.

Jadi pertanyaan saya adalah adakah yang sudah mencapai ini secara otomatis dan jika demikian bagaimana Anda melakukannya?

Terima kasih!

studioromeo
sumber
Meskipun saya pikir ini adalah pertanyaan yang menarik dan berguna, tetapi juga tidak termasuk karena ini tentang interaksi Git dan Subversion dan tidak ada yang spesifik tentang WordPress. Saya perlu berpikir apa yang akan menjadi tindakan terbaik di sini ...
Rarst
Saya sudah mulai mempertanyakan meta untuk membahas kasus ini.
Rarst
@Rarst terima kasih untuk itu, maaf karena salah
meletakkan

Jawaban:

1

lihat tutorial ini dari rekan kerja tim saya: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

tapi dia tidak menggunakan solusinya, lebih mudah untuk bekerja terpisah :(

bueltge
sumber
Terima kasih @bueltge. Jadi apakah saya benar dalam berpikir dia telah kembali ke metode manual?
studioromeo
4
Demi cinta semua yang suci, jangan ikuti instruksi di situs itu. Jika Anda tiba-tiba membuat ratusan komitmen pada SVN kami, saya pribadi akan menjadikannya tujuan hidup saya untuk menemukan Anda dan mengalahkan Anda dengan tongkat. Atau mungkin hanya melarang Anda dari WordPress.org. ;) Tolong hanya komit versi final, bukan masing-masing dan setiap perubahan yang Anda komit git. Kami menghargai sejarah Anda, tetapi hanya sejarah yang bermakna. Masalah dengan git adalah bahwa orang melakukan banyak omong kosong yang tidak berguna, dan kita tidak perlu mengetahui semua hal itu, secara umum.
Otto
@Otto Lol! Tidak, saya hanya ingin menyebarkan perubahan saya ke repo SVN. Saat ini melakukan ini secara manual menimpa file di repo svn saya diperiksa tapi itu membosankan & rawan kesalahan. Apakah Anda punya saran?
studioromeo
3
Melakukan rebase interaktif perubahan Git Anda akan memungkinkan Anda menggabungkannya menjadi komit SVN tunggal. Info lebih lanjut tentang cara melakukan ini ada di sini: stackoverflow.com/questions/158514/…
Otto
1
@Otto " Saya tidak akan tahu, jujur, saya tidak menggunakan Git. Saya merasa menjengkelkan. " Dapat dijawab dengan kutipan lain (langsung dari Anda) " Saya pribadi akan menjadikannya tujuan hidup saya untuk menemukan Anda dan mengalahkan Anda dengan tongkat ":)
kaiser
1

Setelah membaca tanggapan ini, saya mendorong salah satu plugin saya ke GitHub dan menulis skrip release.sh . Script ini mendapatkan checkout sebagian plugin saya dari plugins.svn.wordpress.org menggunakan --depth immediates, dan memperbarui file di trunk/dan assets/. Ini harus menyederhanakan dorongan periodik ke svn, menggunakan repositori wordpress.org untuk menandai rilis daripada mempertahankan riwayat pengembangan:

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

Versi yang lebih umum mungkin berfungsi dengan beragam plugin, menangani file yang dihapus, dan memperbarui tag svn secara otomatis berdasarkan tag git.

Annika Backstrom
sumber
1

Lihat Cara Menerbitkan Plugin WordPress - Git dari @EAMann untuk deskripsi terperinci.

fuxia
sumber
Jika Anda akan melakukan hal semacam ini, silakan lakukan rebase interaktif dan kemudian ubah semua komit menjadi terjepit, sehingga Anda tidak membuat lusinan komit kecil ke server SVN. Info lebih lanjut tentang cara melakukan ini ada di sini: stackoverflow.com/questions/158514/…
Otto
5
@ Otto Sementara saya benar-benar mengerti keinginan Anda untuk mengurangi beban server :) Saya sangat, sangat suka melakukan atom jika saya harus men-debug kode orang lain. Hm ... tautan otomatis ke repositori Git publik dengan riwayat komit lengkap bisa menjadi perangkat tambahan yang berguna untuk direktori plugin.
fuxia
3
Harus setuju dengan @Otto tentang ini. SVN WordPress.org harus benar-benar menjadi repositori rilis, bukan repositori pengembangan.
MikeSchinkel
1

Pertanyaannya sudah lama tetapi sekarang solusinya sekarang tersedia dengan tindakan GitHub. Baru-baru ini GitHub menambahkan Tindakan Github alur kerja otomatis untuk repositori GitHub.

Dan perusahaan terkenal 10up menciptakan "Action WordPress Plugin Deploy".

Sangat mudah diatur. Dan seperti yang dikatakan per @otto, kita tidak perlu mendorong setiap perubahan ke svn jadi, kita dapat mengatur otomatisasi sambil membuat tag baru di github.

Jadi, plugin github kami secara otomatis mendorong kode ke repositori WordPress ketika kami membuat tag rilis baru.

Tautan yang bermanfaat:

maheshwaghmare
sumber
0

Saya tidak melakukannya secara otomatis, tetapi cukup sederhana:

Mintalah truk SVN dan master Git untuk memeriksa di direktori yang sama. Gunakan Git untuk hampir semua hal, seperti halnya dengan proyek Git saja.

Atur stable tagmenjadi trunk, dan ketika siap untuk melakukan rilis, tandai di Git dan kemudian segera dorong ke trunk. Jangan khawatir tentang mendorong ke SVN /tags, karena riwayat rilis Anda aman di Git (dan Github).

Itu saja.

Untuk membersihkannya, saya menambahkan .svnuntuk .gitignore, dan .git(dan tests/, phpunit.xml, dll) untuk diabaikan oleh SVN.

Skrip release.sh benar-benar tidak lebih dari yang berikut (setelah nomor versi dalam kode telah diperbarui, dan semua berkomitmen untuk Git):

git tag $1
svn ci -m"Release: $1"
Sam Wilson
sumber