Nếu bạn có thư mục nhánh, thẻ và thư mục thân cho các dự án nhỏ?


7

Tôi có một hỗn hợp các dự án nhỏ và lớn trong SVN. Một số người trong số họ là quá nhỏ tôi không bao giờ có thể thấy trước mình phân nhánh hoặc gắn thẻ.

Vì vậy, tôi vẫn nên gắn bó với quy ước thư mục trunk/branch/tag ngay cả khi tôi khá chắc chắn thư mục chi nhánh/thẻ sẽ không được sử dụng cho các dự án nhỏ hơn? Tôi chỉ cảm thấy như nó có thể là quá mức cần thiết.

Suy nghĩ về điều này?

  0

@KingNestor, chỉnh sửa tiêu đề của bạn để phản ánh tốt hơn một chút những gì bạn đang yêu cầu. Câu hỏi hay! 22 feb. 092009-02-22 06:33:24

19

Để trả lời câu hỏi trong tiêu đề của bạn trực tiếp: không, bạn không phải làm như vậy. SVN kho có thể được tổ chức trong bất kỳ cấu trúc thư mục bạn chọn. Điều đó đang được nói, có thể là tốt nhất nên đặt ít nhất mọi thứ trong một thư mục trunk, vì vậy nếu sau này bạn đổi ý và quyết định phân nhánh hoặc gắn thẻ sẽ hữu ích, bạn có thể thêm chi nhánh/thẻ thư mục một cách dễ dàng, mà không cần phải di chuyển mọi thứ xung quanh.

+1

Tất nhiên, trong SVN thật dễ dàng để di chuyển các thư mục xung quanh sau khi thực tế. Vì vậy, nếu bạn không đặt chúng vào bây giờ và quyết định rằng bạn cần chúng sau này, nó thực sự không phải là một vấn đề đặc biệt lớn. 14 may. 092009-05-14 20:42:22


2

Đó là quy ước, do đó, điều gì sẽ gây tổn thương khi thêm chúng. Nếu dự án của bạn đến điểm mà bạn cần chúng, thì sẽ dễ dàng hơn để có chúng ngay từ đầu hơn là cố gắng thêm chúng vào sau sự kiện.


6

Tôi sử dụng thư mục chi nhánh/thẻ/thư mục trong Subversion ngay cả đối với các dự án tầm thường. Đó là khá nhiều chi phí và giá trị nó trong sự nhất quán. Tôi luôn biết dự án của mình sẽ được sắp xếp như thế nào nếu tôi cần phải thực hiện thanh toán.


0

Trong kho SVN của tôi, tôi có một thư mục trunk/branch/tag. Tôi đặt tất cả các dự án của tôi trong thân cây và tổ chức các thư mục chi nhánh và thẻ của tôi một cách riêng biệt dựa trên các dự án thực sự đạt đến trạng thái có thể gắn thẻ. Công ước có thể đề xuất sử dụng thư mục nhánh/thẻ/trunk cho mỗi dự án, tuy nhiên, điều này có thể không thực tế nếu bạn không muốn gắn thẻ và phân nhánh.

Ngay cả các dự án cá nhân cũng có thể được hưởng lợi từ việc gắn thẻ và phân nhánh không thường xuyên trước khi viết lại chính hoặc sau một thời gian gián đoạn dài.


0

Thông thường (hoặc khá rõ ràng), phân nhánh/gắn thẻ là cực kỳ hữu ích trong các nhóm, nơi nhiều người lập trình sẽ làm việc với nguồn cùng một lúc. Mỗi coder hoạt động trong nhánh riêng của họ nên không có nguy cơ tiết kiệm cho công việc của người khác.

Là một nhà phát triển một nhân quân đội, tôi vẫn tìm thấy nhánh/gắn thẻ hữu ích khi:

  1. tôi cần phải thực hiện một nhánh thử nghiệm mà không bỏ vào nguồn lao động hiện hành. Tôi sẽ hợp nhất nó lại nếu mã thử nghiệm chứng minh tốt hơn.

  2. Nếu tôi có một số thành phần riêng biệt, có thể hữu ích khi gắn thẻ từng thành phần với tên biểu thị số phiên bản dự án và đặt chúng vào thư mục thẻ được đặt tên sau dự án. Điều này giúp giữ các tab khi bạn muốn quay lại phiên bản 1.0.5.10 và cần biết những gì đã thay đổi trong thành phần Foo. Các ghi chú cam kết có thể không đủ thông tin.


0

Theo kinh nghiệm của tôi, tổ chức 'trunk/branch/tag' là bố cục được sử dụng khá tốt để kiểm soát nguồn. Tôi đã nhìn thấy nó thực hiện trong một số tổ chức khác nhau bằng cách sử dụng các công cụ khác nhau (ClearCase, SVN, CVS, để đặt tên một vài). Thiết lập ClearCase tôi hiện đang làm việc với một chút phức tạp hơn (phức tạp?), Nhưng, nói chung, theo một bố cục rất giống nhau.

Mặc dù không bắt buộc trong SVN, tôi đặc biệt khuyên bạn nên quen với loại bố cục này, bao gồm sáp nhập vào/từ các nhánh khác nhau và thân cây.

Đối với các dự án cá nhân, tôi thấy gắn thẻ là phương tiện có giá trị để bảo tồn các bản phát hành cuối cùng, không thay đổi. Chi nhánh thường được dành riêng cho tang thực nghiệm vì vậy tôi sẽ không phá hủy phiên bản mới nhất (ổn định) của mã của tôi trước khi thực tế đá.