2010-09-09 28 views
9

Tôi cần phải di chuyển thư mục svn để lên mức trên và giữ tất cả lịch sửLàm thế nào để di chuyển thư mục svn lên mức trên

Tất cả các file và thư mục từ https://myserver.com/svn/Project/trunk/ vào https://myserver/svn/Project/

tôi sử dụng một lệnh:

svn move https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/ 

nhưng nó nói:

svn: không thể di chuyển con đường ' https://myserver.com/svn/Project/trunk/ ' vào chính nó

Ai biết cách tôi có thể giải quyết vấn đề đó? Cảm ơn!

+0

Bố cục kho lưu trữ có vẻ hợp lý. Tại sao bạn muốn thay đổi nó? – zellus

+0

Hãy xem http://stackoverflow.com/questions/496713/how-do-i-correct-a-subversion-project-where-i-omitted-trunk – zellus

+0

Cảm ơn, vì thân cây trong tình huống của tôi chỉ là một phụ chuỗi, nó không cần thiết để có nó. – ihorko

Trả lời

10

Nếu bạn là sẵn sàng sử dụng TortoiseSVN sau đó bạn chỉ có thể di chuyển thư mục bằng trình duyệt kho lưu trữ. Đó là cách tôi thường di chuyển các thư mục xung quanh, rất đơn giản và không đau.

+0

Có, tôi sử dụng TortoiseSVN, nó thực sự rất đơn giản trong trình duyệt kho lưu trữ, Cảm ơn bạn rất nhiều vì đã giúp bạn !!! – ihorko

1

Tôi không biết nếu bạn có thể di chuyển theo cách đó, cá nhân tôi sẽ kiểm tra kho, di chuyển thư mục trong hệ thống tệp và sau đó thực hiện thay đổi, xóa nó tại một vị trí và thêm vào vị trí khác.

+1

bạn sẽ không giữ lịch sử, sau đó bạn sẽ chỉ có sửa đổi cuối cùng – ihorko

+0

tại sao? bạn sẽ có tất cả thay đổi, nhưng trong cây mới. –

+0

khi tôi nghĩ về vấn đề này một chút, tôi đã tìm thấy một giải pháp khác - kết xuất kho tại một cây cụ thể, giả sử: svnadmin dump repo/path/other/inner> file.dump rồi xóa dir "inner" -> nó sẽ loại bỏ nó khỏi kho lưu trữ, và bây giờ tải nó ở một đường dẫn khác: svnadmin load/repo/--parent-dir/path

1

Hãy thử:

svn chuyển --relocate https://myserver.com/svn/Project/trunk/https://myserver/svn/Project/

Hãy kiểm tra điều này trong một kho lưu trữ riêng biệt trước khi bạn chạy nó trên một thực sự của bạn!

+0

Cảm ơn , Tôi đã thử, nhưng svn nói: svn: '.' không phải là bản sao làm việc – ihorko

+1

Bạn đã chạy lệnh từ thư mục cơ sở của dự án trên hệ thống tệp của bạn? – Nix

+1

Nhưng một chuyển đổi sẽ không di chuyển bất kỳ tệp nào trên máy chủ ... – mliebelt

0

Tôi không tin rằng bạn có thể di chuyển trực tiếp đến thư mục hiện có (đặc biệt là thư mục gốc). Có thể tùy chọn --force có thể hữu ích.

Nếu nó có thể để kiểm tra toàn bộ repo bạn có thể di chuyển tất cả các thư mục từ thân cây để cấp trên, nó có vẻ như giải pháp đáng tin cậy hơn

svn mv * .. 

* không được hỗ trợ bởi một số khách hàng svn

19

Tôi cũng đang tìm kiếm điều này. Sau đó, tôi bắt đầu tìm kiếm một giải pháp và tôi đã không thực sự tìm thấy một giải pháp, ngoại trừ việc nó đã làm cho tôi nghĩ về một giải pháp.

Bạn sẽ thấy lệnh svn mv ./folder ./ để di chuyển mọi thứ từ ./folder đến ./. Điều này không thực sự đúng, nó sẽ di chuyển folder vào thư mục hiện tại. Vì đây là nơi nó đã có, lệnh không thành công.

Vì vậy, giải pháp sẽ được di chuyển tất cả mọi thứ bên./folder-./.Trên thực tế, các lệnh sau đây chỉ làm điều đó:

svn mv ./folder/* ./

-1
  1. séc ra https://myserver.com/svn một số bản sao làm việc
  2. xóa thư mục "Dự án"
  3. bản sao phiên bản cuối cùng của dự án/trunk vào thư mục gốc của bản sao làm việc
  4. cam kết
1

Tôi gặp sự cố tương tự hôm nay nhưng tôi không biết cách di chuyển nó lên từ con rùa, vì tôi cũng đã cài đặt cho thư mục đó.

Nếu vị trí mới https://myserver/svn/Project/ nên chỉ có các mục từ vị trí cũ của bạn, đây là những gì tôi đã làm:

  • Moved https://myserver.com/svn/Project/trunk/ đến một vị trí tạm thời mới (ví dụ https://myserver/svn/TempProject/);

  • Đã xóa vị trí hiện tại bạn muốn sử dụng (https://myserver/svn/Project/);

  • Đã đổi tên https://myserver/svn/TempProject/ thành https://myserver/svn/Project/.

Điều này phù hợp với tôi. Nó bảo tồn tất cả lịch sử, thiết lập svn, vv Lịch sử chỉ có một vài mục mới từ tất cả các di chuyển xung quanh điều.

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