2012-09-13 36 views
6

Theo Apache Subversion 1.7 release notes:Làm thế nào để củng cố nhiều thư mục ẩn svn với Subversion 1.7+

Thay vì một thư mục svn trong mỗi thư mục trong bản sao làm việc, Subversion 1.7 bản sao làm việc chỉ có một thư mục svn —trong thư mục gốc của bản sao làm việc.

Cho phép nói có nhiều thư mục trong kho lưu trữ và khi tôi thanh toán lần đầu, tôi chỉ chọn lọc các thư mục cụ thể. Điều này, như tài liệu nói, chỉ tạo ra một thư mục .svn ẩn duy nhất ở thư mục cấp cao nhất.

Nếu tuy nhiên, sau này tôi quyết định thanh toán một thư mục khác, sau khi thanh toán hoàn tất, sẽ có một thư mục .svn khác trong thư mục mới được đăng xuất.

Ý nghĩa của việc này là nếu tôi cố gắng thực hiện một cam kết từ cấp cơ sở, nó sẽ chỉ nhận thức được các thư mục đã được kiểm tra ban đầu. Tôi cũng sẽ phải cam kết cho bất kỳ lần kiểm tra nào sau đó riêng lẻ.

Có cách nào để thay đổi hành vi này hoặc làm cho hai thư mục .svn ẩn kết hợp với nhau không? Hoặc tôi sẽ phải làm một cái gì đó như kiểm tra toàn bộ cấu trúc thư mục kho lưu trữ lần đầu tiên tôi làm một kiểm tra?

Trả lời

6

Câu trả lời ngắn gọn: Không. Mỗi lần thanh toán riêng biệt và có cơ sở dữ liệu riêng. Tôi chắc chắn nếu bạn hiểu được ma thuật sâu ẩn bên trong thư mục .svn, bạn có thể munge nó để làm những gì bạn muốn. Tuy nhiên, không giống như các phiên bản Subversion 1.1 đến 1.6, cấu trúc của thư mục .svn đó là nhiều, phức tạp hơn nhiều và không dễ hiểu.

Trong trường hợp của bạn, đặt cược tốt nhất của bạn là kiểm tra mọi thứ trở lại và thực hiện thanh toán mới để bao gồm cả hai dự án.

Nếu bạn muốn làm điều này một cách thường xuyên, những gì bạn nên làm là sử dụng --depth= trong svn co--set-depth= trong svn update.

Ví dụ, tôi đang kiểm tra ra các thư mục cơ sở, nhưng tôi không muốn bất cứ điều gì khác:

$ svn co --depth=immediates http://svn.vegicorp.com/svn/base_prod 
A base_prod/.classpath 
A base_prod/.settings 
A base_prod/foundation 
A base_prod/client 
A base_prod/server 

Đó kiểm tra ra các tập tin .settings.classpath, và foundation, client, và server thư mục , nhưng không còn gì cả. Nó nhanh và tôi không kiểm tra nhiều thứ tôi không muốn.

Bây giờ, tôi muốn làm việc trên máy chủ:

$ cd base_prod 
$ svn update --set-depth=infinity server 

sẽ cập nhật thư mục máy chủ của tôi này, nhưng sẽ thanh toán toàn bộ cấu trúc thư mục. Bây giờ tôi có thể làm việc với server, nhưng tôi không có các tệp foundation hoặc client chiếm phòng.

Sau đó, tôi muốn làm một số công việc trong foundation:

$ svn update --set-depth = nền tảng vô

Bây giờ, tôi có thư mục foundation.Và, tôi chỉ có một thư mục .svn duy nhất trong thư mục base_prod của tôi.

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