การเก็บเข้าลิ้นชักใน TFS คืออะไร


317

การเก็บเข้าลิ้นชักใน TFS เป็นเพียงการตรวจสอบที่นุ่มนวลเพื่อให้สมาชิกในทีมอื่นเห็นรหัสต้นฉบับหรือไม่

เช่นรหัสที่เก็บไว้จะไม่ถูกรวบรวมใช่มั้ย

คำตอบ:


453

การเก็บเข้าลิ้นชักมีประโยชน์หลายอย่าง คนหลักคือ:

  1. การสลับบริบท : การบันทึกงานในงานปัจจุบันของคุณเพื่อให้คุณสามารถสลับไปยังงานที่มีลำดับความสำคัญสูงอื่นได้ สมมติว่าคุณกำลังทำงานกับคุณสมบัติใหม่โดยคำนึงถึงธุรกิจของคุณเมื่อเจ้านายของคุณทำงานและพูดว่า "Ahhh! Bug Bug Bug!" และคุณต้องวางการเปลี่ยนแปลงปัจจุบันของคุณในคุณสมบัติและไปแก้ไขข้อผิดพลาด คุณสามารถวางงานของคุณลงบนฟีเจอร์แก้ไขข้อผิดพลาดจากนั้นกลับมาอีกครั้งและไม่ได้สิบสองเพื่อแก้ไขการเปลี่ยนแปลงของคุณในภายหลัง
  2. การแชร์เซ็ตการแก้ไข: หากคุณต้องการแชร์เซ็ตการแก้ไขของรหัสโดยไม่ทำการเช็คอินคุณสามารถทำให้ผู้อื่นเข้าถึงได้ง่ายโดยการวางชั้นวางไว้ สิ่งนี้สามารถใช้เมื่อคุณส่งงานที่ไม่สมบูรณ์ให้กับบุคคลอื่น (วิญญาณที่น่าสงสาร) หรือหากคุณมีรหัสการทดสอบบางประเภทคุณจะไม่เคยตรวจสอบเลยว่ามีคนอื่นต้องการเรียกใช้ h / tสำหรับคำตอบอื่น ๆ เกี่ยวกับการใช้รีวิวนี้เป็นความคิดที่ดีมาก
  3. การบันทึกความคืบหน้าของคุณ : ในขณะที่คุณกำลังทำงานกับคุณสมบัติที่ซับซ้อนคุณอาจพบว่าตัวเองอยู่ใน 'จุดดี' ที่คุณต้องการบันทึกความคืบหน้าของคุณ นี่เป็นเวลาที่เหมาะสำหรับวางโค้ดของคุณ สมมติว่าคุณกำลังแฮ็ก CSS / HTML เพื่อแก้ไขข้อบกพร่องในการเรนเดอร์ โดยปกติแล้วคุณจะตบมันวนซ้ำเป็นไปได้ทั้งหมดที่คุณสามารถคิดจนกว่ามันจะดูขวา อย่างไรก็ตามเมื่อมันถูกต้องคุณอาจต้องการลองและกลับไปในการทำความสะอาดมาร์กอัปของคุณเพื่อให้คนอื่นสามารถเข้าใจสิ่งที่คุณทำก่อนที่คุณจะตรวจสอบในกรณีนี้คุณสามารถวางโค้ดเมื่อทุกอย่างถูกต้อง จากนั้นคุณมีอิสระที่จะไปและปรับโครงสร้างมาร์กอัปของคุณรู้ว่าถ้าคุณทำลายมันอีกครั้งโดยไม่ตั้งใจคุณสามารถย้อนกลับและรับเซ็ตการแก้ไขได้เสมอ

การใช้งานอื่น ๆ ?


16
เมื่อการเก็บเซ็ตการแก้ไขหนึ่งสามารถเก็บรักษาการเปลี่ยนแปลงที่ค้างอยู่ภายในเครื่อง (มีประโยชน์สำหรับ 2 หรือ 3) หรือไม่ (มีประโยชน์สำหรับ 1)
dumbledad

2
เอกสารของ Visual Studio ในการเก็บเข้าลิ้นชักมีบางบริบทเพิ่มเติมและวิธีการข้อมูล
นักพัฒนาแบบองค์รวม

1
มันยังถูกใช้โดยบิลด์ Gated เพื่อเก็บการเปลี่ยนแปลงจนกว่าจะทำการคอมมิทขั้นสุดท้ายได้
ฉีกØstergaard

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

เพิ่งรู้ว่าไฟล์ยังคงอยู่เมื่อคุณเลือกตัวเลือกเพื่อรักษาเซ็ตการแก้ไขในเครื่อง
ฌาค

105

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

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

FYI: วิธีที่ดีที่สุดในการตรวจสอบชั้นวางคือการใช้คำสั่งต่อไปนี้

ตรวจสอบ tfpt / shelveset: shelvesetName; userName

tfpt เป็นส่วนหนึ่งของเครื่องมือพื้นฐานของทีม


6
ควรสังเกตว่าจะไม่มีเหตุผลในวันนี้ที่จะแก้ไขการเปลี่ยนแปลงและข้อมูลอีเมลด้วยตนเอง กระบวนการที่ทันสมัยคือการขอตรวจสอบรหัส
ChiefTwoPencils

34

