Lỗi SVN - Không phải là bản sao làm việc


215

Gần đây, máy chủ svn của chúng tôi đã thay đổi và chúng tôi đã thực hiện chuyển đổi svn.

Vì bản sao làm việc có một lượng lớn tài nguyên không được đảo ngược, bản sao làm việc đã bị khóa và chúng tôi bắt đầu chuyển đổi thư mục theo thư mục cho tất cả các thư mục trong svn, hoạt động hoàn toàn tốt.

Nhưng ở cấp cao nhất của kho lưu trữ, khi tôi cố cập nhật tệp, tôi nhận được svn: Bản sao làm việc '.' khóa bị khóa và dọn dẹp cũng không giúp được gì. Khi tôi dọn dẹp, tôi gặp các lỗi như thế này - svn: 'content' không phải là thư mục sao chép hoạt động

Thanh toán mới KHÔNG phải là một lựa chọn nào cả. Có cách nào khác để dọn dẹp và giải phóng ổ khóa và thực hiện chuyển đổi hoàn toàn không?

EDIT: Đoạn cuối trong câu trả lời của JesperE

Nếu bạn nhận được "không phải là bản sao hoạt động" khi thực hiện "svn dọn dẹp" đệ quy thì tôi đoán là bạn có một thư mục nên là một bản sao hoạt động (tức là thư mục .svn tại toplevel nói như vậy), nhưng nó bị thiếu thư mục .svn riêng. Trong trường hợp đó, bạn có thể cố gắng chỉ xóa / di chuyển thư mục đó và sau đó thực hiện cập nhật cục bộ

dường như là giải pháp cho vấn đề trong kho lưu trữ. Tôi đã xác định các thư mục đó và thực hiện kiểm tra mới các thư mục cụ thể đó và wow, các khóa được phát hành trong lần dọn dẹp tiếp theo! Cảm ơn rất nhiều JesperE !!

Nhưng, tôi vẫn không thể tìm ra lỗi chuyển đổi svn mà bây giờ đọc một cái gì đó như,

svn: Kho lưu trữ tại 'svn: // repourl / reponame / Foldername' có uuid 'm / reponame', nhưng WC có 'b5b39481-0ff6-784b-ad26-2846b9ea8e7d'

Có ý kiến ​​gì không?


đối với người dùng R gặp phải lỗi này: github.com/wch/r-source/wiki#adding-svn-inatures
isomorphismes

Câu trả lời:


126

Nếu bạn nhận được "không phải là một bản sao làm việc" khi thực hiện đệ quy thì svn cleanuptôi đoán rằng bạn có một thư mục nên là một bản sao làm việc (tức là .svnthư mục ở cấp cao nhất nói như vậy), nhưng nó bị thiếu .svnthư mục riêng . Trong trường hợp đó, bạn có thể cố gắng chỉ xóa / di chuyển thư mục đó và sau đó thực hiện cập nhật cục bộ (tức là rm -rf content; svn checkout content).

Nếu bạn gặp not a working copylỗi, điều đó có nghĩa là Subversion không thể tìm thấy một .svnthư mục thích hợp trong đó. Kiểm tra xem nếu có một .svnthư mục trongcontents

Giải pháp lý tưởng là kiểm tra mới, nếu có thể.


1
Tôi đồng ý, thực hiện kiểm tra mới thay vì cố gắng di chuyển bản sao làm việc của bạn với repo.
Tigraine

2
Vấn đề của tôi là tôi đã di chuyển sang một máy chủ mới và khôi phục các bản sao lưu của hệ thống tập tin với công việc chưa được cam kết và đã sử dụng svnadmin để lọc các dự án cũ mà tôi không còn cần nữa. Vì vậy, kho lưu trữ của tôi chứa tất cả thông tin tôi cần, nhưng có UUID mới. Trong trường hợp này, tôi sẽ xử lý các tệp đã thay đổi, kiểm tra mới và sau đó gỡ bỏ.
Drarok

Đề xuất của bạn trong đoạn đầu tiên không hoạt động trên hệ thống của tôi (W7 + Cygwin). Thay vì cập nhật rm & svn đã làm điều đó.
Jukka Dahlbom

17
CẢNH BÁO: rm -rf xóa thư mục contentvĩnh viễn. Hãy sao lưu trước khi thực hiện nó.
KrishPrabakar

47

Tôi đã gặp một tình huống tương tự ( svn: 'papers' is not a working copy directory) theo một cách khác, vì vậy tôi nghĩ rằng tôi đã đăng câu chuyện chiến đấu của mình (đơn giản hóa):

