2009-08-26 38 views
6

Có cách nào với subversion hoặc bất kỳ VCS nào khác mà tôi có thể giữ các tệp đã kiểm xuất trong thư mục .svn ở một nơi khác không, sau đó thư mục chứa chúng. Ví dụ như có một số toplevel/work/my-source-tree và một thư mục/work/my-source-tree-svn?Loại bỏ các tệp .svn trong tất cả các thư mục

Tôi biết tại sao các tệp được sao chép trong thư mục .svn (phát hiện nhanh các tệp đã thay đổi khi đăng ký và hỗ trợ công cụ dễ dàng). Nhưng tôi thường muốn làm một bản sao lưu của các tập tin ví dụ trên một thanh USB và chuyển số lượng gấp đôi của các tập tin là một showstopper.

Trả lời

5

svk là một lớp ở trên cùng của lật đổ bổ sung thêm một vài tính năng bổ sung. Một tính năng chính là siêu dữ liệu được giữ trong $ HOME/.svk/thay vì trong mỗi bản sao làm việc. Điều này ngăn cách hai và sẽ làm cho bản sao lưu của bạn dễ dàng hơn và làm việc bản sao nhỏ hơn.

Ngoài ra, nó cũng cung cấp một số tính năng kiểm soát phiên bản được phân phối, như git và các tính năng khác - nhưng vẫn sử dụng svn làm phụ trợ. Có thể đáng để thử.

+0

liên kết đã chết ...... –

+0

SVK đã bị ngừng. Sử dụng xuất khẩu svn. – jmanning2k

10

Sử dụng svn export để sao chép tệp vào thư mục sạch (ví dụ: thanh USB của bạn). Nó sẽ không sao chép các thư mục .svn. Thao tác này cũng hoạt động đối với bản sao làm việc:

svn export <path-to-working-copy> <destination-directory> 
8

Với CVS, SVN và các hệ thống điều khiển phiên bản khác, bạn có thể xuất. Điều này cho phép bạn nhận được một bản sao của mã mà không có .svn hoặc các thư mục ẩn khác.

SVN Export documentation

+0

Nhưng nếu muốn đưa tệp dự án của tôi về nhà để hoàn thành một thứ gì đó trước khi tôi đăng ký thì sao? Xin lỗi xuất không phải là câu trả lời tôi muốn nghe. – Lothar

+0

Trong trường hợp đó, svk có thể là những gì bạn muốn: p – BrianV

3

Bạn có thể sao lưu vào USB của bạn sử dụng rsync, và sử dụng --cvs-loại trừ lựa chọn. Tùy thuộc vào phiên bản của bạn, điều này có thể không hoạt động đối với các tệp lật đổ, vì vậy hãy thử --exclude = '. Svn/*'

1
cd svn-local-dir 
find . -name .svn | xargs rm -rf 
+1

Bạn có thể bỏ qua đường dẫn đến 'xargs' nếu bạn sử dụng tùy chọn' -exec', tức là 'tìm. -name .svn -exec rm -rf {} \; ' –

0

FWIW, đây không còn là vấn đề trong Subversion 1.7.

Thay vì 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. (Subversion 1.7 Release Notes)

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