2010-10-27 21 views
16

Trong dự án của tôi, tôi có nhiều thư mục. Tôi chắc chắn biết tôi muốn có những thay đổi chỉ trong vài tập tin (khoảng 15) mỗi người trong số họ là trong 7 thư mục khác nhau. Ngoài ra, tôi không muốn kiểm tra toàn bộ nguồn để hoàn thành nó. Chỉ có thể kiểm tra các thư mục yêu cầu một mình?Cách thanh toán một vài tệp và thư mục mà không cần kiểm tra toàn bộ nguồn

Tôi sẽ có kịch bản này quá thường xuyên đối với các nguồn khác nhau. Có thể thanh toán chỉ các thư mục được chọn tại một shot không?

Sửa

Nói ví dụ tôi có một thư mục nguồn chứa. 5 thư mục con. Giống như,

nguồn

- Core

- Helper

- Extensions

- Themes

- Tài

Và, tôi muốn tự mình kiểm tra thư mục Tiện ích mở rộng và Chủ đề. Nhưng, tôi không muốn kiểm tra từng thư mục một cách riêng biệt. Tôi muốn nó như thế, tôi sẽ cung cấp cho các vị trí kiểm tra như svn.svnhost.com/trunk/project1/source. [Sau đó, tôi sẽ chọn ExtensionsThemes cung cấp cho một đơn check-out]

Thanh toán dự kiến:

nguồn

- Extensions

- Themes

Một số điều như:

svn co svn.svnhost.com/trunk/project1/source --foldernames Extensions, Themes 

Trả lời

20

Ngoài chỉ kiểm tra trên các thư mục mà bạn muốn (mà chỉ có tác dụng nếu bạn muốn toàn bộ cây thư mục con cũng), Subversion 1.7 hỗ trợ một cái gì đó gọi là "sparse directories". Về cơ bản bạn có thể kiểm tra một thư mục đến một độ sâu nhất định, và sau đó "khoan xuống" vào các thư mục mà bạn quan tâm.

Sử dụng ứng dụng khách dòng lệnh, bạn sử dụng các tùy chọn --depth--set-depth để svn update. Nếu bạn đang sử dụng TortoiseSVN, có một tùy chọn "Độ sâu Thanh toán" trong hộp thoại thanh toán.

EDIT: Để làm rõ đối với câu hỏi cụ thể của bạn, trước tiên bạn sẽ kiểm tra cây nguồn của mình với độ sâu "nhanh". Điều này sẽ cung cấp cho bạn tất cả các thư mục của bạn, nhưng ban đầu chúng sẽ trống. Sau đó, bạn có thể đi sâu vào ExtensionsThemes thư mục bằng cách cập nhật họ "hoàn toàn đệ quy" chiều sâu (svn update --set-depth infinity hoặc trong TortoiseSVN "Update để sửa đổi → Cập nhật Depth → "Hoàn toàn đệ quy").

EDIT : Độ sâu cập nhật có thể được xem là một loại "mức hiển thị" và được ghi nhớ bởi Subversion, tức là nếu bạn thực hiện svn update trên bản sao làm việc của mình, nó sẽ chỉ cập nhật lên mức hiển thị hiện tại

+0

@ JasperE Nhưng, tôi không thể làm điều này với một lệnh svn duy nhất phải không? Không có vấn đề, phương pháp được đề cập ở trên 'ngay lập tức' tự tiết kiệm nhiều thời gian. :) –

+0

Không, bạn cần nhiều lệnh. OTOH, bạn có thể áp dụng kỹ thuật này đệ quy nếu bạn ví dụ chỉ muốn kiểm tra các phần của thư mục Extensions hoặc Themese. – JesperE

+0

Đây thực sự là một tính năng khá thú vị, mặc dù nó không thực sự phù hợp với tình hình của tôi thực sự tốt. Ngoài ra, bạn không thể ** giảm ** mức hiển thị; vì vậy nếu bạn đã thiết lập độ sâu đến vô cùng, không có cách nào để giảm nó (cắt tỉa) mà không kiểm tra tất cả mọi thứ một lần nữa. – JesperE

1

Trong navigator Rùa (click chuột phải) hướng đến một thư mục cụ thể và thực hiện thanh toán đối với các vị trí

+0

Tôi đã cập nhật câu hỏi của mình. Hãy kiểm tra. –

5

Vâng, Xem nếu bạn có một địa chỉ Repository như:

https://elastik.svn.sourceforge.net/svnroot/elastik/ 

Chỉ cần thêm thư mục bạn muốn vào cuối. Vì vậy, nếu tôi chỉ muốn "trunk/bao gồm" thư mục:

https://elastik.svn.sourceforge.net/svnroot/elastik/trunk/includes 
2

Tôi biết điều này câu hỏi là hơn 5 tuổi, nhưng câu trả lời của tôi có thể giúp những người nhìn vào t câu hỏi của anh bây giờ.

Tôi đang sử dụng rùa SVN verion 1.9, nó có tùy chọn "chọn mục" trước khi thanh toán. Chúng tôi có thể chọn các thư mục/tệp cần thiết để thanh toán từ trình duyệt kho lưu trữ. enter image description here

+0

Vậy làm thế nào để dịch thành các lệnh svn thực tế? – Nyerguds

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