บทเรียน - แบ่งปันสิ่งที่คุณแก้ไขกับบุคคลอื่นๆ
(บทนี้เป็นบทที่ 6 จาก 9 บทของบทเรียนการใช้งาน Mercurial บทก่อนหน้าคือ แบ่งปันสิ่งที่คุณแก้ไขกับ repository อื่น, บทถัดไปคือ รวมประวัติการแก้ไขจาก repository อื่น)
ในบทที่แล้วเราได้เรียนวิธีดึงประวัติการแก้ไขจากอีก repository นึง นอกจากวิธีการดึงแล้ว Mercurial ยังมีวิธีอื่นในการแบ่งปันการแก้ไขของเรากับคนอื่นด้วย โดยวิธีที่ใช้กันแพร่หลายที่สุดก็คือผ่านอีเมล์
หลังจากที่เราคอมมิทการแก้ไขแล้วเราสามารถส่งออกการแก้ไขไปที่ไฟล์ จากนั้นก็แนบไฟล์ดังกล่าวในอีเมล์และส่งอีเมล์ให้คนที่เราต้องการแบ่งปันด้วย
คำสั่งสำหรับส่งออกการแก้ไขคือ export ในการใช้คำสั่งนี้เราจะต้องระบุป้ายกำกับ, เลขที่ของครั้งที่แก้ไข หรือ รหัสประจำเซ็ตการแก้ไขเพื่อบอก Mercurial ว่าเราต้องการส่งออกอะไร สมมุติว่าเราต้องการส่งออกส่วนปลายของ repository my-hello-share เราสามารถทำได้โดยพิมพ์
$ hg export tip # HG changeset patch # User mpm@selenic.com # Date 1209943246 -7200 # Node ID 86794f718fb1ea9e633f7c052757663b8ce90e30 # Parent 82e55d328c8ca4ee16520036c0aaace03a5beb65 Express great joy at existence of Mercurial diff -r 82e55d328c8c -r 86794f718fb1 hello.c --- a/hello.c Fri Aug 26 01:21:28 2005 -0700 +++ b/hello.c Mon May 05 01:20:46 2008 +0200 @@ -12,5 +12,6 @@ int main(int argc, char **argv) { printf("hello, world!\n"); + printf("sure am glad I'm using Mercurial!\n"); return 0; }
โดยปกติคำสั่ง export จะแค่แสดง patch เพราะฉะนั้นเราจะต้อง redirect ผลลัพธ์ของคำสั่งนี้ไปที่ไฟล์ (หรือใช้ตัวเลือก -o แทน) ไฟล์นี้คือ ไฟล์ patch ที่มีเนื้อหาในรูปแบบ unified diff พร้อมกับข้อมูลเพิ่มเติมอีกนิดหน่อยที่บอก Mercurial ว่าจะต้องนำเข้าไฟล์ยังไง
เมื่อผู้รับได้รับอีเมล์ของเรา เค้าจะต้องบันทึกไฟล์ที่แนบมาและใช้คำสั่ง import เพื่อนำเข้าเซ็ตการแก้ไขใน repository ของตัวเอง
บทต่อไปจะอธิบายการรวมประวัติการแก้ไขจาก repository อื่นrepository