ฉันจะย้อนกลับการเช็คอิน TFS ได้อย่างไร


92

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

ตัวเลือกที่ 1: รับเวอร์ชันก่อนหน้า

  1. รับเวอร์ชันก่อนหน้าของแต่ละไฟล์ด้วยตนเอง
  2. ตรวจสอบการแก้ไข
  3. ล้มเหลว - การชำระเงิน (ใน VS2008) บังคับให้ฉันต้องดาวน์โหลดเวอร์ชันล่าสุด

ตัวเลือกที่ 2: รับ TFS Power Tools

  1. ดาวน์โหลด Team Foundation Power Tools
  2. ออกคำสั่งย้อนกลับจากบรรทัด cmd
  3. ล้มเหลว - จะไม่ทำงานหากมีการเปลี่ยนแปลงอื่น ๆ ที่รอดำเนินการ

ตัวเลือกที่ 3: เลิกทำการเปลี่ยนแปลงด้วยตนเอง

  1. เลิกทำการเปลี่ยนแปลงของฉันด้วยตนเองจากนั้นยอมรับชุดการเปลี่ยนแปลงใหม่

คำถาม

ฉันจะย้อนกลับไปยังชุดการเปลี่ยนแปลงก่อนหน้าใน TFS ได้อย่างไร


2
VSS ไม่มีการย้อนกลับ พวกเขามีคุณสมบัติอื่นที่มีชื่อว่า "ย้อนกลับ" แต่ในแง่ของ TFS มันคือ Destroy จริงๆ (ก) คุณสามารถทำได้จากส่วนปลายเท่านั้น จะใช้ไม่ได้หากมีการตรวจสอบการเปลี่ยนแปลงเพิ่มเติมในภายหลังการเปลี่ยนแปลงที่คุณต้องการย้อนกลับ (b) การเปลี่ยนแปลงนั้นจะลบการเปลี่ยนแปลงออกจากฐานข้อมูลอย่างถาวร
Richard Berg

1
โอ้ฉันนานแค่ไหนเพื่อความสะดวกในการย้อนกลับ VSS
Greg

2
ฉันสะดุดกับปัญหานี้เมื่อเร็ว ๆ นี้ - ทำไมห่าจึงยากที่จะย้อนกลับใน TFS ย้อนกลับเป็นหนึ่งในฟังก์ชันพื้นฐานของการควบคุมแหล่งที่มา
JohnIdol

2
นี่เป็นวิธีที่เจ็บปวดเกินไปใน TFS!
Jon Kragh

1
เปลี่ยนมาใช้ Mercurial! ฉันเปลี่ยนงานและเข้าสู่ TFS ฉันเขียนสคริปต์ PowerShell เพื่อให้ดูเหมือน Hg จากบรรทัดคำสั่งตั้งแต่นั้นมา
ซูโม่

คำตอบ:


63
  1. ดาวน์โหลดและติดตั้งเครื่องมือทีมมูลนิธิพลังงาน
  2. เปิดพรอมต์คำสั่ง Visual Studio
  3. ไปที่ไดเร็กทอรีบนระบบไฟล์ที่จับคู่ TFS หากคุณไม่ทำเช่นนี้คุณจะได้รับข้อผิดพลาด "ไม่สามารถระบุพื้นที่ทำงาน" เมื่อคุณพยายามย้อนกลับ
  4. ตรวจสอบให้แน่ใจว่าได้เช็คอินหรือเก็บเข้าลิ้นชักทุกอย่างแล้ว
  5. เรียกใช้ tfpt rollback เพื่อเปิดอินเทอร์เฟซ
  6. เลือกชุดการเปลี่ยนแปลงที่คุณต้องการย้อนกลับ
  7. ตรวจสอบเวอร์ชันใหม่ของไฟล์ที่คุณย้อนกลับ

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

หากคุณต้องการความช่วยเหลือในการพิจารณาว่าจะย้อนกลับการเปลี่ยนแปลงใดฉันพบว่าเครื่องมือตรวจสอบโค้ดในส่วนเสริมTeam Foundation Side Kicks ที่ให้บริการฟรีมีประโยชน์มาก


