โฟลเดอร์ถูกล็อคและฉันไม่สามารถปลดล็อกได้


108

เมื่อฉันพยายามอัปเดตหรือคอมมิตโค้ดจากโปรเจ็กต์มันบอกฉันว่าโฟลเดอร์นั้นถูกล็อค เมื่อฉันพยายาม "ปลดล็อก" มันบอกว่าไม่มีอะไรให้ปลดล็อกในพื้นที่ทำงานนี้

นั่นหมายความว่าอย่างไร? ทำไมฉันไม่สามารถอัปเดตคอมมิตหรือแม้แต่ล้างโปรเจ็กต์ได้


คุณใช้ svn รุ่นไหนอยู่
Chriseyre2000

Assembla สำหรับที่เก็บ Tourtise SVN 1.7
Iyad Al aqel

คุณมีโฟลเดอร์. svn ในแต่ละไดเร็กทอรีหรือแค่รูท?
Chriseyre2000

คุณได้ลองตรวจสอบโครงการอีกครั้งในสำเนาการทำงานแยกต่างหากหรือไม่?
เบอร์นาร์ด

ใช่มันใช้งานได้ถ้าฉันตรวจสอบในโฟลเดอร์อื่น แต่ฐานข้อมูลไม่เปิด
Iyad Al aqel

คำตอบ:


161

คลิกขวาที่โฟลเดอร์ไดเร็กทอรีการทำงานของ Subversion และเลือกTortoiseSVN-> Clean Upจากเมนูบริบท นี้จะ recurse เป็นวิธีที่ผ่านการทำงานไดเรกทอรีการทำความสะอาดและการกระทำใด ๆ ที่ไม่สมบูรณ์ของคุณเอาท้องถิ่นล็อค (ซึ่งแตกต่างจากการใช้การโค่นล้มล็อคของไฟล์ในพื้นที่เก็บข้อมูลที่ช่วยให้ทุกคนรู้เกี่ยวกับการล็อค)

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


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

2
คุณสามารถทำลายล็อคในเครื่องได้โดยBreak locksเลือกตัวเลือก
aagjalpankaj

1
ความคิดเห็นของ @Malvineous มีค่ามาก ควรโพสต์นี้เป็นคำตอบ
Lazy Ninja

16

หากไฟล์ถูกล็อกด้วยตัวเอง (บัญชี svn เดียวกัน) คุณสามารถทำตามขั้นตอนเหล่านี้:

คลิกขวาที่ไฟล์หรือโฟลเดอร์ที่ล็อกไว้แล้วเลือกTortoiseSVN-> Get lock ...และเลือก " [] Steal the locks " ที่มุมล่างซ้ายของกล่องโต้ตอบคลิก "OK" หากดำเนินการสำเร็จก็โอเค เมื่อคุณคลิกขวาที่ไฟล์อีกครั้งคุณจะเห็น TortoiseSVN-> Release lock ...คลิกเพื่อปลดล็อก


12

ใช้บรรทัดคำสั่ง svn เพื่อปลดล็อกโฟลเดอร์ในเครื่องเพียงใช้svn cleanupไฟล์.

ก่อน:

# svn commit -m "fixing #1234"

กระทำ

# svn st

ก่อน

# svn cleanup

หลังจาก:

# svn st

หลังจาก

# svn commit -m "fixing #1234"

หลัง 2


10

สำหรับทุกคนที่ยังคงมีปัญหานี้ ( ข้อผิดพลาด: Working copy "{DIR}" ถูกล็อก ) ฉันมีวิธีแก้ไข:

ฉันพบว่าเมื่อหนึ่งในหน้าต่าง TortoiseSVN ขัดข้องมันจะออกจาก TSVNCache.exe ที่ยังคงมีการจัดการบางส่วนในสำเนาการทำงานของคุณและนั่นทำให้เกิดปัญหาการล็อกที่คุณเห็น (และยังป้องกันไม่ให้ Clean Up ทำงานได้)

เพื่อแก้ไขปัญหานี้:

ทั้ง

1a) ใช้ Process Explorer หรือคล้ายกันเพื่อลบแฮนเดิลที่เป็นของ TSVNCache.exe

1b) .. หรือง่ายกว่านั้นเพียงใช้ Task Manager เพื่อฆ่า TSVNCache.exe

แล้ว

2) คลิกขวา -> TortoiseSVN -> Clean up ต้องตรวจสอบเฉพาะ "ล้างสถานะสำเนาการทำงาน" เท่านั้น

จากนั้นขอให้มีความสุขกับการอัปเดต / คอมมิต คุณสามารถสร้างลักษณะการล็อกซ้ำได้โดยทำการอัปเดต SVN จากนั้นจึงฆ่ากระบวนการ TortoiseProc.exe อย่างรวดเร็วก่อนที่การอัปเดตจะเสร็จสิ้น


8

นี่เป็นครั้งแรกที่ฉันมีปัญหานี้ ฉันพยายามรีสตาร์ทพีซีโดยไม่มีผลใด ๆ สิ่งนี้ช่วยแก้ปัญหาของฉัน:

