2011-06-23 31 views
5

Nói tóm lại vấn đề là, khi tôi chạy git svn rebase, tôi nhận được một loạt các "tạo thư mục rỗng: ..."Làm thế nào để ngăn chặn git svn rebase để tạo ra các thư mục rỗng

Ở phía svn, trong trunk, có một thư mục có tên TOD (Trunk Only Dir), với rất nhiều tệp trong đó. trong một nhánh khác, không có thư mục nào cả.

Khi tôi nhân bản kho lưu trữ svn này với git svn, trên mọi thứ đều ổn, nhưng trên nhánh, tôi nhận thư mục TOD và cấu trúc thư mục tương tự ngoại trừ không có tệp nào trong đó.

Nếu tôi rm thư mục TOD (an toàn vì git không theo dõi thư mục), và chuyển sang chế độ chủ và chạy git svn rebase, tôi nhận được thông báo "tạo thư mục rỗng", khi tôi thanh toán chi nhánh, TOD thư mục quay lại.

Tất cả trong tất cả, câu hỏi là, làm thế nào để ngăn chặn git svn tạo các thư mục TOD trống trên nhánh?

+1

Không đặt 'svn-remote. .automkdirs' thành false và 'svn.rmdir' thành trợ giúp thực sự? –

+0

Đối với bất cứ ai tự hỏi giá trị nào nên được sử dụng cho , điều này có thể được tìm thấy bằng cách kiểm tra tệp .git/config. Có một phần có nhãn [svn-remote "svn"] có nghĩa là svn là tên của điều khiển từ xa của bạn, đây là mặc định nếu bạn không chỉ định một số tên khác cho svn-remote. – axiopisty

Trả lời

5

Tôi tin rằng @ ben-tebulin là đúng, rằng bằng cách làm

git config svn-remote.svn.automkdirs false 
git config svn.rmdir true 

nên làm điều đúng. Thật không may, tôi sớm chuyển sang các dự án khác và không có cơ hội để xác minh nó.

Tại thời điểm viết bài này, tôi gần như mất svn-fu, đã làm bài kiểm tra và không thể tái tạo vấn đề, và có vẻ git-svn giờ đây có thể chuyển đổi giữa các nhánh một cách rõ ràng.

+0

Nếu bạn kiểm tra sự khác biệt của tệp .git/config trước và sau khi chạy các lệnh này, bạn sẽ có ý tưởng tốt hơn về những lệnh này đang làm. bạn nên sử dụng cho svn-remote. Lệnh nằm trong phần [svn-remote ""] của tệp .git/config. Mặc định được đặt thành "svn", như được minh họa trong câu trả lời này. – axiopisty

Các vấn đề liên quan