Tôi vừa giới thiệu SVN trong công ty cho các dự án Visual Studio và tạo một kho lưu trữ trông như thế này ("giải pháp" là giải pháp Visual Studio, chứa các dự án 1..n):Cấu trúc thư mục làm việc cho kho SVN Visual Studio
/solution1/trunk/projectA/...
/projectB/...
/solution2/trunk/projectC/...
/customerX/solution3/trunk/projectD/...
/solution4/trunk/projectE/...
/projectF/...
Bây giờ, tôi có hai lựa chọn để cấu trúc các thư mục địa phương làm việc:
lựa chọn A: Hãy để kiểm tra người sử dụng mỗi giải pháp riêng biệt sử dụng AnkhSVN, dẫn đến một cấu trúc như thế này:
/solution1/projectA/...
/projectB/...
/solution2/projectC/...
/solution3/projectD/...
/solution4/projectE/...
/projectF/...
hoặc này, nếu tôi nói với người sử dụng để tự tạo một thư mục con customerX:
/solution1/projectA/...
/projectB/...
/solution2/projectC/...
/customerX/solution3/projectD/...
/customerX/solution4/projectE/...
/projectF/...
Ưu điểm: Người dùng có thể kiểm chỉ các giải pháp mà ông thực sự cần. Nhược điểm: Mọi giải pháp cần được kiểm tra/cập nhật riêng biệt.
Lựa chọn B: Nói cho người sử dụng để kiểm tra toàn bộ kho lưu trữ sử dụng TortoiseSVN, dẫn đến một cấu trúc đó là chính xác giống như kho:
/solution1/trunk/projectA/...
/projectB/...
/solution2/trunk/projectC/...
/customerX/solution3/trunk/projectD/...
/solution4/trunk/projectE/...
/projectF/...
Ưu điểm: Nó rất dễ dàng để "svn cập nhật tất cả mọi thứ ". Nhược điểm: Người dùng cũng có bản sao cục bộ của tất cả các chi nhánh và thẻ.
HỎI: Kể từ khi một số dự án được chia sẻ giữa các giải pháp (giả sử, ví dụ, rằng PROJECTA là một thư viện mà còn được sử dụng bởi solution3), chúng ta cần giải quyết một cấu trúc thư mục, để đảm bảo rằng các đường dẫn tương đối trong các tệp giải pháp là chính xác. Bạn đề nghị tùy chọn nào và tại sao?
EDIT: Cảm ơn tất cả các câu trả lời tuyệt vời của bạn, đặc biệt là đề cập đến thiết kế kho lưu trữ tốt. Tôi đã kết thúc cập nhật kho tôi cấu trúc:
/trunk/solution1/projectA/...
/projectB/...
/solution2/projectC/...
/customerX/solution3/projectD/...
-svn:external to projectA
/solution4/projectE/...
/projectF/...
đảm bảo rằng một nhà phát triển làm việc trên solution3 chỉ nhu cầu kiểm tra solution3 (và không solution1) và giải pháp có thể được kiểm tra ra đối với bất kỳ thư mục tức là thư mục làm việc không cần cấu trúc cố định.
Câu hỏi hay, bằng cách này ... – David