Revup จัดเตรียมเครื่องมือบรรทัดคำสั่งที่อนุญาตให้นักพัฒนาวนซ้ำเร็วขึ้นในการเปลี่ยนแปลงแบบขนานและลดค่าใช้จ่ายในการสร้างและบำรุงรักษารีวิวรหัส
revup amend
และ revup restack
ประหยัดเวลาโดยการเปลี่ยนการรีเบสที่ช้าRevup ต้องใช้ Python 3.8 หรือสูงกว่าและ GIT 2.43 หรือสูงกว่า Revup ทำงานร่วมกับ Linux, OSX และ Windows (การทดสอบที่ จำกัด )
ทำตามคำแนะนำที่นี่เพื่อรับเวอร์ชัน GIT ล่าสุดสำหรับระบบปฏิบัติการของคุณ Revup ใช้ธงที่มีอยู่ในรุ่น GIT รุ่นใหม่เท่านั้น
ติดตั้งด้วย pip
หรือตัวจัดการแพ็คเกจที่คุณชื่นชอบ
python3.8 -m pip install revup
ตรวจสอบว่าการติดตั้งนั้นประสบความสำเร็จโดยแสดงหน้าวิธีใช้
revup -h
นอกจากนี้คุณยังสามารถสร้างจากแหล่งที่มาเพื่อรับการอัปเดตล่าสุด
git clone https://github.com/Skydio/revup.git && cd revup
make deps && make package && make install
บทช่วยสอนนี้จะนำทางคุณผ่านการใช้คุณสมบัติการรีคืนขั้นพื้นฐาน
โคลน repo sandbox โดย forking revup สร้าง repo ใหม่หรือใช้ repo อื่น ๆ ที่คุณเป็นเจ้าของ การสร้างการทดสอบ PRS อาจเป็นสแปมดังนั้นอย่าทำบทช่วยสอนเกี่ยวกับ repos ของคนอื่น
git clone https://github.com/ < your-name > /revup.git && cd revup
ในการเรียกใช้ครั้งแรกคุณจะต้องกำหนดค่าข้อมูลรับรอง GitHub สร้างโทเค็นการเข้าถึงส่วนบุคคลที่นี่และทำเครื่องหมายในช่องสำหรับ "สิทธิ์ซื้อคืนเต็ม" Revup ต้องการสิ่งนี้เพื่อสร้างและแก้ไขคำขอดึง จากนั้นวิ่ง
revup config github_oauth
และคัดลอกและวาง oauth ลงในพรอมต์
ทำสองข้อแรกของคุณที่จะกลายเป็นสองคำขอดึงแยกต่างหาก หมายเหตุ "หัวข้อ:" แท็กในข้อความ commit - นี่คือสิ่งที่ทำให้ Revup รับรู้และดำเนินการในการกระทำ แต่ละหัวข้อที่มีชื่อแยกต่างหากจะกลายเป็นคำขอดึงใหม่
echo meh > foo ; git add foo
git commit -m " My first revup foo " -m " Topic: foo "
echo peh > bar ; git add bar
git commit -m " My first revup bar " -m " Topic: bar "
revup upload
คุณได้อัปโหลดการเปลี่ยนแปลงครั้งแรกของคุณ! สังเกตว่าใน GitHub ทั้งสองสาขาเป้าหมาย 'หลัก' สิ่งนี้ช่วยให้พวกเขาถูกรวมเข้าด้วยกันอย่างอิสระ
ภายใต้ฮูดการรีมป์จะสร้างและผลักดันสาขาเหล่านี้ให้คุณติดตามและจัดการการพึ่งพาตามที่ต้องการ
ตอนนี้เราจะทำการตรวจสอบใหม่ที่สัมพันธ์กับ "foo" แท็ก "สัมพัทธ์" จะทำให้มั่นใจได้ว่าการตรวจสอบใหม่กำหนดเป้าหมายสาขาที่ถูกต้อง
echo deh >> foo ; git add foo
git commit -m " My second revup foo " -m " Topic: foo2 " -m " Relative: foo "
revup upload
ด้วยโมเดลที่เรียบง่าย แต่ทรงพลังนี้คุณสามารถอัปโหลดการเปลี่ยนแปลงที่เป็นอิสระและขึ้นอยู่กับการเปลี่ยนแปลงทั้งหมดในครั้งเดียว
ตอนนี้เรามาอัปเดตคำขอดึง
echo heh >> bar ; git add bar
# Either
revup amend HEAD~ --no-edit # Specify a commit to amend
# or
revup amend bar --no-edit # Specify a topic name to amend
revup upload
revup amend
ทำให้ง่ายต่อการปรับเปลี่ยนการกระทำในประวัติศาสตร์ของคุณ นอกจากนี้คุณยังมีตัวเลือกอื่น ๆ สำหรับการแก้ไขบทวิจารณ์:
git rebase --interactive
พร้อมกับ git commit --amend
ใช้ git pull --rebase
เพื่อดึงการเปลี่ยนแปลง อย่าใช้ git merge
หรือ git pull
โดยไม่ต้องรีเบสเพราะสิ่งนี้สร้างการรวมที่กระทำ
โดยค่าเริ่มต้น Revup จะไม่อัปโหลดหากคุณดึง แต่ยังไม่ได้ทำการเปลี่ยนแปลงในการกระทำ หากต้องการแทนที่สิ่งนี้และอัปโหลดเสมอให้เรียกใช้ revup upload --rebase
[pull]
rebase = true
[rebase]
autoStash = true
เราขอแนะนำให้เพิ่ม .gitconfig
ข้างต้นเพื่อให้การดึงและการรีคืนง่ายขึ้น
นี่คืออินโทรที่ไม่ครบถ้วนสมบูรณ์สำหรับคุณสมบัติการรีมายังที่มีประโยชน์มากขึ้น
สำหรับคำอธิบายทั้งหมดของคุณสมบัติดูเอกสารหรือเรียกใช้ revup -h
หรือ revup upload -h
เพื่อดูเอกสารในรูปแบบ man
สำหรับการมีส่วนร่วมในโครงการที่คุณอาจไม่สามารถเข้าถึงได้ Push Revup สามารถกำหนดค่าให้กับการกดไปยังส้อมขณะที่สร้างคำขอดึงในโครงการหลัก
เพิ่มรีโมท Git สำหรับทั้งต้นฉบับและส้อม
$ git remote -v
origin https://github.com/ORIGINAL_OWNER/REPO_NAME.git (fetch)
origin https://github.com/ORIGINAL_OWNER/REPO_NAME.git (push)
myfork https://github.com/YOUR_USERNAME/REPO_NAME.git (fetch)
myfork https://github.com/YOUR_USERNAME/REPO_NAME.git (push)
เมื่ออัปโหลดให้ส่งรีโมทเพื่อสร้างคำขอดึงใน AS --remote-name
และรีโมตที่ถูกแยกออกเป็น --fork-name
revup --remote-name origin --fork-name myfork upload
Revup ยังสามารถเพิ่มผู้ตรวจสอบผู้ได้รับมอบหมายและฉลากเพื่อดึงคำขอ เพิ่มแท็กที่เหมาะสมในการกระทำใด ๆ ในหัวข้อ
Reviewers: alice, bob
Assignees: eve
Labels: bug, feature, draft
ชื่อผู้ใช้ GitHub สามารถย่อและจะตรงกับชื่อที่สั้นที่สุดกับคำนำหน้าที่กำหนด
ป้ายกำกับจะต้องตรงกับอย่างแน่นอน ฉลาก draft
เป็นพิเศษและจะทำการร้องขอแบบดึงหากมีร่างและ UNMAKE DRAFT หากถูกลบออก
โดยปกติแล้ว Revup จะตรวจจับสาขาฐานในพื้นที่ของคุณโดยอัตโนมัติและใช้สิ่งนั้นเพื่อแสดงรายการและทบทวนเป้าหมาย คุณสามารถเลือกที่จะกำหนดเป้าหมายหัวข้อใด ๆ โดยเฉพาะไปยังสาขาอื่นหรือแม้กระทั่งหลายสาขาซึ่งในกรณีนี้การแก้ไขจะใช้เป็นสาขาฐานแทน (และสร้างคำขอดึงหลายครั้งในกรณีหลัง)
A fix for multiple branches
Topic: fix
Branches: main, rel1.1
คุณสามารถระบุสาขาฐานบนบรรทัดคำสั่งได้เช่นกันแม้ว่าโดยปกติจะไม่จำเป็นเว้นแต่คุณจะทำงานกับสาขาที่ Autodetector ไม่ทราบ (ดูการกำหนดค่า repo ด้านล่าง)
revup upload --base-branch custom-branch-name
Revup จะเพิ่ม 2 ความคิดเห็นในทุกคำขอการดึงเพื่อให้คุณสมบัติที่เป็นประโยชน์สำหรับผู้ใช้และผู้ตรวจสอบ สิ่งเหล่านี้ถูกเปิดใช้งานโดยค่าเริ่มต้นและอัปเดตโดยอัตโนมัติเมื่อคำขอดึงเปลี่ยน
กราฟรีวิวมีลิงก์และชื่อเรื่องไปยังคำขอดึงแบบท้องถิ่นทั้งหมดที่มีความสัมพันธ์สัมพัทธ์กับคำขอดึงปัจจุบันรวมถึงสิ่งใดก็ตามที่ขึ้นอยู่กับหรือขึ้นอยู่กับมัน สิ่งนี้ช่วยให้คุณสามารถเรียกดูระหว่างคำขอดึงในโซ่ได้อย่างรวดเร็ว
ตาราง PatchSets มีประวัติการอัปโหลดสำหรับคำขอดึงที่กำหนดรวมถึงลิงก์และบทสรุปของความแตกต่างระหว่างการอัปโหลดแต่ละครั้ง โดยเฉพาะอย่างยิ่ง Revup จัดการกรณีที่คุณรีเบสเป็นพิเศษจากนั้นอัพโหลดและจะแสดงความแตกต่างโดยไม่รวมไฟล์ต้นน้ำ
Revup สามารถกำหนดค่าได้สูงโดยใช้รูปแบบไฟล์กำหนดค่ามาตรฐาน ธงทุกตัวยังเป็นตัวเลือกการกำหนดค่าเพื่อให้ผู้ใช้สามารถได้รับพฤติกรรมที่แน่นอนที่พวกเขาต้องการ
แฟล็กที่ระบุไว้ในบรรทัดคำสั่งมีความสำคัญกว่าด้วยการกำหนดค่าใน ~/.revupconfig
ตามด้วย .revupconfig
ใน repo ปัจจุบัน
USECASE หลักสำหรับไฟล์กำหนดค่าใน Repo กำลังตั้งค่าการตั้งชื่อของสาขาหลักและสาขาการเปิดตัว
ตัวอย่างเช่นหากสาขาหลักของคุณคือ master
และ Branch ที่มีชื่อเหมือน rel1.1
ให้ทำสิ่งต่อไปนี้กับ .revupconfig
ในรูท repo
[revup]
main_branch = master
base_branch_globs =
rel[1-9].[0-9]
rel[1-9].[0-9][0-9]
การกำหนดค่าผู้ใช้ที่ ~/.revupconfig
จะประหยัดเวลาโดยเริ่มต้นการตั้งค่าสถานะที่ใช้กันมากที่สุด
ตัวอย่างเช่นหลังจากคุ้นเคยกับเวิร์กโฟลว์ผู้ใช้อาจไม่จำเป็นต้องตรวจสอบการยืนยัน การเพิ่มบรรทัดต่อไปนี้จะเหมือนกับการทำงานด้วย --skip-confirm
[upload]
skip_confirm = True
(หรือที่รู้จัก
หากคุณใช้เครื่องมือเช่น Gerrit, Phabricator หรือ Git Mailing รายการคุณอาจคุ้นเคยกับรูปแบบการพัฒนานี้แล้ว หากคุณต้องการอ่านเพิ่มเติมนี่คือการอภิปรายที่เป็นลายลักษณ์อักษรอย่างดีในเรื่องนี้
Revup ได้รับแรงบันดาลใจจากรายการโครงการโอเพนซอร์สที่ไม่ครบถ้วน
revup upload
แต่ไม่ได้ผลักดันหรือสร้างความคิดเห็นrevup amend
และแบ็กเอนด์สำหรับข้างต้นด้วยระบบการผสานที่จัดการกับความขัดแย้ง ขอบคุณสำหรับการมีส่วนร่วมในการรีมายัง! คุณสามารถเริ่มต้นด้วยความคิดของคุณเองหรือดูหน้าปัญหาสำหรับแนวคิดที่คนอื่นตื่นเต้น
เมื่อรายงานปัญหา:
revup -v
เพื่อให้บันทึก verbose Revup เผยแพร่โดย Skydio แต่ไม่ได้เป็นผลิตภัณฑ์ Skydio ที่ได้รับการสนับสนุนอย่างเป็นทางการ