คุณสามารถลองวิธีนี้ แต่ขอเตือนว่าเครื่องมือไม่ได้รับการบันทึกไว้อย่างดีและแม้ว่าคุณจะผ่านข้อผิดพลาดทั้งหมดไปได้ แต่คุณอาจย้อนกลับหรือไม่สามารถย้อนกลับได้จริงๆ (ฉันเพิ่งลอง 2 ชั่วโมง)
เล่นแร่แปรธาตุ

1
เทคนิคนี้ใช้ได้ผลสำหรับฉัน คำแนะนำพื้นที่ทำงานนั้นดีมาก (และเป็นสิ่งสำคัญหากคุณกำลังจัดการกับฐานรหัสขนาดใหญ่)
อุดตัน

1
คำเตือน ... มีการจับ 22 หากคุณใช้ TFS และ Visual Studio เวอร์ชันที่ไม่ตรงกัน ฉันใช้ VS2010 กับ TFS2008 (กรณีคลาสสิกของไอทีที่ไม่จับกับ dev) และตอนนี้ TF.EXE กับ VS2010 มีการย้อนกลับ ... แต่มันใช้ไม่ได้กับ TFS2008 และ tfpt 2010 ได้ลบการย้อนกลับแล้วดังนั้นฉันจึงไม่สามารถทำแบบเดิมได้
Simon Gillbee

7
คำสั่ง 'ย้อนกลับ' ถูกย้ายออกจาก Power Tools สำหรับ VS2010 ดังนั้นตอนนี้คุณต้องพิมพ์ 'tf rollback': social.msdn.microsoft.com/Forums/en/tfspowertools/thread/…
Dan

ตั้งแต่เวอร์ชันสิงหาคม 2011 ของ TFS Power Tools ในการย้อนกลับคุณไม่จำเป็นต้องใช้บรรทัดคำสั่งอีกต่อไป
joerage

24

โซลูชันของคุณ # 1 จะใช้งานได้: 1. รับเวอร์ชันก่อนหน้าของแต่ละไฟล์ด้วยตนเอง

  1. ตรวจสอบการแก้ไข

  2. ตรวจสอบไฟล์และละเว้นการเปลี่ยนแปลงเซิร์ฟเวอร์เมื่อได้รับแจ้ง

สาเหตุที่ทำให้คุณล้มเหลวเนื่องจากคุณต้องเปิดตัวเลือก "รับเวอร์ชันล่าสุดของรายการเมื่อชำระเงิน" ปิดตัวเลือกนี้โดยไปที่ Tools ... Options ... Source Control ... Visual Studio Tema Foundation Server และยกเลิกการเลือก "Get latest version of item on check out"

ไชโย


2
เพิ่งทำแบบนี้หลังจากดิ้นรน 2 ชม. กับเครื่องมือไฟฟ้าและไม่ได้ไปไหน ... wtf อยู่กับ TFS ไม่รองรับฟังก์ชันพื้นฐานนี้ ...
เล่นแร่แปรธาตุ

ฟังก์ชันนี้ถูกเพิ่มเข้าไปใน TFS 2010 / Visual Studio 2010
Robaticus

2
เพื่อให้ชัดเจนว่านี่ไม่ใช่การย้อนกลับที่แท้จริง ได้รับเวอร์ชันเก่า ไม่ใช่สิ่งเดียวกัน.
Ryan Cromwell

+1 เพื่อชี้ให้เห็นปัญหาเกี่ยวกับรับรุ่นล่าสุดของรายการในการตั้งค่าการตรวจสอบ !
Sir Crispalot

18

การย้อนกลับถูกย้ายจาก tfpt.exe ไปยัง tf.exe ซึ่งเป็น Team Foundation Version Control Tool

TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

1
มีวิธีดำเนินการจาก Visual Studio โดยตรงหรือไม่?
Kyle Delaney

14

คุณมีสองตัวเลือกในการย้อนกลับ (ย้อนกลับ) ชุดการเปลี่ยนแปลงใน TFS 2010 Version Control ตัวเลือกแรกคือการใช้ส่วนติดต่อผู้ใช้ (หากคุณติดตั้งTFS 2010 Power Toolsเวอร์ชันล่าสุดไว้)

ย้อนกลับการเปลี่ยนแปลงใน UI สำหรับ TFS 2010

อีกทางเลือกหนึ่งคือการใช้แอปพลิเคชันบรรทัดคำสั่งควบคุมเวอร์ชัน TFS 2010:

