Visual Studio TFS แสดงไฟล์ที่ไม่เปลี่ยนแปลงในรายการการเปลี่ยนแปลงที่รอดำเนินการ


94

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


Perchance แอนตี้ไวรัสของคุณอัปเดตวันที่แก้ไขล่าสุดของไฟล์หรือไม่ หรือคุณกำลังทำงานกับแล็ปท็อปเข้ารหัส?
DOK

ScottGu อธิบายว่าโปรแกรมป้องกันไวรัสสามารถเปลี่ยนวันที่เหล่านี้ได้อย่างไรในบทความนี้ (ค้นหา "ไวรัส") weblogs.asp.net/scottgu/archive/2006/09/22/…
DOK

58
นี่จะต้องเป็นหนึ่งใน "ฟีเจอร์" ของ TFS ที่น่ารำคาญที่สุด
Brad Thomas

ฉันมีปัญหานี้เหมือนกัน - TF ใช้งานได้ แต่ TFPT ไม่ - ฉันคิดว่าเป็นเพราะฉันใช้ "TFPT - Team Foundation Power Tools 2012" กับพื้นที่ทำงาน Visual Studio 2010 ... : - /
BrainSlugs83

ดูเหมือนทั้งหมดที่ฉันต้องทำคือเชื่อมต่อกับคอลเล็กชันเดียวกันใน Visual Studio 2012 ดูรายละเอียดเพิ่มเติมในโพสต์นี้: stackoverflow.com/questions/1758606/…
BrainSlugs83

คำตอบ:


49

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

รายการบล็อกนี้อธิบายถึงวิธีการจัดการกับสิ่งนี้ที่ไม่ง่ายนัก และในความคิดเห็นมีข้อเสนอแนะที่ดียิ่งขึ้นในการจัดการกับมันผ่านทางบรรทัดคำสั่งผ่านเครื่องมือไฟฟ้า TFS

TFS ที่รอการเปลี่ยนแปลงโดยไม่สนใจไฟล์ที่เหมือนกัน ...


12
ขอแนะนำอย่างยิ่งให้คุณใช้tfpt uuเครื่องมือไฟฟ้าไม่ใช่โซลูชัน "No To All" ที่แฮ็ค เพิ่มและแก้ไขการแก้ไขเท่านั้นที่จะได้รับข้อความแจ้งนี้ ตัวอย่างเช่น: การเปลี่ยนชื่อ (ซึ่งเป็นเพียงการเปลี่ยนชื่อเท่านั้นไม่ใช่เปลี่ยนชื่อ + แก้ไข) จะถูกยกเลิกโดย UI โดยไม่ต้องแจ้ง
Edward Thomson

8
ในกรณีที่บล็อกโพสต์เดิมหายไปคำสั่งคือtfpt uu /noget /r *ซึ่งจะต้องดำเนินการจากรากของสาขา พูดแบบนี้แม้ว่าจะรับการเปลี่ยนแปลงที่ซ้ำซ้อนอย่างถูกต้อง แต่ก็อ้างว่าเลิกทำ แต่ฉันก็ยังเห็นพวกเขาเช็คเอาต์ใน VS และในกล่องโต้ตอบเช็คอินดังนั้นดูเหมือนว่าจะเสียสำหรับฉัน: /
Mike Chamberlain

2
ความเป็นไปได้อีกประการที่จะเกิดขึ้นคือถ้าคุณสลับบิต "อ่านอย่างเดียว" ของไฟล์โดยไม่เปลี่ยนเนื้อหาจริงๆ TFS อาจเป็นเรื่องที่น่ารำคาญในบางครั้ง
arviman

1
สำหรับการอ้างอิงโซลูชัน "ไม่ต้องทั้งหมด" จะถูกคัดลอกที่นี่จากลิงก์: "อีกทางเลือกหนึ่งคือ" ยกเลิกการชำระเงิน "การเปลี่ยนแปลงทั้งหมดและคลิก" ไม่ต้องทั้งหมด "เมื่อระบบขอให้ยืนยันการยกเลิกการชำระเงินด้วยวิธีนี้ Visual Studio จะ “ ยกเลิกการชำระเงิน” ไฟล์ทั้งหมดที่ไม่มีการเปลี่ยนแปลงและไฟล์ที่เปลี่ยนแปลงทั้งหมดจะยังคงเช็คเอาต์ฉันใช้วิธีนี้เสมอ "
PJSimon

เคล็ดลับ "ไม่ต้องไปทั้งหมด" นั้นดี แต่ก็มีข้อเสียเล็กน้อย ตัวอย่างเช่น - ฉันใช้เครื่องมือของฉันเพื่อสร้างคลาส DB EntityFramework ฉันสร้างสิ่งเหล่านี้ในไดเรกทอรีภายนอกจากนั้นลากไปในโซลูชันของฉัน บางครั้งเมื่อไม่มีการเปลี่ยนแปลงใด ๆ ก็ยังคงแสดงการเปลี่ยนแปลง เคล็ดลับ "ไม่ต้องทั้งหมด" นี้จะลบออก แต่ถ้ามีการเพิ่มคลาสใหม่ซึ่งไม่เคยมีมาก่อนมันจะลบออกจากการควบคุมแหล่งที่มา - ฉันต้องเพิ่มกลับด้วยมือ
Wish

17

