ฉันไม่พบเอกสารใด ๆ เกี่ยวกับคุณสมบัตินี้ แต่ดูเหมือนว่าการกำหนดค่า git svn รองรับการดึงข้อมูลหลายรายการ วิธีนี้คุณยังสามารถเพิ่มสาขาแยกได้โดยไม่จำเป็นต้องเพิ่มรายการพื้นที่เก็บข้อมูล svn ระยะไกลอีกรายการในการกำหนดค่าของคุณหรือใช้สัญลักษณ์แทนเพื่อรับสาขาทั้งหมดของไดเรกทอรีที่แน่นอน
สมมติว่าต้นไม้ SVN ของคุณน่ารังเกียจจริงๆที่มีกิ่งไม้จำนวนมากโดยไม่มีเหตุผลใด ๆ เช่นมีสาขาและไดเรกทอรีย่อยที่มีสาขาย่อยมากขึ้น
กล่าวคือ
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
และคุณเพียงต้องการเลือกสาขาที่จะรวมในที่เก็บ git ของคุณ
คุณสามารถเริ่มต้นพื้นที่เก็บข้อมูลของคุณด้วยลำต้นเท่านั้นโดยไม่มีสาขาเพิ่มเติม:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
หลังจากนั้นคุณจะเห็นการกำหนดค่าต่อไปนี้:
localhost: elhigu$ git config --get-regexp "svn-remote."
svn-remote.svn.url https://svn.com/MyRepo
svn-remote.svn.fetch trunk:refs/remotes/svn/trunk
เมื่อใดก็ตามที่คุณต้องการดึงสาขาใหม่จาก MyRepo คุณสามารถเพิ่มรายการดึงข้อมูลใหม่เพื่อกำหนดค่าโดย:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
หรือคุณอาจแก้ไขการกำหนดค่าเดียวกันใน. git / config
หากต้องการดึงสาขาใหม่หลังจากเพิ่มลงในการกำหนดค่าให้เรียกใช้:
git svn fetch -r 10000:HEAD
[แก้ไข]บางครั้งดูเหมือนว่าจำเป็นต้องเรียกใช้การดึงข้อมูลด้วยพารามิเตอร์ --all เพื่อดึงข้อมูลสาขาที่เพิ่มใหม่:
git svn fetch --all -r 10000:HEAD