2012-01-06 29 views
63

Tôi đang phát triển một trang web sử dụng subversion như kiểm soát phiên bản, nhưng có "thư mục làm việc bị khóa" thông báo lỗiLàm việc Copy Locked

Dưới đây là những câu chuyện:

Tôi có

PC-A:

  • Windows XP Pro
  • VisualSVN 2.5.2
  • Rùa SVN 1.7.3

PC-B:

  • Windows XP Home
  • Rùa SVN 1.7.3

Tôi có tạo kho lưu trữ trên PC-A sử dụng VisualSVN.

Từ PC-B, tôi Thanh toán http: \\ PC-A: 81 \ svn \ test \ trunk tới D: \ xampp \ htdocs \ test-lalala.

Từ PC-A, tôi cũng kiểm tra http: \\ PC-A: 81 \ svn \ test \ trunk tới D: \ xampp \ htdocs \ test-lalala.

Tôi tạo một móc sau cam kết chạy tập tin của tôi-post-commit.bat vì vậy khi tôi cam kết http: \\ PC-A: 81 \ svn \ test \ trunk, thư mục D: \ xampp \ htdocs \ test -lalalaon PC-A sẽ được cập nhật, vì vậy những người khác có thể xem kết quả.

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\xampp\htdocs\test-lalala" --username myusername --password mypassword --config-dir "C:\Program Files\VisualSVN Server\conf" 

Trên PC-B, tạo tệp index.php và cam kết. Khi tôi cam kết, tôi nhận được thông báo lỗi này

error message

Trên PC-A, tôi cố gắng nhấp chuột phải vào D: \ xampp \ htdocs \ test-lalala TortoiseSVN> CleanUp, và kiểm tra "bản sao làm việc dọn dẹp trạng thái "và" Bao gồm các phần tử bên ngoài "(được chọn theo mặc định). Hãy thử thêm tệp và cam kết, nhưng vẫn nhận được thông báo lỗi tương tự.

Tôi cố gắng tìm tệp khóa trên thư mục .svn nhưng không có tệp khóa. Tôi cũng cố gắng xóa bản sao làm việc trên PC-A D: \ xampp \ htdocs \ test-lalala và kiểm tra lại, nhưng khi tôi cam kết, vẫn nhận được thông báo lỗi tương tự.

Cách giải quyết thông báo lỗi này? Vì vậy, khi tôi cam kết, thư mục sẽ được cập nhật tự động?

+0

Jonathon J Câu trả lời của Howey có hiệu quả đối với tôi. Tôi phải làm một điều nữa, đó là đóng cửa phòng thu trực quan của tôi trước khi dọn dẹp. –

Trả lời

1

Tôi đã kết thúc bằng lệnh xuất thay vì lệnh cập nhật. Đây là móc hậu sau

"C: \ Program Files \ VisualSVN Server \ bin \ svn.exe" xuất "D: \ xampp \ htdocs \ test-lalala" --quiet --non-interactive - force --username myusername --password mypassword

0

Tôi đã gặp phải các sự cố tương tự như bạn mô tả. Nó dường như là một lỗi trên Rùa 1.7.3. Tôi đã quay trở lại 1.7.2, thực hiện một dọn dẹp và cập nhật. Hiện tại SVN/Rùa của tôi đang hoạt động tốt trở lại

6

Tôi đã sửa nó bằng cách xóa thư mục .svn ẩn và thay thế bằng thanh toán mới .svn và nó hoạt động. Có lẽ thư mục ẩn này đã bị rối tung!

+0

Đây là giải pháp duy nhất có hiệu quả đối với tôi. Cảm ơn! –

177

Mỗi khi tôi nhận được một bản sao làm việc bị khóa lỗi tôi chạy một "Clean up". Sau đó mọi thứ trở lại bình thường.

Trên dòng lệnh, bạn có thể thực thi svn cleanup cũng loại bỏ tệp khóa.

Lưu ý: Thực hiện thao tác này trên một thư mục cấp lên và điều đó sẽ giải quyết hầu hết các lần.

+0

Cảm ơn, đã giải quyết vấn đề bị khóa bản sao làm việc của tôi với lệnh dọn dẹp –

+15

đã làm việc cho tôi khi tôi dọn sạch một thư mục cấp từ vị trí bị khóa – waqaslam

