- ช่วงกลางปี 2019 ระหว่างหางาน ผู้เขียนต้องเลือกระหว่าง Google Goteam กับ Sourcegraph
- เหตุผลที่เลือก Sourcegraph คือวัฒนธรรมที่เปิดให้สร้างทุกอย่างอย่างโปร่งใส
- เอกสารทั้งหมดถูกเปิดเผยเป็นค่าเริ่มต้น และเอกสาร RFC, PR/FAQ ด้านเทคนิคและผลิตภัณฑ์ก็ถูกเก็บไว้ในโฟลเดอร์ Google Drive สาธารณะ
- การพัฒนาผลิตภัณฑ์ทั้งหมดเกิดขึ้นในรีโป GitHub แบบสาธารณะ
- ตอนนี้รีโป
sourcegraph/sourcegraph ถูกเปลี่ยนเป็นแบบปิดแล้ว
- นี่เป็นการตัดสินใจที่ทำลายวัฒนธรรมอันน่าดึงดูดของ Sourcegraph
- Sourcegraph เหลือสแนปช็อตสาธารณะไว้ในชื่อ
sourcegraph/sourcegraph-public-snapshot
การรักษาแหล่งอ้างอิง
- ระหว่างทำงานที่ Sourcegraph ผู้เขียนได้เขียนบทความจำนวนมากลงใน engineering blog
- หลายบทความใช้งานลิงก์ไปยังโค้ดสาธารณะที่เกี่ยวข้องเป็นข้อมูลอ้างอิง
- ตอนนี้ลิงก์เหล่านั้นใช้ไม่ได้ทั้งหมดแล้ว
- มีคำกล่าวว่า "URI ที่ดีจะไม่เปลี่ยนแปลง"
- ผู้เขียนจึงพยายามเก็บรักษาข้อมูลไว้ให้มากที่สุดเพื่อไม่ให้ลิงก์พังหายไปอย่างกะทันหัน
- ผู้เขียน fork
sourcegraph/sourcegraph ไปเป็น efritz/sourcegraph
- fork จะไม่สืบทอด pull request และ commit ที่ไม่ได้ถูกอ้างถึงโดยตรงจาก branch จะไม่มองเห็น
- ตามเอกสารของ GitHub แม้รีโปสาธารณะจะถูกเปลี่ยนเป็นแบบปิด fork ก็ยังคงอยู่ต่อได้
- อย่างไรก็ตาม เมื่อรีโปต้นฉบับถูกเปลี่ยนเป็นแบบปิด commit นอก branch
main อาจหายไปได้
การดึง commit ที่เกี่ยวข้อง
- ผู้เขียนรันโปรแกรม Go เพื่อค้นหา commit ทั้งหมด
- โปรแกรมนี้สร้างไฟล์ metadata ของ pull request จำนวน 2,645 ไฟล์
- ใช้
jq อ่าน JSON payload และดึงข้อมูลออกมา
- สร้างไฟล์
pr_ids.txt, commits.txt, replace_pairs.txt
- จากนั้นรันโปรแกรมตัวที่สองเพื่อแสดงรายการ commit ที่ไม่ถูกรวมของแต่ละ pull request
- โปรแกรมนี้เพิ่ม commit ลงในไฟล์
commits.txt
การนำ commit เข้าสู่เครือข่ายรีโปใหม่
- ผู้เขียนนำ commit เข้า fork โดยสร้าง branch ที่มีแต่ละ SHA ที่เกี่ยวข้อง
- ใช้สคริปต์ Bash เพื่อทำงาน git ตามลำดับทีละขั้น
การเขียนอ้างอิงใหม่
- ตอนนี้สามารถลิงก์อ้างอิงแต่ละรายการไปยังเป้าหมายใน fork ได้แล้ว
- ใช้
xargs เพื่อทำให้กระบวนการอัตโนมัติ
- เขียนอ้างอิง commit โดยตรงใหม่ให้ชี้ไปที่ fork และเขียนอ้างอิง pull request ใหม่ให้ชี้ไปยัง merge commit
สรุปโดย GN⁺
- การเปลี่ยน Sourcegraph เป็นแบบปิดส่งผลกระทบอย่างมากต่อวัฒนธรรมโอเพนซอร์ส
- ลิงก์อ้างอิงจำนวนมากใน engineering blog ใช้งานไม่ได้ และต้องใช้ความพยายามมากในการเก็บรักษาไว้
- ผู้เขียนใช้ GitHub fork และสคริปต์เพื่อเขียนอ้างอิงใหม่และเก็บรักษา commit
- บทความนี้เน้นย้ำถึงความยั่งยืนของโครงการโอเพนซอร์สและความสำคัญของลิงก์อ้างอิง
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ความเห็นจาก CEO ของ Sourcegraph:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน:
ความเห็นจากผู้ใช้อีกคน: