Giải phóng không gian trong kho SVN của tôi


8

Tôi có một kho lưu trữ SVN được lưu trữ trên một trang web freemium với kích thước kho lưu trữ tối đa. Khi tôi đạt đến dung lượng này, tôi biết các tệp tôi đã kiểm tra và tôi biết rằng tôi có thể xóa vĩnh viễn để giải phóng không gian đĩa. Làm thế nào để tôi nói với SVN rằng một tập tin không chỉ có thể bị xóa mà còn là lịch sử?

Câu trả lời:


7

như Hubert nói, svnadmin packsẽ đóng gói tất cả các tệp repo riêng lẻ trong một thư mục thành một tệp lớn. Điều này sẽ giúp bạn tiết kiệm một số không gian, nhưng nó chỉ đưa ra ngày tính toán cho bạn. (nó sẽ làm cho hoạt động lịch sử nhanh hơn, vì vậy dù sao nó cũng là một gợi ý tốt). Một điều cần lưu ý là nó chỉ hoạt động trên các thư mục bị phân mảnh (tức là cấu trúc thư mục mới là đặt 1000 bản sửa đổi vào một thư mục duy nhất, sau đó bắt đầu một thư mục mới) và nó chỉ gói các thư mục phân đoạn cũ, không phải là thư mục sửa đổi hiện tại trong đó.

Vì vậy, lựa chọn duy nhất của bạn là xóa các bản sửa đổi cũ khỏi lịch sử của bạn. Điều đó đòi hỏi phải tải và tải svnadmin , với tùy chọn bộ lọc để xóa các thư mục trong repo của bạn mà bạn không còn yêu cầu nữa. (ví dụ như các nhánh tạm thời cũ).

Để kết xuất dễ dàng: svnadmin dump -r xxx:HEADtrong đó xxx là bản sửa đổi cũ nhất mà bạn muốn giữ (tức là bản này sẽ bỏ bản mới nhất, vì vậy bản sửa đổi cổ của bạn bị loại bỏ, như lưu trữ). Bạn có thể giữ kho lưu trữ các bản sửa đổi cũ bằng cách bỏ chúng đi ( svnadmin dump -r 1:xxx)

Khi bạn đã có tệp kết xuất, việc tải nó dễ dàng như chạy tải svnadmin trong tên tệp kết xuất. có thể là một ý tưởng tốt để xóa repo cũ trước khi tải cái mới - sau đó bạn sẽ nhận được lợi ích của các thuộc tính hệ thống tệp máy chủ mới nhất, nếu bạn chưa có chúng.

Nếu bạn muốn giữ tất cả các bản sửa đổi cũ nhưng lọc ra một số thư mục nhất định, bạn sẽ muốn chạy dumpfile thông qua svndumpfilter , sẽ xóa các đường dẫn được chỉ định. Hãy lưu ý rằng bạn sẽ muốn kết xuất mà không sử dụng tùy chọn - tăng dần.

Rõ ràng, kiểm tra tất cả các hoạt động cục bộ - kết xuất vào một tệp cục bộ, sau đó tải nó vào một repo tạm thời trên ổ đĩa cục bộ của bạn (nó cũng sẽ nhanh hơn) và kiểm tra lịch sử và phiên bản mới nhất hoạt động tốt - Tôi xuất bản sửa đổi mới nhất sang thư mục và sử dụng winmerge để kiểm tra xem các tệp có giống với bản xuất của phiên bản mới nhất từ ​​repo trực tiếp hay không. Hãy thử nó với một sửa đổi lịch sử quá nếu bạn muốn bị hoang tưởng.


3

Từ câu hỏi thường gặp về lật đổ :

Dự án có kế hoạch ... một ngày nào đó sẽ thực hiện một lệnh xóa svnadmin sẽ hoàn thành nhiệm vụ xóa thông tin vĩnh viễn.

...

Trong khi đó, cách duy nhất của bạn là svnadmin kết xuất kho lưu trữ của bạn, sau đó chuyển kết xuất tệp thông qua svndumpfilter (không bao gồm đường dẫn xấu) vào lệnh tải svnadmin.


2

Bạn không thể xóa tệp khỏi kho SVN mà không thực hiện svnadmin dump; svndumpfilter; svnadmin loadđiệu nhảy. Bạn có thể giảm kích thước của kho lưu trữ nếu bạn đang sử dụng FSFS, chỉ cần chạy svnadmin packtrên thư mục repo.


0

Nói chung, việc xóa các tệp khỏi kho lưu trữ dưới sự kiểm soát phiên bản là một ý tưởng tồi.

Tôi không chắc là tôi đã hiểu đúng, nhưng đây là cách tôi hiểu nó. Kiểm soát phiên bản là về tổng kiểm duy nhất. Nếu bạn loại bỏ một cái gì đó, có nguy cơ cho các tổng kiểm tra này được sử dụng lại, dẫn đến xung đột. Nó chỉ đơn giản là không đáng để giảm thiểu vấn đề không gian đĩa thấp theo cách này, nâng cấp tốt hơn gói dữ liệu của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.