+0

Nó hoạt động trên Ubuntu, tôi có Ubuntu trên Máy khách và Linux trên máy chủ và nó hoạt động. Trên thực tế vấn đề này xảy ra với tôi trên Linux thường xuyên hơn so với trên Windows. –

35

Để ai vẫn còn có vấn đề này (Lỗi:. Bản sao làm việc '{DIR}' bị khóa), tôi có giải pháp của bạn:

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

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

Hoặc

1a) Sử dụng Process Explorer hoặc tương tự để xóa các tay cầm thuộc sở hữu của TSVNCache.exe

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

Sau đó

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

Từ đó, vui lòng cập nhật/cam kết. Bạn có thể sao chép 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 chết quá trình TortoiseProc.exe trước khi Cập nhật kết thúc.

+1

+1 Đây là điều duy nhất làm việc cho tôi! – JHFB

+0

Chỉ cần chạy clean-up làm việc cho tôi nhưng điều này là sau khi đăng xuất và trên một lần nữa vì vậy có thể đã giết chết quá trình theo cách đó. – RedEyedMonster

+0

Tôi đã có Visual Studio chạy với AnkhSVN và đã phải đóng mà còn trước khi dọn dẹp sẽ làm việc. – xenoclast

21

Chạy "Làm sạch" ở cấp thư mục trên cùng.

+2

"làm việc thư mục bị khóa" lỗi có thể phát sinh do có một khóa của khách hàng svn tại thời điểm thư mục/tập tin ADD và không đúng cam kết và nó có thể được sửa chữa bằng cách dọn dẹp. – Prince

+1

Tôi gặp lỗi tương tự khi tôi không chạy dọn dẹp trong thư mục hàng đầu mức – Vincent

+3

+1 cho * “ở cấp thư mục trên cùng” *. Không ai đề cập đến nó và nó có vẻ quan trọng. – Melebius

1

lỗi "làm việc sao chép khóa", Chỉ cần làm theo các bước sau:

  1. Trong đó thư mục mà bạn đang nhận được lỗi trên bản cập nhật
  2. Đến thư mục cha của nó
  3. Trong thư mục cha đi đến". svn "hidden directory
  4. Xóa tệp có tên" khóa "
  5. Dọn dẹp và thực hiện

Bạn có thể cập nhật svn đúng cách mà không gặp lỗi

3

Nếu bạn là người dùng Windows và sử dụng người dùng "Rùa SVN".

Chọn Tệp. Click chuột phải. Tùy chọn 'Tortoise SVN' -> nhận Khóa. Sử dụng tùy chọn 'Ăn cắp khóa'.

0

Đối PHPStorm hoặc Intellij:

VCS -> Cleanup Project 
4

Tôi chắc chắn Nó làm việc tốt cho bạn

folder Chuyển đến cấp cao nhất SVN.

Right Click vào thư mục (có file svn của bạn) -> TortoiseSVN -> CleanUp

Điều này chắc chắn sẽ giải quyết vấn đề của bạn.

1

Rùa svn -> dọn dẹp

Thats tất cả trong SVN

+0

Thường thất bại hoặc làm sạch vô thời hạn – Asu

1

Như bạn được làm việc lỗi sao chép, Chỉ cần chạy svn cleanup mà sạch tất cả các file và thư mục không mong muốn. Nếu vẫn còn lỗi, hãy làm một việc.

Sao chép tệp của bạn sang ổ đĩa khác và xóa thư mục hoặc tệp sao chép đang hoạt động, sau đó thực hiện cập nhật nó sẽ tìm nạp tệp mới và sau đó thay thế bằng bản sao cập nhật của bạn và cam kết tương tự.

7

Tôi đã giải quyết bằng cách xóa bản ghi WC_Lock trong bản ghi khóa tệp ".vn" wc.db "SQLite trong bảng WC_LOCK.

Chỉ cần mở "wc.db" tập tin với biên tập viên SQLite và thực hiện

xóa từ WC_LOCK

Các giải pháp được đưa ra trong một liên kết mà tôi không thể tìm thấy ngay bây giờ. Nhưng thực sự là một sửa chữa; mà không lo lắng về việc xóa tất cả các thư mục

+0

Giải pháp duy nhất phù hợp với tôi! –