Xóa, Di chuyển và đổi tên

Subversion cho phép đổi tên và di chuyển các tập tin và thư mục. Vì vậy, có các mục trình đơn để xóa và đổi tên trong trình đơn phụ TortoiseSVN.

Hình 4.34. Trình đơn ngữ cảnh của Explorer cho các tập tin được phiên bản

Trình đơn ngữ cảnh của Explorer cho các tập tin được phiên bản


Xóa các tập tin và thư mục

Sử dụng TortoiseSVNXóa để loại bỏ các tập tin và thư mục khỏi Subversion.

Khi bạn TortoiseSVNXóa một tập tin hoặc thư mục, nó được loại bỏ khỏi bản làm việc của bạn ngay lập tức cũng như được đánh dấu xóa khỏi kho trong lần cam kết tiếp theo. Thư mục mẹ của mục đó hiển thị một biểu tượng lớp phủ được sửa đổi. Cho tới khi bạn cam kết các thay đổi, bạn có thể lấy lại tập tin bằng cách dùng TortoiseSVNHoàn Nguyên trên thư mục mẹ.

Nếu bạn muốn xóa một mục khỏi kho lưu trữ, nhưng giữ nó tại địa phương như là một tập tin / thư mục không được phiên bản, sử dụng Trình đơn ngữ cảnh mở rộng Xóa (giữ lại địa phương) . Bạn phải giữ phím Shift trong khi nhấp chuột phải vào mục trong cửa sổ danh sách thám hiểm (cửa sổ bên phải) để thấy điều này trong trình đơn ngữ cảnh mở rộng.

Nếu một mục được xóa thông qua explorer thay vì dùng trình đơn ngữ cảnh TortoiseSVN, hộp thoại cam kết hiển thị các mục này như đã mất và để bạn loại bỏ chúng khỏi kiểm soát phiên bản trước khi cam kết. Tuy nhiên, nếu bạn cập nhật bản làm việc, Subversion sẽ phát hiện mục bị mất và thay thế nó với phiên bản mới nhất từ kho. Nếu bạn cần xóa một tập tin được đánh phiên bản, luôn luôn sử dụng TortoiseSVNXóa để Subversion không phải đoán điều bạn thật sự muốn làm.

Lấy trở lại một tập tin đã xóa hoặc thư mục

Nếu bạn đã xóa một tập tin hoặc một thư mục và đã cam kết tác vụ xóa vào kho, sau đó là một TortoiseSVN Hoàn nguyên bình thường không có thể mang lại cho nó trở lại nữa. Tuy nhiên, tập tin hoặc thư mục không phải là mất tất cả. Nếu bạn biết việc sửa đổi các tập tin hoặc thư mục đã bị xóa (nếu bạn không sử dụng hộp thoại đăng nhập để tìm hiểu) mở trình duyệt lưu trữ và chuyển sang sửa đổi đó. Sau đó chọn tập tin hoặc thư mục mà bạn đã xóa, nhấp chuột phải và chọn Trình đơn ngữ cảnh Sao chép vào ... như là mục tiêu cho hoạt động sao chép, chọn đường dẫn đến bản sao làm việc của bạn.

Di chuyển tập tin và thư mục

Nếu bạn muốn làm một đổi tên tại chỗ đơn giản của một tập tin hoặc thư mục, sử dụng Trình đơn ngữ cảnh Đổi tên ... Nhập tên mới cho mục đó và bạn xem như xong.

Nếu bạn muốn di chuyển các tập tin vòng vòng bên trong bản sao làm việc của bạn, có lẽ đến một thư mục con khác, sử dụng xử lý chuột phải kéo-và-thả:

  1. lựa chọn các tập tin hoặc thư mục mà bạn muốn di chuyển

  2. kéo phải chúng đến vị trí mới bên trong các bản sao làm việc

  3. thả nút chuột phải

  4. trong trình đơn bật lên chọn Trình Đơn Ngữ Cảnh SVN Di chuyển các tập tin được phiên bản tới đây

Cam kết các thư mục mẹ

Kể từ khi việc đổi tên và di chuyển được thực hiện như là một lệnh xóa theo sau là một lệnh thêm bạn phải cam kết các thư mục mẹ của tập tin đổi tên / di chuyển để cho phần bị xóa của việc đổi tên / di chuyển sẽ hiển thị trong hộp thoại cam kết. Nếu bạn không cam kết phần bị loại bỏ của việc đổi tên / di chuyển, nó sẽ ở lại trong kho và khi đồng nghiệp của bạn cập nhật, tập tin cũ sẽ không được gỡ bỏ, tức là họ sẽ có cả hai bản sao cũ và mới.

Bạn phải cam kết đổi tên thư mục trước khi thay đổi bất kỳ tập tin bên trong thư mục, nếu không bản sao làm việc của bạn có thể bị rối tung.