ทางออกสำหรับฉัน:

  1. คลิกขวาที่ Project Working Directory
  2. นำทางTortoiseSVN
  3. ไปที่เพื่อล้างข้อมูล
  4. ปล่อยให้ตัวเลือกเริ่มต้นทั้งหมดและตรวจสอบBreak Locks
  5. คลิกตกลง

สิ่งนี้ใช้ได้กับฉัน ฉันสามารถทำการเปลี่ยนแปลงได้


1
การเลือกช่องทำเครื่องหมาย Break Locks ช่วยแก้ไขปัญหาของฉันได้
Banketeshvar Narayan

นี่คือคำตอบที่สมบูรณ์แบบที่ฉันมองหา ขอบคุณตัน
vamshi krishna kurella

นี่น่าจะเป็นคำตอบที่ถูกต้อง ปฏิบัติง่ายและตรงประเด็น!
Oana-Elena Danescu

3

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

$ svn unlock --force tree.jpg


จะทำอย่างไรหากต้องการปลดล็อกไดเรกทอรี
IgorGanapolsky

@IgorGanapolsky ตั้งชื่อไดเรกทอรีแทนชื่อไฟล์ในคำสั่งด้านบน
manav mn

@IgorGanapolsky คุณได้รับข้อความแสดงข้อผิดพลาดอะไร ให้ฉันตรวจสอบ
manav mn

โหนดไม่ใช่ไฟล์ !
IgorGanapolsky

3

ฉันมีปัญหานี้และฉันได้ทำตามขั้นตอนด้านล่างเพื่อแก้ไขแล้ว:

  1. ไปที่โฟลเดอร์หลักแทนโฟลเดอร์ย่อย
  2. เลือก SVN cleanup
  3. คลิกตกลง

ทำขั้นตอนนี้ในโฟลเดอร์หลักแทนโฟลเดอร์ย่อย!

มันได้ผลสำหรับฉัน!


1

ฉันกำลังย้ายโฟลเดอร์ขึ้นหนึ่งระดับและไปยังโฟลเดอร์อื่น ความผิดพลาดของฉันคือการย้ายจากภายในโฟลเดอร์หลัก

ตัวอย่างที่ไม่ดี:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

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

ตัวอย่างที่ดี:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation

1

ฉันมีปัญหานี้ซึ่งฉันไม่สามารถปลดล็อกไฟล์จากฝั่งไคลเอ็นต์ได้ ฉันตัดสินใจไปที่ฝั่งเซิร์ฟเวอร์ซึ่งง่ายกว่ามาก

บนเซิร์ฟเวอร์ SVN:

ค้นหาล็อค

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

ถอดล็อค

 svnadmin rmlocks /root/of/repo “path/to/file” 

แค่นั้นแหละ!


0

สารละลาย :

  1. คลิกขวาที่ Project Working Directory
  2. นำทาง TortoiseSVN
  3. ไปที่เพื่อล้างข้อมูล
  4. เลือก Clean up working copy status (ทำเครื่องหมายถูก)
  5. คลิกตกลง
  6. ทำซ้ำขั้นตอนที่ 1 และ 2 จากนั้นไปที่ปลดล็อก
  7. คลิกตกลงการล็อกโครงการของคุณถูกเปิด

0

นอกเหนือจากคำตอบของ David M แล้วขณะทำการล้างข้อมูล -> ตรวจสอบตัวเลือก 'break locks' วิธีนี้จะช่วยให้แน่ใจว่ามีการคลายล็อก จากนั้นทำการอัพเดต svn สิ่งนี้ได้ผลสำหรับฉัน


0

ในการปลดล็อกเอกสารที่ถูกบล็อก: 1. คลิกขวา -> ล็อก 2. เลือกช่องทำเครื่องหมาย "ขโมยล็อก" 2. ปลดล็อก


0

ฉันค้นคว้าเกี่ยวกับปัญหานี้มากมาย แต่ไม่มีวิธีแก้ไขปัญหาของฉันจนกว่าฉันจะลองทำสิ่งนี้:

โฟลเดอร์ repo ของฉันแชร์กับเครื่องเสมือน Windows xp ดังนั้นฉันจึงดำเนินการล้างข้อมูลจาก VM จากนั้นเรียกใช้ SVN UPDATE จากโฮสต์

มันได้ผลสำหรับฉัน

คำทักทายจากคอสตาริกา


0

ฉันสามารถแก้ไขปัญหานี้ในเครื่องของฉันได้โดยการเปลี่ยนชื่อโฟลเดอร์เพื่อทำให้เส้นทางโฟลเดอร์เล็กลง


-1

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


-1

ทำความสะอาดเลือกช่องทำเครื่องหมายทั้งหมด => งานนี้สำหรับฉัน


เหมือนกับĐứcThắngNguyễn ทำความสะอาด "ที่แข็งแกร่ง"

-1

ฉันพบปัญหานี้หลังจากการดำเนินการเหล่านี้:

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

ในที่สุดฉันก็แก้ปัญหาด้วยการบังคับล็อกอีกครั้ง: TortoiseSVN -> Get Lock -> เลือก "ขโมยล็อค" จากนั้นกดหรือปลดล็อก

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