2010-03-07 9 views
6

Sử dụng Subversion, trong bản sao làm việc của tôi, tôi thực hiện một sửa đổi nhỏ (cập nhật số phiên bản). Sau đó tôi muốn gắn thẻ bản sao làm việc của mình. Thẻ này vẫn sẽ là một bản sao giá rẻ với sửa đổi, hoặc SVN sẽ sao chép các tập tin? Tôi ghét phải thấy kho lưu trữ của tôi phát triển rất lớn về kích thước bởi vì tôi đang cố gắng lưu thay đổi số phiên bản.SVN - Khi bạn gắn thẻ một bản sao làm việc, nó vẫn là một bản sao giá rẻ?

Lý do tôi hỏi về cách tạo thẻ có chứa sửa đổi thay vì cam kết gắn thẻ sau đó liên quan đến máy chủ xây dựng của tôi. Các máy chủ xây dựng tạo ra một CCNetLabel mà tôi sử dụng để cập nhật số phiên bản của dự án của tôi (AssemblyInfo.cs). Khi xây dựng thành công, nó tạo ra một thẻ. Khi tôi sử dụng ForceBuild thẻ dựa trên bản sao làm việc có chứa số phiên bản đã sửa đổi. Tôi muốn thẻ chứa số phiên bản thích hợp.

lưu ý: Có thể gây tranh cãi nếu tôi tạo chi nhánh hoặc thẻ, tuy nhiên SVN không phân biệt được giữa hai thẻ.

Trả lời

4

Điều đó tùy thuộc. Nếu bản sao làm việc của bạn được cập nhật (tất cả các nút có cùng bản sửa đổi), nó cũng rẻ như việc gắn thẻ từ kho lưu trữ.

Đối với mọi tệp/thư mục (hoặc thực sự là cây con) với bản sửa đổi khác với dữ liệu bổ sung gốc của cha mẹ sẽ được thêm vào. Và nếu bạn có sửa đổi cục bộ, nhiều dữ liệu hơn sẽ được thêm vào.

Nhưng giá rẻ vẫn hợp lý: Không trùng lặp bất kỳ tệp nào đã có trong kho lưu trữ.

+0

Tuyệt vời, mối quan tâm của tôi là nó có thể sao chép tất cả các tệp. Có vẻ như việc gắn thẻ bản sao làm việc sẽ hầu như không lớn hơn việc gắn thẻ một chi nhánh trên máy chủ. Bây giờ nếu tôi có thể nói với Cruise Control. Net luôn gắn thẻ bản sao làm việc của tôi .... http://groups.google.com/group/ccnet-devel/browse_thread/thread/13e5cc63cb9221ae – mcdon

+0

nếu tôi có thư mục "A" trong bản sao làm việc của tôi và tôi gắn thẻ này. Tôi hiểu điều này sẽ là một bản sao giá rẻ trong kho. Tuy nhiên, sau này tôi xóa "A" khỏi thư mục làm việc của mình. Điều gì sẽ xảy ra với bản sao giá rẻ? Nó vẫn sẽ có "A" có sẵn? – Jus12

1

Tạo thẻ hoặc chi nhánh trong phiên bản lật đổ rất rẻ. Các tập tin sẽ không được sao chép. Tất cả những gì xảy ra là một bản sửa đổi mới sẽ được tạo ra, nội dung trong đó về cơ bản chỉ chứa một con trỏ đến nơi thẻ được sao chép từ đó. Điều này sẽ có cùng kích thước cho một thẻ của một dự án với một tệp nhỏ hoặc một với một triệu tệp lớn.

Khi bạn nói "gắn thẻ bản sao làm việc của tôi", bạn có nghĩa là "gắn thẻ nhánh hoạt động của tôi" không? Bạn chỉ có thể gắn thẻ dữ liệu đã được cam kết vào kho lưu trữ ở đâu đó, chứ không phải các thay đổi không được cam kết địa phương của bạn.

+0

Tôi có nghĩa là gắn thẻ bản sao làm việc của tôi. Quá trình sẽ là: cập nhật svn, cập nhật số phiên bản trong bản sao làm việc, tạo thẻ từ bản sao làm việc. Mục tiêu là lưu thông tin phiên bản cập nhật trong thẻ (nhánh cộng với sửa đổi cho số phiên bản). – mcdon

5

Từ mô tả lật đổ

  • nhánh và gắn thẻ có giá rẻ (hằng số thời gian) hoạt động. Không có lý do gì cho các hoạt động này tốn kém, do đó, chúng không phải như vậy. Các chi nhánh và thẻ đều được triển khai dưới dạng hoạt động "sao chép" cơ bản. Bản sao chiếm một lượng không gian nhỏ và không đổi. Mọi bản sao đều là thẻ; và nếu bạn bắt đầu cam kết trên một bản sao, thì đó cũng là một chi nhánh. (Điều này không đi với "gắn thẻ ngành điểm" CVS của, bằng cách loại bỏ sự phân biệt khiến thẻ ngành điểm cần thiết ở nơi đầu tiên.)

Lưu ý! Tôi chỉ nhận thấy rằng Subversion đã được di chuyển vào tổ chức dự án Apache

1

Khá một bài viết cũ nhưng đáng nói đến với bất cứ ai đến thăm câu trả lời nói rằng bạn chỉ có thể 'Bạn chỉ có thể gắn thẻ dữ liệu đã được cam kết vào kho lưu trữ ...' không phải bây giờ).

Bạn có thể gắn thẻ bản sao đang hoạt động, có thể chứa các bản sửa đổi hỗn hợp và thậm chí chuyển các thư mục cũng như các sửa đổi cục bộ.

Đối với giá rẻ, có nó vẫn nên rẻ như Subversion sẽ chi nhánh cho bạn, sau đó phủ lên các bản sao làm việc của bạn thay đổi thành repo, tiết kiệm càng nhiều không gian càng tốt