วิธีการ: ผลักดัน GitHub repo ไปยังเซิร์ฟเวอร์ปลั๊กอิน wordpress


21

ผมพัฒนาปลั๊กอินของฉันไปบน GitHub แต่เมื่อมันมาถึงการใช้งานที่ฉันต้องอย่างใดคัดลอกการเปลี่ยนแปลงของฉันเข้าไปในWordpress SVN ขณะนี้ฉันทำสิ่งนี้ด้วยตนเองและคัดลอกแต่ละไฟล์ในแต่ละไดเรกทอรี แต่ใช้เวลานานและเกิดข้อผิดพลาดได้ง่าย

ฉันได้เห็นและลองใช้สคริปต์บางอย่าง แต่ฉันคิดว่าฉันต้องเรียกใช้งานผิดเพราะพวกเขามีข้อผิดพลาดหรือไม่คัดลอกไฟล์อย่างถูกต้อง

ดังนั้นคำถามของฉันคือมีใครประสบความสำเร็จโดยอัตโนมัติและถ้าเป็นเช่นนั้นคุณทำได้อย่างไร

ขอบคุณ!


ในขณะที่ฉันคิดว่านี่เป็นคำถามที่น่าสนใจและมีประโยชน์ แต่ก็ไม่ได้อยู่ในขอบเขตเนื่องจากมันเกี่ยวกับการโต้ตอบของ Git และการโค่นล้มและไม่มีอะไรเกี่ยวข้องกับ 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 ;) โปรดยอมรับเวอร์ชันสุดท้ายเท่านั้นไม่ใช่เฉพาะการเปลี่ยนแปลงที่คุณได้คอมไพล์ไว้ เราให้ความสำคัญกับประวัติของคุณ แต่เป็นเพียงประวัติศาสตร์ที่มีความหมาย ปัญหาเกี่ยวกับคอมไพล์คือผู้คนยอมรับภาระอึที่ไร้ประโยชน์และเราไม่จำเป็นต้องรู้ทุกอย่างโดยทั่วไปพูด
อ็อตโต

@Otto ฮ่า ๆ ! ไม่ฉันแค่ต้องการที่จะสามารถนำการเปลี่ยนแปลงของฉันไปใช้กับ repo SVN ปัจจุบันทำสิ่งนี้ด้วยตนเองเขียนทับไฟล์ใน svn repo ที่ฉันเช็คเอาต์ แต่นั่นน่าเบื่อ & เกิดข้อผิดพลาดได้ง่าย คุณมีข้อเสนอแนะใด?
studioromeo

3
การทำการรีบูทแบบโต้ตอบของการเปลี่ยนแปลง Git ของคุณจะช่วยให้คุณสามารถรวมมันไว้ใน SVN เดียวที่กระทำได้ ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำสิ่งนี้อยู่ที่นี่: stackoverflow.com/questions/158514/…
Otto

1
@Otto " ฉันไม่รู้หรอกว่าจริง ๆ แล้วฉันไม่ได้ใช้ 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สำหรับคำอธิบายโดยละเอียด


หากคุณกำลังจะทำสิ่งนี้โปรดทำ rebase เชิงโต้ตอบจากนั้นเปลี่ยนค่าคอมมิชชันทั้งหมดที่จะถูกทำให้แบน ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำสิ่งนี้อยู่ที่นี่: stackoverflow.com/questions/158514/…
อ็อตโต

5
@Otto ในขณะที่ฉันเข้าใจความต้องการของคุณในการลดการโหลดเซิร์ฟเวอร์ :) ฉันรักปรมาณูอย่างแน่นอนถ้าฉันต้องแก้ไขรหัสของคนอื่น หืมม. ... ลิงก์อัตโนมัติไปยังที่เก็บ Git สาธารณะที่มีประวัติการกระทำที่สมบูรณ์อาจเป็นประโยชน์สำหรับไดเรกทอรีปลั๊กอิน
fuxia

3
ต้องเห็นด้วยกับ @Otto เกี่ยวกับเรื่องนี้ SVN ของ WordPress.org ควรเป็นที่เก็บข้อมูลจริงไม่ใช่ที่เก็บข้อมูลการพัฒนา
MikeSchinkel

1

คำถามนั้นเก่า แต่ตอนนี้การแก้ปัญหาสามารถใช้ได้กับการกระทำของ GitHub เมื่อเร็ว ๆ นี้ GitHub เพิ่ม Github Actions เวิร์กโฟลว์อัตโนมัติสำหรับที่เก็บ GitHub

และ บริษัท ที่รู้จักกันดี 10up ได้สร้าง "Action WordPress Plugin Deploy"

มันง่ายมากที่จะติดตั้ง และตาม @otto ระบุว่าเราไม่จำเป็นต้องผลักดันการเปลี่ยนแปลงแต่ละรายการไปยัง svn ดังนั้นเราสามารถตั้งค่าระบบอัตโนมัติในขณะที่สร้างแท็กใหม่บน github

ดังนั้นปลั๊กอิน github ของเราจะส่งรหัสไปยังที่เก็บ WordPress โดยอัตโนมัติเมื่อเราสร้างแท็กใหม่

ลิงค์ที่มีประโยชน์:


0

ฉันไม่ทำมันโดยอัตโนมัติ แต่มันง่ายมาก:

ให้รถบรรทุก SVN และ Git หลักตรวจสอบแล้วในไดเรกทอรีเดียวกัน ใช้ Git สำหรับเกือบทุกอย่างเช่นเดียวกับโครงการ Git เท่านั้น

ตั้งค่าstable tagเป็นtrunkและจากนั้นเมื่อพร้อมที่จะปล่อยให้ติดแท็กใน Git แล้วกดไปที่ลำต้นทันที ไม่ต้องกังวลกับการผลักดันสู่ SVN /tagsเนื่องจากประวัติการเผยแพร่ของคุณปลอดภัยใน Git (และ Github)

เกี่ยวกับมัน.

การทำความสะอาดมันขึ้นฉันจะเพิ่ม.svnไป.gitignoreและ.git(และtests/, phpunit.xmlฯลฯ ) จะได้รับการปฏิเสธโดย SVN

สคริปต์ release.sh จะไม่มีอะไรมากไปกว่าสิ่งต่อไปนี้ (เมื่อหมายเลขรุ่นในรหัสได้รับการอัปเดตและทั้งหมดมุ่งมั่นที่จะ Git):

git tag $1
svn ci -m"Release: $1"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.