ข้อผิดพลาดในการล็อกสำเนาการทำงานในเต่า svn ขณะกระทำ


94

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

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

ฉันพยายามปลดล็อกโฟลเดอร์โดยคลิกขวาที่มันแล้วเลือกTortoise SVN> Release lockมันบอก

ไม่มีอะไรให้ปลดล็อก ไม่มีไฟล์ใดที่มีการล็อกในสำเนาที่ใช้งานได้นี้

ปัญหาอาจเกิดจากอะไร?

คำตอบ:


232

ไม่มีปัญหา ... ลองสิ่งนี้:

  • ไปที่โฟลเดอร์ SVN ระดับบนสุด
  • คลิกขวาที่โฟลเดอร์ (ที่มีไฟล์ svn ของคุณ)> TortoiseSVN> CleanUp

สิ่งนี้จะช่วยแก้ปัญหาของคุณได้อย่างแน่นอน ฉันทำหลายครั้งแล้ว ... :)

บันทึก. ตรวจสอบให้แน่ใจว่าได้เลือกตัวเลือก "Break locks" ในกล่องโต้ตอบ Cleanup


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

2
ติดตามการอัปเดตเสมอจากนั้นกระทำ มิฉะนั้นคุณจะได้รับข้อความให้อัปเดตจาก TortoiseSVN เนื่องจากสำเนาเวอร์ชันของคุณเก่ากว่าแล้วจึงเก็บไว้ในเซิร์ฟเวอร์ SVN ดังนั้นคุณต้องอัปเดตและยอมรับ
MicroEyes

1
ใช่. นั่นช่วยแก้ปัญหาของฉันเกี่ยวกับการอัปเดตสำเนาปัจจุบันของฉันเป็น svn revision
Jayesh Bhoi

ฉันเพิ่งเพิ่มไฟล์ใน SVN และพยายามที่จะยอมรับ แต่ฉันได้รับข้อผิดพลาดเดียวกัน ฉันลองใช้คำสั่ง cleanUp แต่ฉันไม่สามารถแก้ปัญหานี้ได้
Ashok Chandrapal

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

15

คำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน repo-browserการแก้ไขปัญหาที่ผมต้องคลิกขวาที่ไฟล์ที่ถูกล็อคเลือก สิ่งนี้เปิดป๊อปอัปพร้อมไฟล์ตามที่อยู่บนเซิร์ฟเวอร์ SVN break lockฉันแล้วคลิกขวาที่ไฟล์ถูกล็อคและเลือก

เมื่อฉันปิดเบราว์เซอร์ที่เก็บข้อมูลกลับไปที่ explorer ในที่สุดฉันก็ยอมรับได้!


คุณต้องแน่ใจว่าได้เลือกตัวเลือก "Break locks" ในกล่องโต้ตอบ Cleanup ฉันคิดว่ามันถูกเลือกโดยค่าเริ่มต้น (และนั่นคือสาเหตุที่ไม่ได้กล่าวถึงในคำตอบเดิม)
Nux

12
  1. คลิกขวาที่โฟลเดอร์
  2. TortoiseSVN-> ตรวจสอบการแก้ไข
  3. คลิกที่ปุ่มตรวจสอบที่เก็บ
  4. หยุดการล็อกไฟล์ทั้งหมดที่ส่งคืน

3

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

ด้วยเหตุนี้ความกังวลของฉันก็คือตัวเลือก "ล้างข้อมูล" อาจเปลี่ยนสำเนาการทำงานของฉันหรือลบข้อมูลออกจากระดับ Repo ของการโค่นล้ม ไม่เป็นเช่นนั้น คำตอบได้ผลสำหรับฉัน ของฉันถูกล็อคเมื่อฉันคลิกยกเลิกระหว่างกลางการอัปเดต ลงเอยด้วยการดึงสาขาของเราไปบางส่วนและไม่ต้องการของก็เลยกดยกเลิก สำเนาการทำงานของฉันถูกล็อก ฉันไม่พบเอกสารใด ๆ ที่เป็น "ล็อก" เมื่อฉันใช้คำสั่ง 'release lock' สิ่งนี้ทำให้ฉันงงงวยและเมื่ออ่านอย่างรวดเร็ว (และเธรดนี้) ฉันพยายามใช้คำสั่ง 'ล้างข้อมูล' หลังจากล้างข้อมูลแล้วก็แก้ไขปัญหาของฉันได้และไม่มีอะไรถูกล็อคอีก

ที่มา: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html


2

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

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

ดูหน้านี้ในเอกสาร Tortoise SVN สำหรับคำอธิบายเกี่ยวกับการใช้ "แม่กุญแจ" ทั้งสามแบบ: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

ข้อความที่ตัดตอนมา (เน้นเพิ่ม):

ความหมายสามประการของ“ ล็อค”

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

ประการที่สองคือการล็อกสำเนาที่ใช้งานได้ซึ่งใช้โดย Subversion ภายในเพื่อป้องกันการปะทะกันระหว่างไคลเอนต์ Subversion หลายตัวที่ทำงานบนสำเนาการทำงานเดียวกัน โดยปกติแล้วคุณจะได้รับการล็อกเหล่านี้เมื่อใดก็ตามที่คำสั่งเช่นอัพเดต / คอมมิต / ... ถูกขัดจังหวะเนื่องจากข้อผิดพลาด การล็อกเหล่านี้สามารถลบออกได้โดยเรียกใช้คำสั่งล้างข้อมูลบนสำเนาที่ใช้งานได้ดังที่อธิบายไว้ในส่วนที่เรียกว่า“ Cleanup”

...


2

ฉันไม่รู้ว่าไฟล์ใดมีการล็อคดังนั้นสิ่งที่ฉันทำเพื่อออกจากปัญหานี้คือ:

  1. ไปที่โฟลเดอร์ระดับสูงสุด
  2. คลิกล้างข้อมูลและเลือกจากวิธีการทำความสะอาด -> หยุดการล็อก

สิ่งนี้ได้ผลสำหรับฉัน


1

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


0

ฉันจัดการล็อคตัวเองจากไฟล์ใน svn - ไม่รู้วิธี - แต่เมื่อฉันลอง (อีกครั้ง) - รับล็อค (เต่ากำลังแสดงตัวเลือก "Get Lock" สำหรับไฟล์) มันบ่นว่ามีแล้ว ล็อค. ฉันพยายามลบไฟล์และทำการเปลี่ยนแปลงไดเร็กทอรี - ผลลัพธ์เดียวกัน ฉันพยายาม CleanUp (รวมถึงการรีเฟรชภาพซ้อนทับ) แต่ก็ล้มเหลวเช่นกัน

วิธีแก้ปัญหาคือเข้าไปที่ Tortoise repo-browser ค้นหาไฟล์และใช้ฟังก์ชันbreak lock


0

หากสิ่งนี้ ( https://stackoverflow.com/a/11764922/3045875 ) ไม่ช่วยให้ตรวจสอบว่ามีเครื่องมือ SVN อื่นรบกวนหรือไม่และปิดเครื่องมือ เราเพิ่งใช้เวลาสองสามชั่วโมงในการรวมเข้าด้วยกันโดยใช้ TortoiseSVN และมีข้อผิดพลาดในการล็อกหลายสิบ ในที่สุดเราก็พบว่าการรวม Matlabs SVN กำลังรบกวนและหลังจากปิดการทำงานทั้งหมดแล้ว


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