ตรวจสอบรหัส Gerrit หรือรูปแบบการแยกและดึง Github หรือไม่


64

ฉันเริ่มโครงการซอฟต์แวร์ที่จะพัฒนาเป็นทีมและชุมชน ก่อนหน้านี้ฉันเคยขายใน gerrit แต่ตอนนี้รูปแบบการแยกและดึงคำขอของ Github ดูเหมือนจะให้เครื่องมือเพิ่มมากขึ้นวิธีที่จะมองเห็นความมุ่งมั่นและความสะดวกในการใช้งาน

สำหรับคนที่มีประสบการณ์อย่างน้อยกับทั้งคู่ข้อดี / ข้อเสียของแต่ละคนและอะไรจะดีกว่าสำหรับโครงการที่ทำงานเป็นทีมซึ่งต้องการเปิดโอกาสในการพัฒนาชุมชน

คำตอบ:


84

ความแตกต่างที่สำคัญระหว่างเวิร์กโฟลว์ของ Gerrit และ GitHub คือการเปลี่ยนแปลงรูปแบบอย่างไร

ใน Gerrit การกระทำทุกอย่างเป็นการเปลี่ยนแปลงที่เกิดขึ้นเอง แม้ว่า Gerrit จะแสดงความสัมพันธ์ระหว่างคุณ แต่การตรวจสอบจะดำเนินการตามการมอบหมาย ทีมที่เก่งในการแยกการเปลี่ยนแปลงครั้งใหญ่ลงไปในการกระทำเล็ก ๆ ในตัวเองน่าจะประสบความสำเร็จมากขึ้นกับ Gerrit อย่างไรก็ตามเนื่องจากโมเดลของ Gerrit ได้รวมการแก้ไขที่ต่อเนื่องกับการกระทำที่เฉพาะเจาะจงมันจึงสนับสนุนเวิร์กโฟลว์ของ Git ที่นักพัฒนาจำนวนมากไม่คุ้นเคยเช่นการแก้ไขการกระทำก่อนหน้านี้และการผลักดันมันซ้ำอีกครั้ง ผูกมัด

ใน Github คำร้องขอแบบดึงจะสร้างความสัมพันธ์ระหว่างสองสาขา เวิร์กโฟลว์ที่คาดหวังใน Github คือการยอมรับการเปลี่ยนแปลงอย่างน้อยหนึ่งรายการในสาขาหัวข้อ (มักอยู่ในที่เก็บเอกสาร แต่ไม่จำเป็น) และสร้างคำขอดึงระหว่างสาขานั้นและสาขา "อัปสตรีม" ในกรณีนี้สิ่งที่กำลังได้รับการตรวจสอบคือชุดของความมุ่งมั่นที่จะเติบโตต่อเนื่องในขณะที่การตรวจสอบยังคงดำเนินต่อไป ผลลัพธ์คือชุดของการเปลี่ยนแปลงที่สามารถผสานกันแบบอะตอมเมื่อเสร็จสมบูรณ์ คำขอดึงสามารถมีประสิทธิภาพในการติดตามการเปลี่ยนแปลงด้วยขอบเขตที่ใหญ่กว่าซึ่งอาจนำไปใช้กับหลายคอมมิท คำขอแบบดึงยังสนับสนุนเวิร์กโฟลว์ SCM ที่นักพัฒนาซอฟต์แวร์คุ้นเคยมากกว่าเช่นการตอบความคิดเห็นในการตรวจสอบโดยการส่งคำสั่งติดตามในสาขาเดียวกัน

ข้อได้เปรียบที่สำคัญในความโปรดปรานของ Github คือจำนวนนักพัฒนาที่คุ้นเคยกับมันเทียบกับ Gerrit Gerrit นั้นได้รับความนิยมจากผู้ใช้พลังงานของ Git แต่การใช้งานโดยไม่ต้องใช้แรงเสียดทานนั้นต้องการความรู้เกี่ยวกับคอมไพล์ระดับกลางหรือระดับสูง

ข้อดีของ Gerrit คือความสัมพันธ์ที่ลึกซึ้งยิ่งขึ้นกับ Git คำขอดึง Github นั้นอยู่ห่างจากโมเดลข้อมูลมาตรฐานของ Git มากพอที่จะต้องใช้ UI ของเว็บ Github หรือ API ที่เป็นกรรมสิทธิ์ของ GitHub เพื่อสร้างคำขอดึง อินเทอร์เฟซของ Gerrit สำหรับการสร้างและอัปเดตการเปลี่ยนแปลงเป็นโปรโตคอล git เอง


