Thư mục bị khóa và tôi không thể mở khóa


108

Khi tôi cố gắng cập nhật hoặc xác nhận mã từ một dự án, nó cho tôi biết rằng thư mục đã bị khóa. Khi tôi cố gắng "nhả khóa", nó nói rằng không có gì để mở khóa trong không gian làm việc này.

Điều đó nghĩa là gì? Tại sao tôi không thể cập nhật, cam kết hoặc thậm chí xóa sạch dự án.


Bạn đang sử dụng phiên bản svn nào?
Chriseyre2000

Assembla cho một kho lưu trữ, Tourtise SVN 1.7
Iyad Al aqel

Vậy bạn có thư mục .svn trong mỗi thư mục hay chỉ thư mục gốc?
Chriseyre2000

Bạn đã thử kiểm tra lại dự án thành một bản sao làm việc riêng chưa?
Bernard

Có nó làm việc nếu tôi kiểm tra xem nó trong một thư mục khác nhau, nhưng cơ sở dữ liệu không được mở
Iyad Al aqel

Câu trả lời:


161

Nhấp chuột phải vào thư mục thư mục làm việc Subversion của bạn và chọn TortoiseSVN-> Dọn dẹp từ Trình đơn ngữ cảnh. Điều này sẽ tái diễn nó qua thư mục làm việc của bạn và dọn dẹp mọi hành động chưa hoàn thành, xóa các khóa cục bộ (khác với việc sử dụng khóa Subversion của một tệp trong kho lưu trữ cho phép mọi người biết về khóa).

Nếu cách đó không hiệu quả, hãy xem liệu bạn có thể tìm thấy tên của các tệp đã được thay đổi nhưng chưa được cam kết hay không, hãy lưu chúng và thực hiện lại quá trình kiểm tra.


28
Tôi gặp sự cố này và quá trình dọn dẹp không hoạt động (không thể dọn dẹp do khóa cục bộ), nhưng việc truy cập vào thư mục mẹ (cũng nằm trong quyền kiểm soát phiên bản) và thực hiện dọn dẹp ở đó đã khắc phục được sự cố.
Malvineous

2
Bạn có thể phá khóa cục bộ bằng cách kiểm tra Break lockstùy chọn.
aagjalpankaj

1
Bình luận của @Malvineous thật quý giá. Nên đăng bài này như một câu trả lời.
Ninja lười biếng,

16

Nếu tệp đã bị khóa bởi chính bạn (cùng một tài khoản svn), bạn có thể làm theo các bước sau:

Nhấp chuột phải vào tệp hoặc thư mục bị khóa, và chọn TortoiseSVN-> Nhận khóa ... , và kiểm tra " [] Đánh cắp ổ khóa " ở góc dưới cùng bên trái của hộp thoại, nhấp vào "OK". Nếu nó hoàn thành thành công, đó là ok. Khi bạn nhấp chuột phải vào tệp một lần nữa, bạn có thể thấy TortoiseSVN-> Khóa phát hành ... , nhấp để mở khóa.


12

Sử dụng dòng lệnh svn để mở khóa các thư mục cục bộ, chỉ cần sử dụng svn cleanup.

Trước:

# svn commit -m "fixing #1234"

cam kết

# svn st

trước

# svn cleanup

Sau:

# svn st

sau

# svn commit -m "fixing #1234"

sau 2


10

Đối với bất kỳ ai vẫn gặp sự cố này ( Lỗi: Bản làm việc '{DIR}' bị khóa. ), Tôi có giải pháp của bạn:

Tôi nhận thấy rằng khi một trong các cửa sổ TortoiseSVN gặp sự cố, nó sẽ để lại TSVNCache.exe vẫn có một số xử lý đối với bản sao đang làm việc của bạn và điều đó gây ra sự cố Khóa mà bạn đang thấy (và cũng ngăn Clean Up thực hiện công việc).

Vì vậy, để giải quyết điều này:

Hoặc

1a) Sử dụng Process Explorer hoặc tương tự để xóa các chốt điều khiển do TSVNCache.exe sở hữu

1b) .. Hoặc thậm chí dễ dàng hơn, chỉ cần sử dụng Task Manager để diệt TSVNCache.exe

Sau đó

2) Nhấp chuột phải -> TortoiseSVN -> Dọn dẹp. Chỉ "Làm sạch trạng thái bản sao đang làm việc" cần được kiểm tra.

Từ đó, vui vẻ cập nhật / cam kết. Bạn có thể tạo lại hành vi Khóa bằng cách thực hiện Cập nhật SVN và sau đó nhanh chóng giết quá trình TortoiseProc.exe của nó trước khi Cập nhật kết thúc.


8

Đây là lần đầu tiên tôi gặp vấn đề này. Tôi thậm chí đã cố gắng khởi động lại PC mà không có tác dụng. Điều này giải quyết vấn đề của tôi:

Giải pháp cho tôi:

  1. Nhấp chuột phải vào Thư mục làm việc của Dự án.
  2. Điều hướng TortoiseSVN .
  3. Điều hướng để Dọn dẹp .
  4. Để lại tất cả các tùy chọn mặc định và chọn Break Locks
  5. Bấm OK

Điều này làm việc cho tôi. Tôi đã có thể thực hiện các thay đổi.


