This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

Đôi Khi Bạn Chỉ Cần Dọn Dẹp

Chúng tôi đã trình bày những thao tác thường nhật mà bạn thường sử dụng với Subversion, chúng ta sẽ xem lại một vài thao tác quản trị liên quan tới bản sao làm việc của bạn.

Hủy bỏ bản sao làm việc

Subversion không theo dõi trạng thái hoặc sự tồn tại của bản sao làm việc trên máy chủ, vì vậy sẽ không ảnh hưởng gì đến máy chủ trong việc duy trì bản sao làm việc. Tương tự như vậy, không cần thiết phải thông báo cho máy chủ biết bạn sẽ xóa một bản sao làm việc.

Nếu có khả năng bạn sẽ sử dụng bản sao làm việc một lần nữa, bạn có thể giữ nguyên nó trên đĩa cho đến khi bạn sử dụng nó lại, chỉ việc thực thi lệnh svn update để cập nhật bản sao làm việc và sẵn sàng sử dụng.

Tuy nhiên, nếu bạn chắc chắn sẽ không sử dụng một bản sao làm việc một lần nữa, bạn có thể tùy ý xóa toàn bộ với bất kỳ phương thức xóa thư mục nào mà hệ điều hành của bạn cung cấp. Chúng tôi khuyến nghị rằng trước khi thực hiện như vậy bạn nên thực thi lệnh svn status và xem lại bất kỳ tập tin nào được liệt kê trong danh sách kết xuất mà có dấu ? phía trước để chắc chắn rằng nó có quan trọng hay không.

Phục hồi từ gián đoạn

Khi Subversion điều chỉnh bản sao làm việc của bạn—hoặc là những tập tin của bạn hoặc là vùng quản trị của chính nó—nó sẽ cố gắng thực hiện như sau càng an toàn càng tốt. Trước khi thay đổi bản sao làm việc, Subversion ghi lại những ý định của nó trong một danh sách công-việc-phải-làm riêng. Tiếp theo, nó thực hiện những thao tác này để thi hành những thay đổi mong muốn, khóa phần có liên quan trên bản sao làm việc trong khi nó làm việc. Điều này ngăn những ứng dụng khách Subversion khác truy cập vào bản sao làm việc đang thay đổi. Cuối cùng, Subversion nhả khóa và dọn dẹp danh sách công-việc-phải-làm riêng của nó. Về mặt kiến trúc, điều này tương tự với hệ thống tập tin journal. Nếu một thao tác Subversion bị ngắt (ví dụ: nếu tiến trình bị tắt hoặc máy gặp sự cố), danh sách công-việc-phải-làm riêng vẫn còn tồn tại trên đĩa. Điều này cho phép Subversion quay trở lại với danh sách này sau đó để hoàn thành bất kỳ thao tác đang dang dỡ nào và trả lại trạng thái nhất quán cho bản sao làm việc.

Đây chính xác là điều mà svn cleanup thực hiện: nó tìm kiếm trong bản sao làm việc của bạn và thực thi bất kỳ mục công-việc-phải-làm nào còn sót, gở khóa bản sao làm việc ngay khi nó hoàn thành những thao tác này. Nếu có khi nào đó Subversion thông báo với bạn rằng phần nào đó của bản sao làm việc của bạn bị khóa, thực thi lệnh svn cleanup để khắc phục vấn đề. Lệnh svn status cũng sẽ thông báo cho bạn về việc khóa vùng quản trị trên bản sao làm việc của bạn bằng cách hiển thị chữ L kế bên những đường dẫn bị khóa này:

$ svn status
  L     somedir
M       somedir/foo.c
$ svn cleanup
$ svn status
M       somedir/foo.c

Đừng nhầm lẫn việc khóa vùng quản trị của bản sao làm việc với khóa do người dùng tạo mà người sử dụng Subversion tạo ra khi sử dụng mô hình khoá-sửa đổi-mở khoá của hệ thống kiểm soát phiên bản đồng thời; xem thông tin The Three Meanings of Lock để làm rõ thêm.