เมื่อเร็ว ๆ นี้ฉันเพิ่งอัปเดต VS2010 เป็น VS 2013 และปัญหานี้ยิ่งแย่ลงไปอีก เมื่อคุณใช้การเปรียบเทียบไฟล์ที่เหมือนกันจะไม่ปรากฏขึ้นเลย ฉันเกลียดสิ่งนี้เพราะคุณไม่สามารถเข้าใจได้ว่าไฟล์ใดถูกเปลี่ยนแปลงอย่างแท้จริงจนกว่าคุณจะตรวจสอบไฟล์เปรียบเทียบอย่างรอบคอบ

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

  • คำสั่ง: tfpt.exe
  • อาร์กิวเมนต์: uu . /noget /recursive
  • ไดเร็กทอรีเริ่มต้น: $(SolutionDir)

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


2
ฉันได้เรียกใช้ "tfpt uu. / noget / recursive" และอ้างว่าไม่มีการเปลี่ยนแปลงที่รอดำเนินการซ้ำซ้อนในพื้นที่ทำงาน VS2015, TFPT 2015 การเปลี่ยนแปลงทั้งหมดของฉันไม่มีการเปลี่ยนแปลง [ผสาน]
fastmultiplication

ฉันได้ลองแล้ว แต่ไม่ประสบความสำเร็จ การลบประเด็นของอาร์กิวเมนต์ดูเหมือนจะทำให้ทำงานได้อย่างถูกต้อง: uu / noget / recursive
dperez

10

เพื่อให้คำอธิบายข้างต้นชัดเจนขึ้น:

  1. ติดตั้ง TFS Power Tools โดยใช้ NuGet package manager ใน VS.
  2. เปิด Visual Studio Command Prompt (เรียกอีกอย่างว่า Developer Command Prompt สำหรับ VS 2013/2015) จาก Windows Start
  3. นำทางไปยังตำแหน่งรากของพื้นที่ทำงานในเครื่องของคุณผ่านพรอมต์คำสั่ง
  4. ดำเนินการคำสั่งนี้: tfpt uu / recursive / noget
  5. เลือกทิ้งการเปลี่ยนแปลงที่ซ้ำซ้อนหากได้รับแจ้ง

ทำงานให้ฉัน

เพิ่มเติม:

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


ขอบคุณฉันจากพฤศจิกายน 30th-2015 ฉันได้รับปัญหาเดิมครั้งแล้วครั้งเล่าและคำตอบของคุณก็สมบูรณ์แบบ ฉันพยายามโหวตให้คุณ แต่พบข้อผิดพลาด 'space-time ต่อเนื่อง' บางอย่าง สิ่งที่ต้องทำในวันที่ 30 พฤศจิกายน พ.ศ. 2498 และ "ไม่พบ 1.21 กิกะวัตต์ที่ต้องการ"
ฟิลิป

น่าเสียดายที่ไม่ได้ทำงานให้ฉัน Unable to determine the workspace. ลองอัปเดตแคชของพื้นที่ทำงานแล้วไม่ประสบความสำเร็จ หลังจากผ่านไป 2 ชั่วโมงฉันจะยอมแพ้และตรวจสอบไฟล์ที่ไม่ได้เปลี่ยนแปลงเพื่อกำจัดไฟล์เหล่านี้
C4d

@ C4u ฉันอาจเริ่มประสบปัญหานั้นด้วยตัวเองตั้งแต่ย้ายไป VS 2015 อย่างไรก็ตามปัญหาเกี่ยวกับไฟล์เช็คเอาต์ที่เกิดขึ้นได้หายไปแล้ว ฉันจะดูสิ่งที่ฉันหาได้
ฟิล

1
ฉันไม่พบ PowerTools โดยใช้ NuGet แต่สามารถค้นหาและติดตั้งผ่านการค้นหาของ Google "Microsoft Visual Studio Team Foundation Server 2013 Power Tools"
Colin

@Versatile ดูที่ Visual Studio 2017 คุณจะต้องไปที่ 'Tools'> 'Extensions and Updates ... ' ฉันจำโครงสร้างเมนูในปี 2013/15 ไม่ได้ บางทีคำตอบของฉันต้องการการแก้ไข หากคุณมี VS 2013/15 และสามารถตรวจสอบโครงสร้างเมนูได้โปรดอย่าลังเลที่จะแก้ไขคำตอบของฉัน :)
ฟิล

1

ฉันจะแก้ไขนี้ได้โดยคลิกStage Allปุ่มในการเปลี่ยนแปลงแล้ว unstaging Unstage Allพวกเขาด้วย

มันแก้ไขไฟล์ที่ไม่เปลี่ยนแปลงที่ฉันมีในChangesส่วนของฉัน สวยและเรียบง่าย


0

Visual Studio 2012 แนะนำแนวคิดใหม่ที่เรียกว่าพื้นที่ทำงานของท้องถิ่น

เมื่อสถานที่ทำงานถูกกำหนดค่าเป็น Local แล้วจะวางสำเนาภายในของไฟล์ต้นฉบับ (เช่นเดียวกับ SVN / CVS)

จากนั้นจะซ่อนไฟล์ที่ไม่เปลี่ยนแปลงโดยอัตโนมัติจากการเปลี่ยนแปลงที่รอดำเนินการ

ใช้ TFS Source Control Explorer เพื่อ "แก้ไข ... " พื้นที่ทำงาน TFS และเปลี่ยน "ขั้นสูง ... " - การตั้งค่าตำแหน่งจากเซิร์ฟเวอร์เป็นภายในเครื่อง


พื้นที่ทำงานของฉันคือท้องถิ่น แต่ไฟล์ unchaged ยังคงปรากฏในที่รอการเปลี่ยนแปลง ... มันไม่ได้โดยอัตโนมัติยกเลิกการเช็คเอา ...
Ozkan

0

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

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