1
Chọn hộp kiểm Break Locks sẽ khắc phục sự cố của tôi.
Banketeshvar Narayan

Đây là câu trả lời hoàn hảo mà tôi đang tìm kiếm. Nhờ một tấn
vamshi krishna kurella

Đây phải là câu trả lời chính xác. Thực tế, dễ dàng và đi thẳng vào vấn đề!
Oana-Elena Danescu

3

Để mở khóa tệp trong bản sao làm việc của bạn từ dấu nhắc lệnh hiện đang bị khóa bởi người dùng khác, hãy sử dụng --forcetùy chọn.

$ svn unlock --force tree.jpg


Nếu tôi muốn mở khóa một thư mục thì sao?
IgorGanapolsky

@IgorGanapolsky Đưa tên thư mục thay cho tên tập tin trong lệnh trên
manav mn

@IgorGanapolsky bạn đang nhận được thông báo lỗi nào. Hãy để tôi kiểm tra
manav mn

Nút không phải là một tệp !
IgorGanapolsky

3

Tôi đã gặp sự cố này và tôi đã thực hiện các bước dưới đây để giải quyết nó:

  1. Chuyển đến thư mục mẹ thay vì thư mục con
  2. Chọn dọn dẹp SVN
  3. Nhấp vào OK.

Thực hiện bước này trên thư mục mẹ thay vì thư mục con!

Nó đã làm việc cho tôi!


1

Tôi đang di chuyển một thư mục lên một cấp và sang một thư mục khác. Sai lầm của tôi là di chuyển từ bên trong thư mục mẹ.

Ví dụ xấu:

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

SVN cần cập nhật thư mục mẹ với thông tin các thư mục đã xóa.
Bạn phải làm điều đó từ thư mục gốc chung của thư mục nguồn và đích hoặc sử dụng đường dẫn đầy đủ.

Ví dụ tốt:

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

1

Tôi đã gặp sự cố này trong đó tôi không thể mở khóa tệp từ phía máy khách. Tôi quyết định chuyển sang phe máy chủ đơn giản hơn nhiều.

Trên Máy chủ SVN:

Xác định vị trí ổ khóa

 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"

Xóa khóa

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

Đó là nó!


0

Giải pháp :

  1. Nhấp chuột phải vào Thư mục làm việc của Dự án.
  2. Điều hướng TortoiseSVN.
  3. Điều hướng để Dọn dẹp.
  4. Chọn Dọn dẹp trạng thái bản sao đang làm việc (đánh dấu chọn)
  5. Bấm OK
  6. Lặp lại Bước 1 và 2 sau đó điều hướng để nhả Khóa.
  7. Nhấp vào OK Khóa dự án của bạn sẽ được mở.

0

Ngoài câu trả lời của David M, trong khi thực hiện dọn dẹp -> đánh dấu vào tùy chọn 'phá khóa'. Điều này sẽ đảm bảo việc giải phóng ổ khóa. Sau đó thực hiện cập nhật svn. Điều này đã làm việc cho tôi.


0

Để mở khóa tài liệu bị chặn: 1. Nhấp chuột phải -> Khóa 2. Đánh dấu vào hộp kiểm "Đánh cắp ổ khóa" 2. Nhả khóa


0

Tôi nghiên cứu rất nhiều về vấn đề này nhưng không có giải pháp nào khắc phục được sự cố của tôi cho đến khi tôi thử điều này:

Thư mục repo của tôi được chia sẻ với một máy ảo Windows xp, vì vậy tôi thực hiện dọn dẹp khỏi máy ảo và sau đó thực thi SVN UPDATE từ máy chủ.

Nó đã làm việc cho tôi.

Lời chào từ Costa Rica.


0

Tôi đã có thể giải quyết vấn đề này trên máy của mình bằng cách đổi tên các thư mục để làm cho đường dẫn thư mục nhỏ hơn.


-1

Tôi đã xảy ra điều này sau khi Tortoise bị hỏng và gặp sự cố trong khi cố gắng cập nhật các thư mục. Cuối cùng tôi đã cài đặt lại Tortoise, nhưng ổ khóa ma vẫn còn. Từ đó, tôi phải xóa thư mục và thực hiện kiểm tra mới. Rõ ràng là tôi thực sự may mắn vì tôi không có bất kỳ thay đổi mới nào để thực hiện vào thời điểm đó. Nhưng dù sao, không phải là tin tuyệt vời, và nếu ai có giải pháp tốt hơn, tôi rất muốn tự mình nghe. Ngay cả khi sử dụng "Break Lock" tức là mở khóa bằng tùy chọn lực lượng cũng không thay đổi được gì.


-1

Dọn dẹp, chọn hộp kiểm tất cả => Điều này làm việc cho tôi


Giống Đức Thắng Nguyễn. Thực hiện Dọn dẹp "mạnh mẽ".

-1

Tôi gặp phải sự cố này sau các thao tác sau:

  1. nhận khóa trên thư mục
  2. sửa đổi tệp
  3. xóa tệp và cập nhật thư mục -> tệp mới được tải xuống
  4. cố gắng cam kết hoặc phát hành khóa

Cuối cùng tôi đã giải quyết vấn đề bằng cách buộc lại khóa: TortoiseSVN -> Nhận Khóa -> kiểm tra "khóa trộm" sau đó cam kết hoặc phát hành khóa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.