tf.exe rollback

ฉันมีข้อมูลเกี่ยวกับทั้งสองวิธีในบล็อกโพสต์ของฉันที่นี่: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx


14

อีกวิธีหนึ่งในการทำให้ตัวเลือก 1 ของคุณทำงานได้คือการย้อนลำดับขั้นตอน:

  1. ตรวจสอบรายการ
  2. รับเวอร์ชันเฉพาะเป็นเวอร์ชันเก่า
  3. เช็คอิน (ละเว้นกล่องโต้ตอบ "เวอร์ชันเซิร์ฟเวอร์คำเตือนใหม่กว่า") หรือในส่วนความขัดแย้งของกล่องโต้ตอบการเปลี่ยนแปลงที่รอดำเนินการแก้ไขข้อขัดแย้งโดยการรักษาเวอร์ชันภายในเครื่อง

สิ่งนี้จะใช้ได้แม้ว่าคุณจะตั้งค่า Get Latest On Checkout ก็ตาม


1
ไม่ได้ผลสำหรับฉัน แต่นั่นต้องเป็นเพราะพินเฮดบางตัวตั้งค่า TFS ด้วยนโยบายโง่ ๆ
SHODAN

5

สำหรับการอ้างอิงถ้าคุณกำลังใช้TFS 2010นี่คือการเชื่อมโยงไปย้อนกลับคำสั่ง (ทีมมูลนิธิการควบคุมเวอร์ชัน)คู่มือ

ย้อนกลับโดยเฉพาะอย่างยิ่งการแก้ไขไปที่Visual Studio Command Prompt (2010)ไปยังไดเรกทอรี TFS พื้นที่ทำงานของคุณและพิมพ์คำสั่ง:

tf rollback /changeset:C12345

12345หมายเลขชุดการเปลี่ยนแปลงของคุณอยู่ที่ไหน หลังจากนี้ระบบจะแสดงบันทึกสิ่งที่ทำและคุณจะต้องแยกแยะความขัดแย้งในการผสาน



4

การไม่มีตัวเลือกการย้อนกลับเป็นคุณสมบัติของ TFS จริงๆ;)

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

  1. ตรวจสอบเวอร์ชันเฉพาะของการเปลี่ยนแปลงที่คุณต้องการ
  2. แก้ไข -> เลือกทั้งหมด -> คัดลอกข้อความในไฟล์
  3. ชำระเงินเวอร์ชันใดก็ได้ของไฟล์ที่อยู่บนเซิร์ฟเวอร์
  4. วางทับไฟล์แล้วเช็คอิน

และตอนนี้ชุดการเปลี่ยนแปลงระดับกลางทั้งหมดของคุณก่อนการย้อนกลับจะถูกบันทึกด้วยเช่นกัน! ช่างเป็นคุณสมบัติที่ยอดเยี่ยมจริงๆ!


ตอนแรกฉันคิดว่านี่เป็นการประชดประชัน แต่วิธีนี้อาจใช้งานได้จริงสำหรับพวกเราที่ไม่โชคดีพอที่จะได้รับอนุญาตให้ย้อนกลับ
EBarr

เว้นแต่จะมีการเปลี่ยนแปลงในภายหลังกับไฟล์เดียวกันกับที่คุณต้องการเก็บไว้
Robert Jeppesen

หยาบคาย แต่นี่เป็นวิธีเดียวที่ฉันสามารถทำได้ใน TFS หากฉันทำการชำระเงินแล้วดึง TFS เวอร์ชันเก่าจะ AutoMerge เป็นเวอร์ชันล่าสุดเมื่อใดก็ตามที่ฉันพยายามตรวจสอบอีกครั้ง
สตีฟ

1

หากคุณทำการเช็คอิน 1 ครั้งและคุณเพียงแค่ต้องการเลิกทำนั่นจะมีการเปลี่ยนแปลง # ที่เชื่อมโยงอยู่ ทำประวัติในโฟลเดอร์ที่เป็นปัญหาเพื่อดูชุดการเปลี่ยนแปลงที่ไม่ถูกต้อง เปิดขึ้นเพื่อดูรายละเอียด (ไฟล์ทั้งหมดมีการเปลี่ยนแปลง ฯลฯ )