$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied

Giáo sư! sửa quyền ... sau đó:

$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~     papers
$ svn cleanup
svn: 'papers' is not a working copy directory

Và thậm chí di chuyển papersra khỏi đường và chạy svn up(hoạt động cho OP) cũng không khắc phục được. Đây là những gì tôi đã làm:

$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers

Điều đó đã làm việc.


6

Tôi đã giải quyết nó bằng cách

  1. Sao chép một bản sao lưu của các thư mục bị ảnh hưởng
  2. SVN hoàn nguyên các thư mục bị ảnh hưởng
  3. Dán các tập tin trở lại từ bản sao lưu

Trong trường hợp của tôi, sự cố là do tập tin .svn bị xóa.


Làm thế nào để làm nó ? Vui lòng giải thích ngắn gọn
Anand Savigate

5

Có lẽ bạn vừa sao chép cây thư mục và cố gắng thêm cái thấp nhất.

SVN
|_
  |
  subfolder1
       |
       subfolder2   (here you get an error)

trong trường hợp đó bạn phải cam kết thư mục ở cấp trên.


3

Giải pháp thay thế: Đổi tên thư mục không phải là 'bản sao làm việc' Thanh toán / cập nhật / khôi phục thư mục này một lần nữa Di chuyển các tệp từ thư mục đã đổi tên sang các thay đổi Cam kết mới

Lý do: Bạn đã thực hiện một số thay đổi đối với một số tệp trong thư mục .svn, điều này phá vỡ 'bản sao làm việc'


3

Nếu bạn đã tạo một tệp trong một thư mục mới, thay vì 'svn thêm newdir / newfile' hãy sử dụng 'svn add newdir' vì bạn cần thêm thư mục. Tất cả các tệp trong thư mục sẽ được thêm theo mặc định.


1

Tôi chỉ nhận được "không phải là một bản sao hoạt động" và đối với tôi lý do là Automouter trên Unix. Chỉ cần một "cd / path / to / work / thư mục" mới thực hiện thủ thuật.


1

Tương tự, tôi cần cập nhật thư mục 'đóng góp':

  1. Đã chuyển thư mục cũ ra,
  2. Sao chép cái mới
  3. Sao chép các thư mục .svn vào mỗi thư mục mới (chỉ ba trong trường hợp của tôi).

Tôi cũng gặp vấn đề do các thư mục .svn bị xóa.

Giải quyết.


Tìm thấy điều này khoảng 4 giờ để dọn dẹp SVN bằng cách sử dụng plugin Eclipse - thời gian tốt! Bản sao làm việc bị khóa - không, không, hãy đến với một thông điệp tốt hơn mọi người, cảm ơn.
Darth Jon

1

Tôi đã thử dán thư mục .svn từ thư mục con vào thư mục gốc. Nó hoạt động !!!


1

Đây là những gì tôi đã làm:

  1. đổi tên thân cây thành thân cây_
  2. tạo một thân thư mục mới
  3. Kiểm tra lại và làm gián đoạn quá trình sau khi một vài tệp được kiểm xuất
  4. Di chuyển các tệp từ trunk_ sang trunk
  5. Làm svn dọn dẹp
  6. Làm svn cập nhật. Điều này sẽ cập nhật trạng thái của các tệp và sau đó tất cả các tệp của bạn sẽ được phiên bản.

1

Tôi cũng gặp vấn đề này trong hoạt động khác biệt svn, nó được gây ra bởi đường dẫn tệp không chính xác, bạn nên thêm './'để chỉ ra thư mục tập tin hiện tại.


0

svn: Kho lưu trữ tại 'svn: // repourl / reponame / Foldername' có uuid 'm / reponame', nhưng WC có 'b5b39481-0ff6-784b-ad26-2846b9ea8e7d'

Mỗi repo lật đổ có một định danh duy nhất (uuid). Subversion sử dụng điều này để đảm bảo rằng repo thực sự giống nhau khi làm những việc như chuyển đổi. Bạn có lẽ nên thay đổi uuid trên máy chủ để giống như trước đây.


Thay đổi uuid trên máy chủ - Làm thế nào để làm điều này?
Vijay Dev

Thành thật mà nói, tôi không có ý kiến ​​gì, tôi chỉ cho rằng nó có thể được thực hiện. Bạn đã kiểm tra trong Subversion Book nói bất cứ điều gì về nó?
JesperE

0