8
ขอบคุณมาร์ตินนั่นคือคำตอบที่น่าสนใจ ฉันตั้งใจจะดู Gerrit ซักพัก แต่คิดว่าฉันจะทำเช่นนั้น หากมันสนับสนุนการแก้ไขประวัติและการแบนด์วิดธ์ฉันไม่ต้องการทำอะไรกับมัน * 8 '(
ทำเครื่องหมายบูธ

15
เพื่อความชัดเจน (ฉันใช้ Gerrit บ่อยครั้งที่สถานที่ทำงานของฉัน) สิ่งที่ Martin พูดที่นี่ "Gerrit ... กระตุ้นขั้นตอนการทำงานของ Git ... เช่นการแก้ไขข้อผูกพันก่อนหน้านี้และการผลักดันนโยบายใหม่ .. ในการกระทำเดียว "ถูกต้องแน่นอน คำชี้แจงของฉันคือความเห็นของ @ MarkBooth เกี่ยวกับ "ประวัติการแก้ไข" ไม่ใช่สิ่งที่ Martin พูด การแก้ไขการกระทำ (ในขณะที่ยังอยู่ใน Gerrit และยังไม่ได้รวมกับต้นฉบับ / ต้นแบบ) ไม่เกี่ยวข้องกับ "ประวัติการแก้ไข" อันที่จริงเวิร์กโฟลว์นี้ใช้งานได้ดี การแก้ไขประวัติที่ไม่ดีในมาร์คมาร์กบูธหมายถึงเป็นการผลักดันประวัติศาสตร์ที่แก้ไขใหม่ไปยังจุดเริ่มต้น
likethesky

2
ขอบคุณสำหรับ clarification @likethesky แต่ฉันมีการตีความ 'การแก้ไขประวัติ' ตามตัวอักษรและเท่าที่ฉันเกี่ยวข้องอะไรก็ตามที่ส่งผลให้ชุดการเปลี่ยนแปลงที่มีเนื้อหาที่คุณไม่ได้กระทำอย่างชัดเจนคือ 'ประวัติการแก้ไข' ฉันรู้ว่านี่เป็นการตีความที่โหดร้ายและเป็นสิ่งที่คนอื่น ๆ * 8 ')
ทำเครื่องหมายบูธ

2
ยุติธรรมพอสมควร :-) ไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณหมายถึงโดย "เซ็ตการแก้ไขซึ่งมีเนื้อหาที่คุณไม่ได้กระทำอย่างชัดเจน" ดังนั้นโปรด ทำอย่างละเอียด ... ฉันคิดว่าคุณไม่ได้บอกว่าคุณไม่เคยกระทำการชั่วคราว (ในพื้นที่หรือแบ่งปันระหว่างสมาชิกในทีมผ่านสาขาที่อยู่ห่างไกล) เช่น "WIP: ความพยายามในการแก้ปัญหาซุ้มประตูที่เราพูดถึง" ตามด้วย สควอช / แก้ไขที่เป็นประโยชน์มากกว่าที่กล่าวว่า "ปัญหา 123: XYZ ที่ได้รับการปรับปรุงใหม่เพื่อเพิ่มความยืดหยุ่นและการปรับขนาดแนวนอนได้อย่างง่ายดาย" เป็นข้อความยืนยันขั้นสุดท้ายสำหรับงานนั้น แต่อย่างไรก็ตามแน่นอนว่าคุณสามารถเลือกใช้คอมไพล์ในทางใดก็ได้ที่ทำให้คุณมีความสุข!
likethesky

7
นี่คือคำตอบที่ยอดเยี่ยม ในการเพิ่มฉันพบว่าคำขอดึงของ GitHub ช่วยให้มีขนาดเล็กลงมีการทำซ้ำมากขึ้นและมักจะจบลงด้วยบันทึก git ที่เป็นคำอธิบายที่แสดงไม่เพียง แต่ผลิตภัณฑ์ทำงาน แต่กระบวนการทำงาน การตรวจสอบรหัสของ Gerrit ส่งเสริมประวัติของที่เก็บข้อมูลที่สะอาดมากขึ้น
tophyr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.