ถูกตัอง. หากคุณสร้างชั้นวางคนอื่นที่รับล่าสุดจะไม่เห็นรหัสของคุณ

มันทำให้การเปลี่ยนแปลงรหัสของคุณไปยังเซิร์ฟเวอร์ซึ่งอาจจะดีกว่าการสำรองข้อมูลพีซีที่ทำงานของคุณ

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

คนอื่นสามารถเห็นชั้นวางของคุณ (ฉันคิดว่านี่อาจเป็นตัวเลือก) เพื่อให้พวกเขาสามารถตรวจสอบรหัสของคุณก่อนที่จะเช็คอิน


ถูกตัอง. หากคุณสร้างชั้นวางคนอื่นที่รับล่าสุดจะไม่เห็นรหัสของคุณ หมายความว่า 1) เมื่อฉันจะตรวจสอบรหัสใน TFS แล้วสมาชิกในทีมของฉันจะเห็นรหัสในระบบของเขาถ้าเขาจะได้รับล่าสุด? 2) นั่นหมายความว่าบัญชีใดที่เราได้วางรหัสไว้จากบัญชีเดียวกันเราจะเห็นรหัสที่ถูกจัดเก็บ? โปรดถูกต้องฉันหากฉันผิด
Krish

คุณสามารถเห็นชั้นวางของคนอื่นถ้าคุณต้องการ
teedyay

3
เพื่อความแม่นยำยิ่งขึ้น "คนอื่น ๆ ที่เพิ่งได้รับล่าสุดจะไม่ดาวน์โหลดรหัสของคุณ"
sergiol

18

สิ่งหนึ่งที่พลาดไม่ได้ในการอภิปรายเหล่านี้คือวิธีที่คุณย้อนกลับไปใช้เครื่องจักรเดิมที่คุณเปลี่ยนการเปลี่ยนแปลง บางทีอาจเห็นได้ชัดที่สุด แต่ไม่ใช่สำหรับฉัน ฉันเชื่อว่าคุณดำเนินการเลิกทำการเปลี่ยนแปลงที่รอดำเนินการ - ใช่ไหม?

ฉันเข้าใจกระบวนการดังต่อไปนี้:

  1. หากต้องการระงับการเปลี่ยนแปลงที่รอดำเนินการในปัจจุบันให้คลิกขวาที่โครงการ Shelve เพิ่มชื่อชั้นวาง
  2. สิ่งนี้จะบันทึก (หรือ Shelve) การเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ (ไม่มีใครเห็นพวกเขา)
  3. จากนั้นคุณเลิกทำการเปลี่ยนแปลงที่รอดำเนินการเพื่อเปลี่ยนรหัสของคุณกลับไปเป็นจุดเช็คอินล่าสุด
  4. จากนั้นคุณสามารถทำสิ่งที่คุณต้องทำด้วยการเปลี่ยนรหัสพื้นฐาน
  5. คุณสามารถยกเลิกการเปลี่ยนแปลงได้ตลอดเวลา (อาจต้องมีการขัดแย้งกันบ้าง)

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


8
คุณสามารถข้ามขั้นตอนการยกเลิกการเปลี่ยนแปลงที่รอดำเนินการหากคุณล้างกล่องกาเครื่องหมาย "เก็บรักษาการเปลี่ยนแปลงที่รออยู่ภายในเครื่อง" เมื่อสร้างชุดชั้นวาง
Michael J.

14

ฉันเจอสิ่งนี้ตลอดเวลาดังนั้นข้อมูลเพิ่มเติมเกี่ยวกับสาขา:

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

tfpt unshelve /migrate

ปิดหัวข้อ แต่จริง :-)
Tore Østergaard

2
ความคิดเห็นนี้เก่ามากมันถูกเพิ่มเข้ามาก่อนที่คำตอบล้นสแต็คจะถูกสร้างขึ้น
ettiquete

2

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


1

@ JaredPar: ใช่คุณสามารถใช้ Shelvesets สำหรับความคิดเห็น แต่โปรดจำไว้ว่าชั้นวางของสามารถเขียนทับได้ด้วยตัวเอง / คนอื่น ๆ ดังนั้นจึงไม่เสถียรในระยะยาว ดังนั้นสำหรับความคิดเห็นที่เกี่ยวข้องกับกฎระเบียบคุณไม่ควรใช้ Shelveset เป็นฐาน แต่เป็นการเช็คอิน (Changeset) สำหรับการรีวิวอย่างไม่เป็นทางการก็โอเค แต่ไม่ใช่สำหรับรีวิวที่เป็นทางการ (เช่นเกี่ยวข้องกับ FTA)!


0

หากคุณใช้ Gated บิลด์เมื่อมีการทริกเกอร์บิลด์บิลด์จะสร้างชั้นวางของเวิร์กสเปซของคุณที่ส่งเพื่อบิลด์ หากบิลด์ล้มเหลวชั้นวางจะถูกปฏิเสธ หากบิลด์สำเร็จการเซ็ตการแก้ไขจะถูกสร้างและมุ่งมั่นกับ TFS ไม่ว่าจะในกรณีใดบุคคลที่ทำการเช็คอิน / สร้างจะต้องกระทบยอดพื้นที่ทำงานซึ่งทำได้ง่ายเหมือนการรับ Get ล่าสุด

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