Một cách khác để di chuyển hoặc sao chép các tập tin là sử dụng lệnh Windows sao chép / cắt. Chọn các tập tin mà bạn muốn sao chép, nhấn chuột phải và chọn Trình Đơn Ngữ Cảnh Sao chép từ trình đơn ngữ cảnh thám hiểm. Sau đó duyệt đến thư mục đích, nhấn chuột phải và chọn TortoiseSVN Dán . Đối với các tập tin di chuyển, chọn Trình Đơn Ngữ Cảnh Cắt thay vì Trình Đơn Ngữ Cảnh Sao chép .

Bạn cũng có thể sử dụng trình duyệt kho để di chuyển các mục vòng vòng. Đọc phần “Trình duyệt Kho” để tìm hiểu thêm.

Không SVN Di chuyển các thành phần ngoài

Bạn không nên sử dụng các lệnh TortoiseSVN Di chuyển hoặc Đổi tên trên một thư mục đã được tạo ra bằng cách sử dụng svn:externals . Hành động này sẽ làm các mục bên ngoài bị xóa từ kho cha mẹ của nó, có thể khó chịu nhiều người khác. Nếu bạn cần phải di chuyển các thành phần bên ngoài thư mục bạn nên sử dụng một di chuyển shell bình thường, sau đó điều chỉnh thuộc tính svn:externals của thư mục cha mẹ nguồn và đích.

Đối phó với các cuộc xung đột kiểu chữ tên tập tin

Nếu kho lưu trữ đã có hai tập tin có cùng tên nhưng khác nhau chỉ trong kiểu chữ (ví dụ: Test.txt test.txt ), Bạn sẽ không thể cập nhật hoặc kiểm tra các thư mục cha trên một máy khách Windows. Trong khi Subversion hỗ trợ các trường hợp nhạy cảm kiểu chữ tên tập tin, Windows thì lại không.

Điều này đôi khi sẽ xảy ra khi hai người cam kết, từ các bản sao làm việc riêng biệt, các tập tin ngẫu nhiên có cùng tên, nhưng với khác biệt về kiểu chữ. Nó cũng có thể xảy ra khi tập tin được cam kết từ một hệ thống với một hệ thống tập tin phân biệt kiểu chữ hoa, như Linux.

Trong trường hợp đó, bạn phải quyết định một trong số chúng bạn muốn giữ và xóa (hoặc đổi tên) cái kia từ kho lưu trữ.

Ngăn chặn hai tập tin có cùng tên

There is a server hook script available at: https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ that will prevent checkins which result in case conflicts.

Sửa chữa đổi tên tập tin

Đôi khi IDE thân thiện của bạn sẽ đổi tên tập tin cho bạn như là một phần của bài tập cấu trúc lại, và tất nhiên nó không báo cho Subversion. Nếu bạn cố gắng cam kết thay đổi của bạn, Subversion sẽ xem tên tập tin cũ như đã bị mất tích và tên mới như là một tập tin không phiên bản. Bạn chỉ có thể kiểm tra tên tập tin mới để có được nó được thêm vào, nhưng sau đó bạn sẽ mất truy tìm lịch sử, bởi Subversion không biết các tập tin có liên quan.

Một cách tốt hơn là để thông báo cho Subversion rằng sự thay đổi này thực sự là một đổi tên, và bạn có thể làm điều này trong hộp thoại Cam kết Kiểm tra cho sửa đổi . Đơn giản chỉ cần chọn cả hai tên (mất tích) và tên mới (chưa phiên bản) và sử dụng Trình Đơn Ngữ Cảnh Sửa chữa Di chuyển để ghép hai tập tin như đổi tên một.

Xóa các tập tin chưa phiên bản

Thông thường bạn đặt danh sách bỏ qua của bạn theo cách mà tất cả các tập tin được tạo ra được bỏ qua trong Subversion. Nhưng điều gì sẽ xảy ra nếu bạn muốn để xóa tất cả những mục được bỏ qua để sản xuất một bản xây dựng sạch? Thông thường, bạn sẽ thiết lập rằng trong makefile của bạn, nhưng nếu bạn gỡ rối các makefile, hoặc thay đổi hệ thống xây dựng nó rất hữu ích để có một cách để dọn dẹp các sàn.

TortoiseSVN chỉ cung cấp một tùy chọn sử dụng Trình Đơn Ngữ Cảnh mở rộng Xóa mục chưa phiên bản ... . Bạn phải giữ Shift trong khi cách nhấp chuột phải vào một thư mục trong cửa sổ danh sách thám hiểm (cửa sổ bên phải) để thấy điều này trong trình đơn ngữ cảnh mở rộng. Điều này sẽ tạo ra một hộp thoại trong đó liệt kê tất cả các tập tin chưa phiên bản bất cứ nơi nào trong bản sao làm việc của bạn. Sau đó, bạn có thể chọn hoặc bỏ chọn các mục được gỡ bỏ.

Khi các hạng mục bị xóa, thùng rác được sử dụng, vì vậy nếu bạn phạm sai lầm ở đây và xóa một tập tin mà cần phải có được phiên bản, bạn vẫn có thể phục hồi nó.