2010-03-19 33 views
6

Tôi đang sử dụng SVN (TortoiseSVN) và thường được đưa vào các tình huống sau đây:SVN Version Rollback Câu hỏi

tôi muốn loại bỏ bất kỳ thay đổi kể từ khi một cụ thể (cũ) sửa đổi và biến tất cả các file trở lại cụ thể này (cũ) phiên bản. Sau đó, tôi muốn tiếp tục làm việc như thể bản sửa đổi cụ thể (cũ) này là phiên bản mới nhất, tức là tôi muốn có thể cam kết sửa đổi cũ cụ thể dưới dạng bản sửa đổi mới.

Tôi đã tìm thấy một số giải pháp cho vấn đề này (ví dụ: stackoverflow.com/questions/402159/roll-back-or-revert-entire-svn-repository-to-an-older-revision hoặc rustyrazorblade.com/2007/ 04/cách-to-roll-back-cam kết-to-an-trước-phiên bản-of-a-kho-in-svn /).

Tuy nhiên, tôi tự hỏi nếu có cách đơn giản để quay lại bản sửa đổi cụ thể. Tôi nghĩ rằng kiểm soát phiên bản chỉ là tốt cho những thứ như vậy (hoặc tôi hiểu lầm một cái gì đó?).

Có lệnh/nút đơn giản hay không. mà có một bản cập nhật kho lưu trữ cục bộ của tôi để sửa đổi cũ và tuyên bố nó là mới nhất?

Vì tôi cho rằng không có chức năng "tích hợp sẵn" để thực hiện việc này, tôi muốn biết lý do khiến các nhà phát triển đưa ra quyết định không tích hợp tính năng này. Có ai biết điều này không?

Trả lời

3

Vì lý do gì đó, dân gian SVN đã quyết định tham chiếu đến điều này là "Đảo ngược hợp nhất". Trong hộp thoại Hợp nhất TortoiseSVN, hãy chọn hộp Đảo ngược hợp nhất và đảm bảo rằng hộp sửa đổi đọc một cái gì đó như HEAD-324 (trong đó 324 là phiên bản bạn sẽ quay lại).

-2

Tôi sẽ di chuyển thân cây hiện tại vào nhánh để giữ an toàn và sau đó sao chép ở số sửa đổi bạn muốn quay trở lại làm thân cây.

+0

Điều này có vẻ quá phức tạp đối với tôi. Ngoài ra nếu ai đó cố gắng cập nhật hoặc cam kết trong khi bạn đang trong quá trình làm điều này, họ sẽ tự hỏi điều gì đã xảy ra với kho lưu trữ. – MatrixFrog

2

Tôi không chắc chắn nếu tôi hiểu bạn một cách chính xác kể từ ví dụ như các liên kết mà bạn trích dẫn (Roll back or revert entire svn repository to an older revision) đã có giải pháp: ngược merge (như Powerlord đề cập).

Từ TSVN merge-tài liệu:

Nếu bạn muốn kết hợp thay đổi trở ra của bản sao làm việc của bạn, để trở lại một sự thay đổi mà đã được cam kết, chọn các phiên bản để Hoàn nguyên và hãy đảm bảo chọn hộp hợp nhất Đảo ngược .

Tôi nghĩ điều quan trọng cần lưu ý là bạn không "khôi phục các thay đổi" nhưng "hợp nhất chúng" và sau đó cam kết lại. Bạn "tiếp tục tiến lên" để nói (bởi vì không có "đảo ngược" trong SVN; nó là kiểm soát phiên bản sau khi tất cả, không phải "quên mọi thứ" :)).

Nếu bạn vô tình cam kết điều gì đó vì lý do nào đó hoàn toàn không thể ở trong kho, bạn phải (và có thể) có độ dài lớn hơn để "lấy lại" (cũng được mô tả trong chuỗi bạn đã liên kết: sao lưu và khôi phục) .

3

Trong TortoiseSVN có cách dễ dàng hơn (hoặc ít nhất là trực quan hơn IMHO) để thực hiện việc này. Tôi cho rằng những gì nó thực sự làm đằng sau hậu trường là "đảo ngược hợp nhất" mà những người khác đã đề cập.

  1. Nhấp chuột phải vào tệp/thư mục bạn muốn quay lại.
  2. Nhấp vào "Hiển thị nhật ký" từ trình đơn TortoiseSVN.
  3. Chọn (các) bản sửa đổi bạn muốn hoàn tác.
  4. Nhấp chuột phải vào các bản chỉnh sửa đó.
  5. Chọn "Hoàn nguyên thay đổi từ sửa đổi này" - không bị nhầm lẫn với "Hoàn nguyên về bản sửa đổi này"!
  6. Nhấp vào "Có"
  7. Hãy nhớ rằng điều này chỉ thay đổi bản sao làm việc của bạn. Xác nhận rằng điều này đã làm những gì bạn mong đợi, và sau đó cam kết, đặt nội dung nào đó vào thông điệp tường trình của bạn về "quay lại" hoặc "hợp nhất ngược"
+0

Điều này thực sự khá trực quan để làm, cảm ơn! –