Tôi chưa tìm thấy tài liệu nào về tính năng này, nhưng có vẻ như cấu hình git svn hỗ trợ nhiều mục tìm nạp. Bằng cách này, bạn cũng có thể thêm các nhánh riêng biệt mà không cần thêm một mục lưu trữ svn từ xa khác vào cấu hình của mình cũng như không sử dụng ký tự đại diện để có được tất cả các nhánh của thư mục nhất định.
Giả sử rằng cây SVN của bạn thực sự khó chịu khi có rất nhiều nhánh mà không có logic nào về vị trí của chúng, ví dụ như có các nhánh và thư mục con chứa nhiều nhánh hơn.
I E
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
và bạn chỉ muốn tự tay chọn một số nhánh được đưa vào kho git của bạn.
Trước tiên, bạn có thể khởi tạo kho lưu trữ của mình chỉ với thân cây mà không cần thêm bất kỳ nhánh nào:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Sau đó, bạn sẽ thấy cấu hình sau:
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
bất cứ khi nào bạn muốn tìm nạp chi nhánh mới từ MyRepo, bạn chỉ có thể thêm các mục tìm nạp mới vào cấu hình bằng cách:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Hoặc bạn có thể chỉnh sửa cấu hình tương tự trong .git / config
Để tìm nạp các nhánh mới sau khi thêm chúng vào cấu hình, chỉ cần chạy:
git svn fetch -r 10000:HEAD
[Chỉnh sửa] Đôi khi có vẻ cần phải chạy tìm nạp với tham số --all để tìm nạp các nhánh mới được thêm vào:
git svn fetch --all -r 10000:HEAD