Sự khác biệt giữa các lần quay lại giữa các ứng dụng khác nhau và một lần nữa.


198

Tôi muốn đảo ngược các thay đổi từ một trong những đăng ký của tôi. Trong menu ngữ cảnh nhấp chuột phải của danh sách thay đổi cụ thể, có hai tùy chọn sau:

  • Quay lại ...
  • Back Out Gửi Changelist

sự khác biệt giữa hai cái đó là gì? Trong những tình huống tôi nên sử dụng một trong hai?


3
Trong trường hợp này, 'Backel gửi Changelist' là lựa chọn phù hợp cho tình huống của tôi (chỉ muốn hoàn nguyên các thay đổi từ đăng ký). Cảm ơn câu trả lời tuyệt vời.
Dave Andersen

Câu trả lời:


222

Cả hai thao tác này đều khôi phục một tập hợp các tệp về trạng thái trước đó và về cơ bản là các cách hoàn tác nhanh hơn, an toàn hơn so với sử dụng p4 obliteratelệnh (và bạn không cần quyền truy cập của quản trị viên để sử dụng chúng).

Trong trường hợp "Rollback ...", đây có thể là bất kỳ số lượng tệp nào, thậm chí là toàn bộ kho. Bạn có thể yêu cầu nó quay trở lại một bản sửa đổi, thay đổi hoặc nhãn cụ thể. Các tệp được khôi phục về trạng thái tại thời điểm tạo bản sửa đổi, thay đổi hoặc nhãn đó.

Trong trường hợp "Back Out gửi Changelist #####", thao tác khôi phục được giới hạn ở các tệp đã được gửi trong changelist #####. Các tệp đó được khôi phục về trạng thái trước khi bạn gửi thay đổi đó, miễn là không có thay đổi nào được thực hiện đối với các tệp đó kể từ đó. Nếu những thay đổi tiếp theo đã được thực hiện đối với bất kỳ tệp nào trong số đó, Perforce sẽ cho bạn biết rằng các tệp đó đã hết hạn. Bạn sẽ phải đồng bộ hóa với sửa đổi đầu và sau đó giải quyết sự khác biệt. Bằng cách này, bạn không vô tình ghi lại bất kỳ thay đổi nào mà bạn thực sự muốn giữ.

Cả hai hoạt động hoạt động bằng cách cơ bản gửi bản sửa đổi cũ như bản sửa đổi mới. Khi bạn thực hiện "Phục hồi ...", bạn đang khôi phục các tệp về trạng thái tại thời điểm cụ thể , bất kể điều gì đã xảy ra với chúng kể từ đó. Khi bạn thực hiện "Thoát ra ...", bạn đang cố gắng hoàn tác các thay đổi bạn đã thực hiện tại một thời điểm cụ thể , trong khi vẫn duy trì các thay đổi đã xảy ra kể từ đó.


18
Tôi nghĩ rằng "Back Out Gửi Changelist #####" sẽ cố gắng giữ các thay đổi được thực hiện cho cùng một tệp sau danh sách thay đổi đã cho.
Ian Ringrose

1
@Ian: Quan sát tốt. Khi tôi viết điều này, tôi đã suy nghĩ dọc theo dòng sửa chữa ngay lập tức một lỗi. Như thường lệ, nếu bạn nhận ra rằng bạn muốn hoàn tác một cái gì đó muộn hơn , nó sẽ phức tạp hơn. Tôi tinh chỉnh câu trả lời của tôi.
quạ

@IanRingrose Tôi vừa thực hiện thao tác "rút lui" và có vẻ như nó không cố gắng giữ những thay đổi đã được thực hiện sau đó. Tôi đã phải thực hiện đồng bộ hóa và sau đó giải quyết để nhận lại các thay đổi đã được gửi sau khi sao lưu.
gdw2

@ gdw2, tôi nghĩ rằng nếu bạn đã thực hiện "Phục hồi" thì bạn sẽ không có tùy chọn "giải quyết để lấy lại các thay đổi đã được gửi sau ..."
Ian Ringrose