ฉันเชื่อว่าคุณสามารถกู้คืนหรือเลิกทำการเปลี่ยนแปลงจากหน้าจอนั้นได้ แต่ Visual Studio ของฉันเกิดขัดข้องเมื่อฉันพยายามทำสิ่งนี้ / ถอนหายใจ - ฉันแบ่งปันความเจ็บปวดของคุณแน่นอน

ฉันจะดาวน์โมด TFS บนไซต์นี้ได้ที่ไหน?


ไม่การย้อนกลับจาก UI ประวัติถูกเพิ่มใน TFS 2010 เท่านั้น
Richard Berg

1

ฉันคิดว่า Team Foundation Power Tools เป็นหนทางที่จะไป หากมีการเปลี่ยนแปลงที่รอดำเนินการอยู่คุณสามารถย้ายไปยังชั้นวางจากนั้นเลิกทำหรือตรวจสอบการเปลี่ยนแปลงที่รอดำเนินการทั้งหมดก่อนที่จะรันคำสั่งย้อน โปรดดูhttp://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glanceสำหรับข้อมูลเพิ่มเติม


1

Ben Scheirman - กล่องโต้ตอบรายละเอียดการเปลี่ยนแปลงไม่มีฟังก์ชันย้อนกลับ


1

ตัวเลือกหนึ่งคือTFSPlus Visual Studio Addin นี้เพิ่มคำสั่ง Get This Version ในหน้าต่างประวัติ หากคุณมีไฟล์ที่เช็คเอาต์ไฟล์นั้นจะแทนที่ด้วยเวอร์ชันนั้น หากคุณทำการเช็คอินในภายหลังคุณจะทำการย้อนกลับไปยังเวอร์ชันนั้นได้อย่างมีประสิทธิภาพ

มันทำงานกับไฟล์แต่ละไฟล์แทนที่จะเป็นชุดการเปลี่ยนแปลงทั้งหมด



1

รับเวอร์ชันเฉพาะ

ในเวอร์ชัน ประเภทหล่นลงเลือกประเภทเป็นเซ็ตการแก้ไข

ใช้ปุ่มชุดการเปลี่ยนแปลง ... เพื่อค้นหาชุดการเปลี่ยนแปลงของคุณหรือเพียงพิมพ์ถ้าคุณรู้หมายเลขนี้

หลังจากที่คุณมีการเปลี่ยนแปลงเฉพาะ

เช็คเอาท์

เช็คอิน


0

โซลูชันเหล่านี้ไม่ได้ผลสำหรับฉันเลยโซลูชัน Dave Roberts ที่ใกล้เคียงที่สุดกับสิ่งที่ฉันใช้งานได้จริง ฉันไม่ได้เปิดใช้งาน Get เวอร์ชันล่าสุดเมื่อเช็คเอาต์ แต่ดูเหมือนว่าจะเป็นนโยบายของเซิร์ฟเวอร์

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

ฉันจะไปเปรียบเทียบกับเวอร์ชันที่ระบุแล้วคัดลอกไฟล์ทั้งหมดจากนั้นวางไว้ที่ด้านบนของไฟล์เก่า

ยังมีวิธีที่ง่ายกว่านี้อีก!


0

โซลูชันข้างต้นสำหรับ TFS2008 TFS2010 มีคุณสมบัติย้อนกลับในตัว ดูนี้บทความสำหรับรายละเอียด


ยกเว้นว่า VS2010 (tf) ใช้ไม่ได้กับ TFS2008 และเนื่องจาก TFPT 2010 ไม่มีการย้อนกลับอีกต่อไปคุณจึงถูกยกเลิก
Simon Gillbee

0

ติดตั้งTFS Power Tools เวอร์ชันล่าสุด (สิงหาคม 2011) และคุณสามารถคลิกขวาที่ชุดการเปลี่ยนแปลงแล้วเลือก "ย้อนกลับการเปลี่ยนแปลงทั้งหมด" มันไม่ได้ง่ายไปกว่านั้นอีกแล้ว

มีให้ที่นี่: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

มีคำใบ้อยู่ภายใต้Team Explorer Enhancementsในหน้าด้านบน:

สิ่งใหม่ในรุ่นนี้คือความสามารถในการ [.. ] ย้อนกลับการเปลี่ยนแปลงในการควบคุมเวอร์ชันได้อย่างง่ายดาย

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