2008-09-20 41 views
60

Tôi có một cấu trúc SVN như thế này:Di chuyển Thư mục với Lịch sử

/Projects 
    /Project1 
    /Project2 
/someFolder 
    /Project3 
    /Project4 

Tôi muốn di chuyển tất cả các dự án vào thư mục/dự án, có nghĩa là tôi muốn di chuyển dự án 3 và 4 từ/someFolder vào thư mục/projects.

Thông báo trước: Tôi muốn giữ toàn bộ lịch sử. Tôi giả định rằng mỗi khách hàng sẽ phải kiểm tra các công cụ từ vị trí mới một lần nữa, đó là tốt, nhưng tôi vẫn tự hỏi những gì cách tiếp cận đơn giản nhất là di chuyển thư mục mà không hoàn toàn phá hủy lịch sử?

Subversion 1.5 nếu có vấn đề.

Trả lời

52
svn help rename 

Di chuyển/đổi tên trong lật đổ giữ nguyên lịch sử.

2

Di chuyển thư mục trong Subversion không hủy lịch sử, AFAIK.

4

Bạn có thể sử dụng lệnh svn copy. Nó giữ lịch sử của bạn. Bạn chỉ cần bỏ chọn tùy chọn "Dừng sao chép/đổi tên" trong khi hiển thị Nhật ký (Ví dụ về Rùa).

Hãy xem xét kỹ hơn các Subversion-Book svn copy

-3

Theo như tôi biết, chỉ Bazaar cho phép để giữ lịch sử trên thư mục, espacially khi nói về di chuyển thư mục. SVN cho phép bạn giữ lịch sử khi di chuyển các tập tin, chứ không phải các thư mục.

+7

Thư mục theo dõi SVN và Bazaar. Mercurial, Git và CVS thì không. – Joshua

38
svn move SRC DST
$ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c http://svn.red-bean.com/repos/bar.c

svn thái này sẽ giữ lại lịch sử của mình.

+0

Cũng nhanh hơn nhiều nếu thực hiện trực tiếp trên repo và cập nhật các bản sao làm việc sau đó, nó làm chậm di chuyển trên một bản sao làm việc – Sam

2

Để thực hiện điều đó, bạn sẽ phải sử dụng các chức năng di chuyển/đổi tên cụ thể của svn (hãy kiểm tra trợ giúp TortoiseSVN nếu bạn sử dụng ví dụ này). Nếu bạn di chuyển các tập tin của chính mình và sau đó cam kết những thay đổi tôi không chắc chắn rằng lịch sử sẽ được lưu giữ.

3

Kéo thả bằng trình duyệt kho và khôi phục thư mục cục bộ của bạn vào máy chủ SVN.

4

Nếu bạn di chuyển Project 3 vào thư mục dự án bằng cách sử dụng lệnh di chuyển svn lịch sử sẽ được lưu giữ cho thư mục Project 3 nhưng thú vị là thư mục Projects sẽ không hiển thị lịch sử của Project 3 đã được tạo trước khi Project 3 được chuyển vào Dự án.

Tôi tìm thấy điều này gây nhầm lẫn, tôi nghĩ một thư mục sẽ hiển thị tất cả lịch sử dưới đây chính nó trong hệ thống phân cấp nhưng nó có vẻ như đây không phải là trường hợp (chỉ thử nghiệm này bản thân mình)

7

Rùa SVN hỗ trợ 'Right Click' di chuyển. Khi bạn kéo tệp/thư mục nguồn vào đích bằng cách sử dụng 'click chuột phải', một menu ngữ cảnh sẽ xuất hiện. Bạn có thể chọn tùy chọn menu thích hợp để sao chép/di chuyển/di chuyển đổi tên vv Tùy chọn này cũng sẽ giữ lại lịch sử.

Lưu ý: Có phần tử đẹp được gọi là 'Sửa chữa Di chuyển' trong Tortoise SVN - bằng cách sử dụng tính năng này, bạn có thể đổi tên tệp/thư mục khi bạn di chuyển nó. (Tham khảo Documentation để biết thêm chi tiết)

+1

Tự hỏi tại sao câu trả lời này không có nhiều upvotes hơn.Nó dễ dàng hơn nhiều so với mày mò với dòng lệnh hoặc repo trình duyệt cho các phong trào nhỏ. – LWChris

+0

Cá nhân tôi sử dụng Total Commander, và ở đó tôi bỏ lỡ di chuyển chuột phải. –

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