อะไรคือความแตกต่างระหว่าง“ การย้อนกลับ…” และ“ รายการการสับเปลี่ยนที่ส่งออกไปหลัง #####” ใน Perforce P4V


198

ฉันต้องการย้อนกลับการเปลี่ยนแปลงจากหนึ่งในเช็คอินของฉัน ในเมนูบริบทคลิกขวาของรายการเปลี่ยนแปลงเฉพาะมีสองตัวเลือกดังนี้:

  • ย้อนกลับ ...
  • รายการด้านล่างส่งออกรายการเปลี่ยนแปลง

ความแตกต่างระหว่างสองสิ่งนี้คืออะไร? ฉันควรใช้ทั้งสองสถานการณ์ในสถานการณ์ใด


3
ในกรณีนี้ 'รายการที่ถูกส่งออกรายการที่ถูกลบออก' เป็นตัวเลือกที่เหมาะสมสำหรับสถานการณ์ของฉัน (ต้องการยกเลิกการเปลี่ยนแปลงจากเช็คอินเท่านั้น) ขอบคุณสำหรับคำตอบที่ดี
Dave Andersen

คำตอบ:


222

การดำเนินการทั้งสองนี้จะเรียกคืนชุดไฟล์เป็นสถานะก่อนหน้าและเร็วกว่าโดยทั่วไปจะเป็นวิธีที่ปลอดภัยกว่าในการยกเลิกข้อผิดพลาดมากกว่าการใช้p4 obliterateคำสั่ง

ในกรณีของ "Rollback ... " อาจเป็นไฟล์จำนวนเท่าใดก็ได้แม้แต่คลังทั้งหมด คุณสามารถบอกให้ย้อนกลับไปยังการแก้ไขรายการเปลี่ยนแปลงหรือฉลากเฉพาะ ไฟล์จะถูกกู้คืนสู่สถานะที่เคยอยู่ในเวลาที่สร้างการแก้ไขรายการการเปลี่ยนแปลงหรือเลเบล

ในกรณีของ "รายการทดแทนที่ถูกส่งออกไปกลับ #####" การดำเนินการคืนค่าจะถูก จำกัด เฉพาะไฟล์ที่ส่งมาในรายการเปลี่ยนแปลง ##### ไฟล์เหล่านั้นจะถูกกู้คืนสู่สถานะเดิมก่อนที่คุณจะส่งรายการการเปลี่ยนแปลงนั้นหากไม่มีการเปลี่ยนแปลงใด ๆ กับไฟล์เหล่านั้นตั้งแต่นั้นมา หากมีการเปลี่ยนแปลงครั้งต่อไปในไฟล์เหล่านั้น Perforce จะแจ้งให้คุณทราบว่าไฟล์เหล่านั้นล้าสมัยแล้ว คุณจะต้องซิงค์กับการแก้ไขหัวแล้วแก้ไขความแตกต่าง วิธีนี้คุณจะไม่ปิดบังการเปลี่ยนแปลงใด ๆ ที่คุณต้องการเก็บไว้โดยไม่ได้ตั้งใจ

การดำเนินการทั้งสองทำงานโดยการส่งการแก้ไขเก่าเป็นการแก้ไขใหม่ เมื่อคุณทำการ "ย้อนกลับ ... " คุณกำลังกู้คืนไฟล์กลับสู่สถานะที่พวกเขาอยู่ ณ เวลาใดเวลาหนึ่งโดยไม่คำนึงถึงสิ่งที่เกิดขึ้นกับพวกเขาตั้งแต่นั้นมา เมื่อคุณทำการ "ย้อนกลับ ... " คุณกำลังพยายามยกเลิกการเปลี่ยนแปลงที่คุณทำ ณ เวลาใดเวลาหนึ่งโดยที่ยังคงรักษาการเปลี่ยนแปลงที่เกิดขึ้นตั้งแต่นั้นมา


18
ฉันคิดว่า "รายการที่ถูกเปลี่ยนกลับถูกส่งออก #####" จะพยายามเก็บการเปลี่ยนแปลงที่ทำกับไฟล์เดียวกันหลังจากรายการการเปลี่ยนแปลงที่กำหนด
Ian Ringrose

1
@Ian: สังเกตดี เมื่อผมเขียนนี้ผมคิดตามสายของทันทีการแก้ไขความผิดพลาด ตามปกติแล้วหากคุณรู้ว่าคุณต้องการยกเลิกบางสิ่งในภายหลังมันจะซับซ้อนมากขึ้น ฉันกลั่นกรองคำตอบของฉัน
กา

@IanRingrose ฉันเพิ่งทำการผ่าตัด "backout" และดูเหมือนว่ามันจะไม่พยายามเก็บการเปลี่ยนแปลงที่เกิดขึ้นหลังจากนั้น ฉันต้องทำข้อมูลให้ตรงกันแล้วจึงแก้ไขเพื่อให้ได้รับการเปลี่ยนแปลงกลับซึ่งถูกส่งไปหลังจากการแบ็คเอาต์
gdw2

