2012-01-18 28 views
10

Tôi rất tiếc đã cam kết một thư mục lớn cho SVN (nó có khoảng 1.4GB và khoảng 10000 tệp, nhiều trong số chúng là nhị phân). Có khả năng nào để quay lại bản sửa đổi trước đó và làm cho máy chủ SVN quên rằng bản sửa đổi tiếp theo đã được thực hiện chưa? Ví dụ, cam kết này đã được sửa đổi 120. Vì vậy, tôi muốn thực hiện sửa đổi hàng đầu 119 và để loại bỏ tất cả các tập tin và cài đặt SVN db của 120. sửa đổi.SVN - hoàn toàn loại bỏ bản sửa đổi từ máy chủ SVN

Tôi đã thử xóa thư mục đó, do đó, cam kết 121 đã được thực hiện. Và sau đó tôi đã cố gắng hợp nhất các bản sửa đổi 121 và 119. Nhưng nó sẽ không giúp được gì. Bản sửa đổi 120 vẫn còn trong hệ thống.

Sau đó, tôi muốn tạo bản sao của kho lưu trữ SVN bằng svnsync, nhưng không có tùy chọn để thiết lập bản sửa đổi nào tôi muốn làm gương. Trừ khi tôi không tìm thấy tùy chọn này. (Tôi muốn thiết lập các bản sửa đổi từ 0 đến 119).

Bạn có biết tôi có thể làm gì không? Có lệnh nào để loại bỏ hoàn toàn một bản sửa đổi vì nó chưa từng xảy ra?

+3

[câu hỏi tương tự đã được thảo luận ở đây] [1] [1]: http://stackoverflow.com/questions/402159/roll-back-or-revert-entire-svn-repository-to -an-older-revision – paramosh

+0

@paramosh - cảm ơn, bạn nói đúng, tôi đã không thành công khi tôi cố gắng tìm câu hỏi tương tự ... – srnka

Trả lời

13

Bạn phải đổ kho và sau đó tải lại, bỏ qua bản sửa đổi bạn không muốn nữa. (r120 trong ví dụ của bạn)

Để thực hiện việc này, hãy sử dụng lệnh svnadmin dump, theo sau là lệnh svnadmin load.

dụ:

svnadmin dump c:\svn\my_repo -r0:119 > repo.dump 
svnadmin load c:\svn\my_new_repo < repo.dump 

Trong kịch bản phức tạp hơn, bạn có thể phải sử dụng svndumpfilter, nhưng tôi không nghĩ đó là cần thiết trong trường hợp của bạn.

+0

Có phải an toàn để thực hiện việc này và tải nó trở lại kho lưu trữ gốc? Điều gì sẽ xảy ra với các bản sao làm việc trong trường hợp đó, họ sẽ có số sửa đổi cao hơn, nó có thể hoạt động được không? –

+0

Tôi không mong đợi các bản sao làm việc để duy trì tính toàn vẹn của chúng. Đó không phải là một vấn đề - chỉ cần xóa bản sao làm việc và kiểm tra một bản sao mới. –

-1

Bạn có thể làm một trong hai điều này:

  1. Đăng nhập vào máy chủ SVN của bạn, loại bỏ các tập tin bạn không muốn ở đó, và logout. Điều này sẽ tạo ra một bản sửa đổi khác, nhưng kể từ khi nó được thực hiện thông qua giao diện máy chủ, có rất ít cơ hội để mọi thứ bị hỏng.
  2. Hoàn nguyên về bản sửa đổi 119, thực hiện một số thay đổi nhỏ, sau đó cam kết. Giải quyết tất cả xung đột theo accepting yours.
+0

Cảm ơn bạn, nhưng điều này sẽ thực hiện sửa đổi mới và không mong muốn sẽ vẫn ở đó – srnka

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