1
Mặc dù các tệp được khôi phục về trạng thái của chúng, nhưng siêu dữ liệu thì không. Cố gắng khôi phục tích hợp từ một chi nhánh khác sẽ không cho phép bạn thực hiện lại tích hợp đó vì siêu dữ liệu cho biết nó đã được tích hợp.
Will Brode

17

Đảo ngược một đệ trình thay đổi

Bạn không thể hoàn tác việc gửi thay đổi thành công, nhưng bạn có thể đảo ngược các thay đổi đã gửi trước đó theo hai cách:

Phục hồi khôi phục một tập tin hoặc tập hợp các tập tin trở lại một thay đổi, ngày hoặc sửa đổi được chỉ định. Mọi thay đổi được thực hiện sau thời điểm đó sẽ không được giữ lại. Back out loại bỏ các thay đổi cụ thể được thực hiện tại một thay đổi, ngày hoặc sửa đổi nhất định nhưng cho phép người dùng giữ các thay đổi được thực hiện trong các lần sửa đổi tiếp theo.

Để biết chi tiết, vui lòng tham khảo https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html


8

Backout khôi phục hoặc hoàn tác các thay đổi của chúng tôi. Cách thức thực hiện điều này là, P4 hoàn tác các thay đổi trong thay đổi (mặc định hoặc mới) trên không gian làm việc cục bộ của chúng tôi. Sau đó chúng tôi phải gửi / cam kết thay đổi dự phòng này khi chúng tôi thực hiện các danh sách thay đổi khác. Phần thứ hai rất quan trọng ở đây, vì nó không tự động sao lưu công cụ thay đổi trên máy chủ, chúng tôi phải gửi công cụ thay đổi dự phòng (điều này có ý nghĩa sau khi bạn thực hiện, nhưng ban đầu tôi cho rằng nó tự động làm điều đó).

Như được chỉ ra bởi những người khác, Rollback có sức mạnh lớn hơn - Nó có thể khôi phục các thay đổi cho một ngày cụ thể, thay đổi hoặc sửa đổi #


4

Phục hồi ... sẽ nhắc bạn chọn một thư mục để khôi phục, tức là, nó sẽ hoạt động trên các thư mục cụ thể và bạn có thể quay lại nhãn hoặc danh sách thay đổi hoặc ngày. Back out hoạt động trên các tập tin trong thay đổi cụ thể.


4

Tôi giải thích điều này cho người dùng bằng cách so sánh các thay đổi Perforce với một ngăn xếp (từ các cấu trúc dữ liệu).

Sao lưu loại bỏ một mục từ bất cứ nơi nào trong ngăn xếp.

Lùi lại sẽ loại bỏ n vật phẩm từ đầu ngăn xếp.


0

Đơn giản nhất, sự khác biệt là một trong số nhiều:

  • Backout ra khỏi một thay đổi duy nhất (cho dù gần đây nhất hay không). tức là nó hoàn tác một thay đổi duy nhất.
  • Rollback cuộn lại thay đổi nhiều như nó cần để có được một thay đổi trước đó. tức là nó hoàn tác nhiều thay đổi.

Tôi đã từng quên cái nào là cái cuối cùng và phải tìm kiếm nó nhiều lần. Để khắc phục vấn đề này, hãy tưởng tượng việc quay trở lại như một số vòng quay sau đó hy vọng thực tế rằng rollback là số nhiều sẽ giúp bạn (và tôi!) Nhớ cái nào là cái nào. Backout âm thanh 'ít số nhiều' hơn rollback với tôi. Hãy tưởng tượng ủng hộ ra khỏi một đơn chỗ đỗ xe.

Vì vậy, ghi nhớ là:

  • Phục hồi → nhiều vòng quay
  • Backout → trở lại trên một đơn xe bãi đậu xe không gian

Tôi hi vọng cái này giúp được!

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.