(dis) ข้อดีของ staging dev-> การผลิตโดยใช้ 'drush rsync' vs 'git' หรือไม่


9

ฉันตั้งเว็บไซต์ Drupal ภายใต้การควบคุมคอมไพล์สำหรับงานพัฒนา

มันมีการจดสิทธิบัตรใน master, repo GIT เปลือยและเมื่อมีการเปลี่ยนแปลงใน clit git งานโครงการต่าง ๆ ของฉันและผลักกลับไปที่ master ตะขอ post-update hook จะผลักดันการเปลี่ยนแปลงไปยังเว็บไซต์ Staging เดียวทันที (http: / /staging.loc.) ไม่มีอะไรพิเศษทำงานตามที่คาดไว้

ฉันยังใช้นามแฝงว่าเป็นเว็บไซต์ "@STAGING" ในบางครั้งฉันต้องการโปรโมตการเปลี่ยนแปลงของฉันจากไซต์ Staging ไปยังเซิร์ฟเวอร์ที่ใช้งานจริง

สองวิธีที่ค่อนข้างตรงไปตรงมาอยู่ในใจ:

(1) ณ จุดหนึ่งเมื่อไซต์ Staging ดูเสถียรให้สร้างไซต์การผลิตเป็นจุดชำระเงิน git จาก repo หลัก

(2) ใช้drush rsync+ drush sql-syncจากไซต์การแสดงไปยังไซต์การผลิต

ทั้งสามารถทำงานได้ นอกเหนือจากข้อเท็จจริงที่ว่า (2) ดูเหมือนว่า Drupal-centric / ตระหนักถึงธรรมชาติมากขึ้น drush คือหลังจากนั้นชุดเครื่องมือเฉพาะของ Drupal - ข้อดีของทั้งสองวิธีคืออะไร

มีเหตุผลใดที่ฉันควรพิจารณา (1) มากกว่า (2)?

ไม่ว่าในกรณีใด "ทุกอย่าง" อยู่ภายใต้การควบคุมการแก้ไขอย่างน้อยหนึ่งอย่าง ...

คำตอบ:


3

ฉันใช้ทั้งสองเทคนิค ทั้งสองสามารถใช้เพื่อรับประกันว่าไฟล์เดียวกันกับที่คุณทดสอบบน @stage ท้ายที่สุดบน @live ข้อดีของ rsync คือคุณไม่ได้จบด้วยไฟล์พิเศษ (เช่น ".git" และไฟล์ที่เกี่ยวข้อง) บนเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ ฉันมักจะ rsync กับ vps และใช้คอมไพล์ในกล่องที่ฉันเป็นเจ้าของ (เช่นไซต์อินทราเน็ต)


ขอบคุณสำหรับจุด ฉันแค่ดูที่ตัวเลือกการยกเว้น ที่ช่วยรักษาความสะอาด Iiuc, ฉันต้องระบุสิ่งที่จะแยกด้วย"rsync' => array ('exclude-paths' => '.git:.DS_Store:.gitignore:.gitmodules:',"ในไฟล์. rc แม้ว่าฉันยังไม่แน่ใจว่าฉันต้องการมันหรือไม่ในทั้งข้อมูลจำเพาะนามแฝงต้นทางและปลายทางหรืออย่างใดอย่างหนึ่ง

.git ควรละเว้นตามค่าเริ่มต้น เรียกใช้ 'drush - จำลอง rsync [options] @a @b' เพื่อดูคำสั่ง rsync ที่ Drush จะทำงาน ใช้ --include-vcs หากคุณต้องการ drush rsync ให้รวม. git และ vcs อื่น ๆ ที่เกี่ยวข้องกับไฟล์
greg_1_anderson

ฉันต้องการอ่านรายละเอียดเพิ่มเติม ฉันไม่ทราบว่า. git ถูกยกเว้น ขอบคุณสำหรับคำใบ้จำลองด้วย Re: OP ฉันคิดว่าฉันจะยึดติดกับ 'drush rsync' เนื่องจากมันถูกออกแบบมาให้เป็นวิธีการปรับใช้สำหรับ drupal และใช้งานได้ git สามารถทำงานได้แน่นอน แต่ตอนนี้ฉันได้เจอความคิดเห็นมากพอที่มันไม่ได้ออกแบบมาสำหรับการปรับใช้ ...

1

ปัญหาเกี่ยวกับการใช้ drush rsync คือถ้าคุณมีหลายคนผลักดันการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์

ตัวอย่างของคุณแสดงเพียงคนเดียวที่ผลักดันการเปลี่ยนแปลง

หากคุณมีนักพัฒนาซอฟต์แวร์ A ผลักดันการเปลี่ยนแปลงของเธอและจากนั้นนักพัฒนา B ผลักดันการเปลี่ยนแปลงของคุณคุณต้องการให้คอมไพล์ซับความขัดแย้งหรือทำให้นักพัฒนา B ซับความขัดแย้ง


1

ฉันใช้ทั้งสองอย่างจริงๆ svn / git และ rsync ให้บริการสองวัตถุประสงค์ที่แตกต่างกัน svn / git ใช้สำหรับการควบคุมซอร์สrsyncและใช้sql-syncสำหรับการซิงค์ staging และ prod อย่างมีประสิทธิภาพ drush rsync @staging @prodยากมากที่จะเอาชนะในแง่ของความเรียบง่ายและเป็นเรื่องง่ายที่จะรวมในcontinuous Integrationสภาพแวดล้อมใด ๆ ที่คุณต้องการดำน้ำลึกลงไปในความบ้าคลั่ง / วิธีการที่มีคุณภาพรหัส


1

ส่วนตัวฉันใช้ Git สำหรับการควบคุมเวอร์ชันการปรับใช้และการซิงค์รหัสเซิร์ฟเวอร์ต่างๆจากนั้น rsync เพื่อย้าย / ซิงค์ไฟล์ผู้ใช้ (ละเว้นโดยการเพิ่มพา ธ ที่แน่นอนไปยังไฟล์. gitignore)

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