@ gdw2 ฉันคิดว่าถ้าคุณทำ "ย้อนกลับ" คุณจะไม่ได้รับตัวเลือกในการ "แก้ไขเพื่อรับการเปลี่ยนแปลงกลับที่ถูกส่งหลังจาก ... "
Ian Ringrose

1
แม้ว่าไฟล์จะได้รับการกู้คืนกลับสู่สถานะที่เป็นอยู่ แต่ข้อมูลเมตาไม่ได้เป็นเช่นนั้น การพยายามย้อนกลับการรวมจากสาขาอื่นจะไม่อนุญาตให้คุณทำการรวมอีกครั้งเพราะข้อมูลเมตาบอกว่ารวมแล้ว
Will Brode

17

ย้อนกลับการส่งรายการการเปลี่ยนแปลง

คุณไม่สามารถยกเลิกการส่งการเปลี่ยนแปลงรายการที่ประสบความสำเร็จ แต่คุณสามารถย้อนกลับการเปลี่ยนแปลงที่ส่งก่อนหน้านี้ได้สองวิธี:

การย้อนกลับจะเรียกคืนไฟล์หรือชุดของไฟล์กลับไปยังรายการการเปลี่ยนแปลงวันที่หรือการแก้ไขที่ระบุ การเปลี่ยนแปลงใด ๆ ที่ทำหลังจากเวลานั้นจะไม่ถูกเก็บไว้ Back outลบการเปลี่ยนแปลงเฉพาะที่ทำในรายการเปลี่ยนแปลงวันที่หรือการแก้ไขที่กำหนด แต่อนุญาตให้ผู้ใช้ทำการเปลี่ยนแปลงในการแก้ไขครั้งต่อไป

สำหรับรายละเอียดโปรดดูที่ https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html


8

Backout กู้คืนหรือยกเลิกการเปลี่ยนแปลงของเรา วิธีการทำเช่นนี้คือ P4 เลิกทำการเปลี่ยนแปลงในรายการเปลี่ยนแปลง (ค่าเริ่มต้นหรือใหม่) ในพื้นที่ทำงานของเรา จากนั้นเราจะต้องส่ง / คอมมิชลิสต์การสำรองข้อมูลนี้เมื่อเราทำการเปลี่ยนแปลงอื่น ๆ ส่วนที่สองมีความสำคัญที่นี่เนื่องจากมันไม่ได้ทำการแบ็คอัพรายการการเปลี่ยนแปลงบนเซิร์ฟเวอร์โดยอัตโนมัติเราจึงต้องส่งรายการการเปลี่ยนแปลงแอคเคาท์ (ซึ่งเหมาะสมหลังจากที่คุณทำ

ตามที่คนอื่น ๆ รู้จักการย้อนกลับมีพลังมากขึ้น - สามารถคืนค่าการเปลี่ยนแปลงในวันที่เฉพาะรายการเปลี่ยนแปลงหรือการแก้ไข #


4

ย้อนกลับ ... จะแจ้งให้คุณเลือกโฟลเดอร์ที่จะย้อนกลับนั่นคือจะทำงานในโฟลเดอร์เฉพาะและคุณสามารถย้อนกลับไปที่ป้ายกำกับหรือรายการหรือวันที่ Back out ใช้งานได้กับไฟล์ในรายการการเปลี่ยนแปลงเฉพาะ


4

ฉันอธิบายสิ่งนี้กับผู้ใช้โดยเปรียบเทียบ Perforce changelists กับ stack (จากโครงสร้างข้อมูล)

การสำรองออกจะลบหนึ่งรายการจากที่ใดก็ได้ในสแต็ก

การย้อนกลับจะลบรายการ n ออกจากด้านบนของสแต็ก


0

ที่ง่ายที่สุดความแตกต่างคือหนึ่งในเสียงส่วนใหญ่:

  • Backout backs ออกจากรายการเปลี่ยนแปลงเดียว (ไม่ว่าจะล่าสุดหรือไม่ก็ได้) นั่นคือยกเลิกการเปลี่ยนแปลงรายการเดียว
  • ย้อนกลับย้อนกลับการเปลี่ยนแปลงมากที่สุดเท่าที่จำเป็นเพื่อที่จะได้ไปที่รายการก่อนหน้า เช่นยกเลิกการเปลี่ยนแปลงหลายรายการ

ฉันเคยลืมว่าอันไหนอยู่ที่ไหนและท้ายที่สุดต้องดูมันหลายครั้ง เมื่อต้องการแก้ไขปัญหานี้ให้จินตนาการย้อนกลับไปในหลายรอบแล้วหวังว่าการย้อนกลับนั้นเป็นพหูพจน์จะช่วยคุณ (และฉัน!) จำได้ว่าอันไหนเป็นอันไหน เสียงBackoutฟัง 'พหูพจน์น้อยกว่าการย้อนกลับมาหาฉัน ลองนึกภาพการสำรองจากที่จอดรถเดียว

ดังนั้นตัวช่วยจำคือ:

  • ย้อนกลับ →การหมุนหลายครั้ง
  • Backout →ถอยกลับออกจากที่จอดรถเดียว

ฉันหวังว่านี่จะช่วยได้!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.