คำตอบทั้งหมดที่นี่ดูเหมือนจะเป็นคำตอบบางส่วนที่ใช้ไม่ได้ในทุกกรณี ฉันคิดว่าคำตอบนี้ใช้ได้ในทุกกรณีโดยสมมติว่าคุณมีสิทธิ์ที่เหมาะสม
- เปิดพรอมต์คำสั่งสำหรับนักพัฒนา ในกรณีของฉันฉันได้ทดสอบสิ่งนี้ด้วยพรอมต์คำสั่งสำหรับนักพัฒนาสำหรับ VS 2019
- พิมพ์คำสั่งนี้:
tf workspaces
โปรดทราบว่าผลลัพธ์สามารถแสดงรายการตารางสองตารางที่มีโครงสร้างเหมือนกัน หากคุณเห็นเพียงตารางเดียวสมมติฐานบางอย่างในคำตอบอื่น ๆ ก็สามารถใช้ได้กับคุณ อย่างไรก็ตามหากคุณเห็นสองตารางขึ้นไปสตริงคอลเลคชันนั้นมีความสำคัญ! สำหรับตัวอย่างของเราเราจะสมมติว่าคุณมีคอลเล็กชันสองชุด (สองคอลเล็กชันไม่แตกต่างจากสี่คอลเลคชันอื่น ๆ ที่น่าเบื่อกว่าอีกชุดหนึ่งในการดำเนินการ)
https://dev.azure.com/foo
และ https://bar.visualstudio.com/
ด้วยความโชคดีคุณจะรู้ว่าคุณต้องการทำงานร่วมกับหนึ่งในสองคนนี้ อย่างไรก็ตามหากคุณต้องการวนรอบทั้งหมดคุณจะต้องทำทีละชุด "คอลเล็กชัน" แต่ละรายการจะเหมือนกับ "องค์กร" ใน Azure DevOps (ฉันคิดว่า)
หากคุณไม่ใช้รายละเอียดคอลเล็กชันนี้คุณอาจเห็นข้อความแสดงข้อผิดพลาด:
ไม่สามารถระบุเซิร์ฟเวอร์ควบคุมต้นทาง
- จากนั้นพิมพ์คำสั่งนี้สำหรับคอลเล็กชันที่คุณต้องการใช้:
tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo
สิ่งนี้จะทำให้คุณเห็นภาพที่สมบูรณ์ยิ่งขึ้นเกี่ยวกับสิ่งที่คุณกำลังเผชิญอยู่ สิ่งนี้จะน่ารังเกียจอย่างยิ่งหากคุณมีบัญชี MSAs และ Org หลายบัญชีที่กดปุ่ม repo นี้จากคอมพิวเตอร์เครื่องเดียวกัน ในความเป็นจริงคุณอาจมีรายการที่ดูเหมือนเหมือนกันหลายรายการ หากคุณพยายามลบตามสิ่งที่คุณทราบในขณะนี้อาจไม่ได้ผล แต่เราสามารถรับข้อมูลเพิ่มเติมได้
- ต่อไปเราจะเรียกใช้คำสั่งเดียวกัน แต่ต่อท้ายคำสั่ง
/format:xml
:
tf workspaces /computer:* /owner:* /collection:https://dev.azure.com/foo /format:xml
ตอนนี้ให้ XML จำนวนมากพร้อมคุณสมบัติเพิ่มเติมบางอย่าง สิ่งที่เราน่าจะสนใจมากที่สุดคือชื่อแทนเจ้าของ นี่คือข้อมูลที่ขาดหายไปที่คุณต้องดำเนินการในขณะนี้และลบพื้นที่ทำงานเหล่านี้ หากไม่มีข้อมูลเพิ่มเติมนี้คุณสามารถชนกำแพงได้อย่างง่ายดายและติดอยู่กับข้อความแสดงข้อผิดพลาด:
ระบุหนึ่งพื้นที่ทำงาน
ตอนนี้เรามีข้อมูลทั้งหมดที่ต้องการแล้ว ระบุOwernAliases
รายการเพิ่มเติมให้เลือกรายการที่ไม่ซ้ำกัน (หรือทำซ้ำหากมีมากกว่าหนึ่งรายการ) ที่คุณต้องการลบและใช้คำสั่งต่อไปนี้ (แสดงตัวอย่างสองสามรายการ):
tf workspace /delete /collection:https://dev.azure.com/foo
"MyWorkspaceName;Windows Live ID\John.Doe@hotmail.com"
tf workspace /delete /collection:https://dev.azure.com/foo
"MyWorkspaceName;John Doe"
tf workspace
/delete /collection https://dev.azure.com/foo
"MyWorkspaceName;2C3E8474-A39C-4785-8794-DC72F09981E6\John.Doe@Example.com"
GUID ระบุไดเร็กทอรี AAD และเครื่องหมายคำพูดจะอยู่ที่นั่นเพื่อจัดการช่องว่างใด ๆ ที่อาจอยู่ในนามแฝง "MyWorkspaceName" มาจากการสืบค้นก่อนหน้าของคุณที่แสดงรายการพื้นที่ทำงาน
หากไม่มีวิธีการที่ละเอียดถี่ถ้วนนี้อาจเป็นไปได้ว่าคำตอบอื่น ๆ ทั้งหมดในคำถามนี้จะล้มเหลวสำหรับคุณ แม้ว่าความพยายามบางอย่างจะล้างพื้นที่ทำงานในพื้นที่ แต่ก็จะไม่ล้างพื้นที่ทำงานของเซิร์ฟเวอร์ซึ่งคุณยังสามารถขัดแย้งได้ นอกจากนี้หากคุณเคยใช้บัญชีอื่นมาก่อนสิ่งต่างๆอาจทำให้ยุ่งยากเช่นถ้าคุณเปลี่ยนจาก MSA เป็นบัญชี AAD และสิ่งต่างๆจะยุ่งยากมากหากคุณมีบัญชี MSA และบัญชี AAD หลายบัญชีมีที่อยู่อีเมลเดียวกับที่คุณใช้จากเวิร์กสเตชันเดียวกัน จากนั้นมันจะมีขนดกสุด ๆ ถ้าหลาย ๆ ตัวใช้ชื่อเริ่มต้นสำหรับพื้นที่ทำงานนั่นคือชื่อโฮสต์ของคอมพิวเตอร์ของคุณ ในกรณีของฉันฉันมีพื้นที่ทำงานทั้งหมดสี่แห่งที่มีชื่อ Workspace ชื่อเจ้าของและชื่อคอมพิวเตอร์เหมือนกัน (เช่นแบบสอบถามแรกที่ไม่มีการจัดรูปแบบ XML มีระเบียนที่เหมือนกัน 4 รายการ!)
ฉันไม่รู้ว่ามีวิธีจัดการแบบกราฟมากกว่านี้หรือไม่ ฉันดูแล้วยังไม่พบวิธีที่ดีไปกว่านี้
D:\jenkins\jobs\ProjectName1-Build\workspace
ผู้ใช้ TFS รายอื่นในขณะทดสอบ