Nó có thể là một định dạng sao chép làm việc không phù hợp? Nó đã thay đổi giữa svn 1.4 và 1.5 và các công cụ mới hơn tự động chuyển đổi định dạng, nhưng sau đó các công cụ cũ không còn hoạt động với bản sao được chuyển đổi.


0

Bạn phải xóa một tệp SVN - cơ sở khỏi dự án của bạn (là các tệp chỉ đọc). Do đó, bạn nhận được lỗi này.

Kiểm tra lại một dự án mới, hợp nhất các thay đổi (nếu có) của dự án SVN cũ của bạn với dự án mới bằng cách sử dụng "Winmerge" và cam kết các thay đổi trong kiểm tra mới nhất của bạn.


0

@JesperE đề cập rằng bạn cần thay đổi uuid. Sau đây sẽ giúp bạn đạt được điều này.

Trên SVN 1.5+, bạn có thể thực hiện svnadmin setuuid; sau đó bạn có thể kiểm tra xem nó đã được đặt chính xác chưa bằng svnlook uuid. Trên các phiên bản trước của SVN, đó là một quá trình khó khăn hơn. Xem http://chestofbooks.com/computers/revision-control/subversion-svn/Managing-Repousing-UUIDs-Reposadmin-Maint-Uuids.html

Ngoài ra, UUID của "m / reponame" có vẻ đáng ngờ. Tôi tin rằng nó phải là một số có định dạng hex như bản sao đang hoạt động, vì vậy có thể hành động này sẽ cải thiện mọi thứ :-)

[Ban đầu tôi nhận xét về câu trả lời của @ JesperE , nhưng đã tạo ra câu trả lời này để làm cho nó rõ ràng hơn với mọi người và hữu ích hơn cho Google. Kể từ khi tôi xóa bình luận của tôi. ]


0

Có vấn đề tương tự, hóa ra chúng ta đã có Slik 1.6.2 cũng như Rùa trên cùng một máy. Rùa đã được cập nhật (và đã cập nhật bản sao hoạt động) nhưng Slik thì không, vì vậy Rùa hoạt động tốt, nhưng dòng lệnh thất bại với:

svn: '.' không phải là một thư mục sao chép làm việc

Xóa cả Rùa và Slik, sau đó cài đặt lại Rùa bằng các công cụ dòng lệnh đã cho phép tôi sửa lỗi này.


0

cho mac: - kiểm tra từ phía máy chủ và một cửa sổ mới sẽ mở để chọn thư mục từ máy cục bộ của bạn thay vì đặt tất cả mã của bạn vào thư mục đã chọn, sau đó mở svn cục bộ và thêm và cam kết dự án


0

Hôm nay tôi đã tìm thấy vấn đề tương tự /FILE_NAME/ is not a working copyvào buổi sáng và tôi đã dành hơn hai giờ để giải quyết nó. Sau một thời gian dài RND và Google tôi đã tìm thấy một số giải pháp và đó là CHECKOUT.

  1. CHECKOUTtừ SUBVERSIONđịa phương như dự án mới.
  2. Thay đổi một số mã trong tệp java và CAM KẾT dự án.
  3. Nó hoạt động với tôi.

Hy vọng nó sẽ hữu ích cho bạn.


0

Gần đây tôi đang sử dụng các nhà phát triển Mac khác. Tôi cũng gặp tình huống tương tự; Đầu tiên tôi cần nhập đường dẫn repo đến terminal nhưng tôi không biết, vì nó cho biết tên người dùng và mật khẩu của bạn là gì.


0

Tôi vừa gặp phải trường hợp thư mục .svn nằm trên máy chủ nfs trên một máy khác và máy khách nfs không chạy dịch vụ khóa tệp ( lockd).

svn: E155007: '/mnt/svnworkdir' is not a working copy

Điều này đã biến mất một lần lockd được bắt đầu trên máy chủ nfs client.

Có vẻ như lật đổ có thể đưa ra một thông báo lỗi tốt hơn khi nó gặp sự cố khóa tệp. Đây là lật đổ 1.10.0


0

Tôi đã thực hiện kiểm tra mới từ cùng một dự án đến một vị trí khác sau đó sao chép thư mục .svn từ đó và thay thế bằng thư mục .svn cũ của tôi. Sau đó được gọi là chức năng cập nhật svn và mọi thứ đã được đồng bộ hóa đúng cách.


-1

Xóa thư mục .svn có trong máy cục bộ của bạn. Nhấn biểu tượng windows và gõ .svn, xóa toàn bộ thư mục. Nó làm việc cho tôi.

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.