2008-09-05 22 views
190

Tôi đang sử dụng TortoiseSVN đối với kho lưu trữ SF SourceForge. Tôi muốn di chuyển một tệp từ một thư mục này sang một thư mục khác để duy trì lịch sử sửa đổi của nó. Điều này có thể không? Nếu vậy, làm thế nào để bạn làm điều đó?Làm thế nào để bạn di chuyển một tệp trong SVN?

(chiến lược hiện tại của tôi đã được để sao chép các tập tin vào thư mục mới và kiểm tra xem nó và sau đó xóa các tập tin từ thư mục hiện hành.)

Trả lời

83

Subversion có nguồn gốc hỗ trợ cho việc di chuyển tập tin.

svn move SOURCE DESTINATION 

Xem trợ giúp trực tuyến (svn help move) để biết thêm thông tin.

+1

Cảm ơn bạn. Để di chuyển các tập tin lên một mức nhìn [câu trả lời của tôi ở đây] (http://stackoverflow.com/a/10850371/171436), vì nó không rõ ràng với tôi tại sao lệnh được mong đợi 'svn move ./folder. /' không hoạt động. – Joost

2

tôi nghĩ rằng trong trình duyệt svn trong Tortoisesvn bạn chỉ có thể kéo nó từ một nơi khác.

0

Nếu tôi không sai bắt đầu từ phiên bản 1.5 SVN có thể theo dõi tệp đã di chuyển \ thư mục. Trong TortoiseSVN sử dụng có thể di chuyển tập tin thông qua kéo & thả.

1

Cũng có thể được gọi là "đổi tên" bằng rùa, nhưng svn di chuyển, là lệnh trong ứng dụng khách svn barebones.

+0

câu trả lời đơn giản nhất và chính xác nhất là câu trả lời! sử dụng các tệp di chuyển TortoiseSVN được thực hiện bằng cách nhấp chuột phải> đổi tên. đó là nó. – RoeeK

16

Sử dụng TortoiseSVN Tôi chỉ cần nhấp chuột phải và kéo thư mục từ vị trí này sang vị trí khác. Khi bạn nhả chuột phải, bạn sẽ có tùy chọn "SVN Move Version File". Tuy nhiên, tôi tin rằng SVN không làm bất cứ điều gì "ưa thích" ở đó, nhưng chỉ đơn giản là xóa các tập tin ở vị trí trước đó và Thêm nó vào vị trí mới.

283

Check-out phần 5.14.2. Moving files and folders (hoặc kiểm tra "di chuyển" trong Index của sự giúp đỡ) sự giúp đỡ TortoiseSVN. Bạn di chuyển qua kéo phải. Nó cũng đề cập rằng bạn cần phải cam kết từ thư mục cha để làm cho nó "một" sửa đổi. Điều này làm việc để thực hiện thay đổi trong một bản sao làm việc.

(Lưu ý rằng các mục SVN trong hình dưới đây sẽ chỉ hiển thị nếu thư mục đích đã được bổ sung vào kho lưu trữ.)

tortoise move menu

Bạn cũng có thể làm di chuyển qua Repo trình duyệt (phần 5.23. The Repository Browser trợ giúp).

+0

Khi tôi đánh dấu tất cả các tệp của mình, kéo phải, trình đơn cửa sổ khám phá thông thường xuất hiện. Nó cho phép tôi chọn "di chuyển" nhưng nó không phải là một lựa chọn SVN vì vậy tôi không chắc chắn bất cứ điều gì thậm chí đã xảy ra. Khi tôi kiểm tra xem có sửa đổi hay không, nó cho biết 300 tệp đã bị xóa và 300 tệp không được phiên bản. Điều này dường như không hoạt động chính xác. Tôi sợ phải cam kết nó mà không biết đây có phải là cách mà nó phải làm việc hay không –

+37

Tôi vừa nhận ra rằng có lẽ không hiệu quả vì tôi chưa thêm/cam kết thư mục mới chưa –

+0

Tôi biết đây là năm sau - - nhưng lời bình luận của Joe rất quan trọng. tôi cũng phải vật lộn với điều này - tôi đã bỏ qua chút ghi chú đó trong câu trả lời. Thư mục đích phải nằm trong điều khiển SVN nếu không điều này sẽ không hoạt động. Rất may SVN cho phép thêm các thư mục trống. Sau khi đặt thư mục dưới điều khiển SVN, chuột phải Kéo sẽ hoạt động như mô tả ở trên. Nếu không thì Windows chung "Sao chép ở đây/di chuyển ở đây/hủy bỏ" trình đơn được trình bày (ví dụ: SVN lựa chọn bị thiếu). – ripvlan

30

Trong TortoiseSVN nhấp chuột phải vào một nơi nào đó và đi TortoiseSVN> Repo Browser mở kho lưu trữ.

Tất cả những gì bạn phải làm là kéo và thả tệp từ một thư mục đến nơi bạn muốn. Nó sẽ yêu cầu bạn thêm một thông điệp cam kết và nó mặc định nó thành "Đã chuyển tệp/thư mục từ xa"

+1

Đó là giải pháp đáng tin cậy nhất. Đừng quên truyền Cập nhật trên thư mục cục bộ của bạn để đồng bộ hóa với Repo. –

+1

Nhưng nếu tôi không muốn có một cam kết cho mỗi thư mục thì sao? Tôi muốn có chính xác một cam kết chuyển đổi. – Bondax

+0

Làm việc tuyệt vời cho tôi! Đã phải cập nhật cả hai thư mục tôi đã di chuyển từ và đến, hoặc đi một mức độ dưới cả hai. – FreeSoftwareServers

68

Với TortoiseSVN Tôi chỉ cần di chuyển tệp trên đĩa.

Khi tôi đến cam kết thay đổi của tôi, tôi chọn tập tin mất tích và cái mới và chọn "Repair move" từ bên phải menu chuột:

enter image description here

này có nghĩa là tôi có thể để cho IDE của tôi di chuyển quanh các file và sử dụng các công cụ tái cấu trúc mà không làm mất lịch sử.

+1

Đây là cách ưa thích của tôi để di chuyển các tệp ngay bây giờ. Một cảnh báo; chỉ làm <20 tập tin tại một thời điểm giữa các cam kết nếu không nó có thể rất thời gian để tìm các tập tin có liên quan với nhau. – DarrenMB

+0

Tôi đang sử dụng TortoiseSVN 1.8.6 và không thấy bất kỳ tùy chọn "sửa chữa" nào trên menu ngữ cảnh khi tôi thực hiện cam kết? – BornToCode

+0

@DarrenMB đúng: Tôi sắp di chuyển một Dự án Android từ Eclipse sang Android Studio.Tất cả các tệp phải được di chuyển. Cách tiếp cận này không phải là cách tôi muốn sử dụng ở đây. – Bondax

15

Đối với TortoiseSVN client:

  1. Chọn các tập tin bạn muốn di chuyển,
  2. Ngay nhấp chuột và kéo các tập tin vào thư mục mà bạn muốn di chuyển chúng đến,
  3. Một cửa sổ sẽ bật lên sau khi thả thả và thả vào một thư mục. Nhấp vào "SVN Di chuyển (các) mục được phiên bản tại đây",
  4. Sau khi bạn nhấp vào hộp thông báo cửa sổ cam kết ở trên sẽ xuất hiện. Nhập tin nhắn và gửi.

Bây giờ bạn đã hoàn tất.

0

Nếu bạn đang di chuyển các thư mục qua Trình duyệt kho lưu trữ, thì không có tùy chọn Di chuyển khi nhấp chuột phải; cách duy nhất là kéo và thả.

6

Cắt tệp qua menu ngữ cảnh của hệ điều hành như bạn thường làm, sau đó thay vì dán thường xuyên, nhấp chuột phải để đưa menu ngữ cảnh, sau đó chọn TortoiseSVN -> Paste (đảm bảo bạn cam kết từ gốc để bao gồm cả tệp cũ và mới trong cam kết).

+0

Trước tiên hãy chắc chắn rằng bạn Tortoise SVN thêm thư mục bạn đang dán vào. – xinthose

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