2009-10-14 37 views
22

Xóa cục bộ tệp theo sau cập nhật svn sẽ khôi phục bản sao cục bộ của tệp đó. Tuy nhiên điều này dường như không áp dụng cho các thư mục. Có cách nào để làm cho nó hoạt động cho các thư mục không?cách khôi phục thư mục đã xóa cục bộ?

EDIT: Đây là những gì giao diện điều khiển đầu ra trông giống như:

C:\svn\Google Project Hosting\xulwin\xulrunnersamples>rmdir /S /Q treeview 

C:\svn\Google Project Hosting\xulwin\xulrunnersamples>svn up 
D treeview 
Updated to revision 50. 

EDIT2: Tôi đã sử dụng svn trong hơn hai năm nay và tôi không bao giờ có lỗi này trước đây. Nhưng tôi đã không thay đổi bất kỳ cài đặt nào. Điều duy nhất tôi có thể nghĩ đến là tôi đã tạo một Local Repository với Tortoise SVN ngày hôm nay trên ổ đĩa cứng gắn ngoài của tôi để sao lưu một số thứ cũ không liên quan. Nhưng đó không phải là nguyên nhân của vấn đề vì hành vi xảy ra cả trên bản sao cục bộ từ kho lưu trữ cục bộ này và mã của tôi từ Google Project Hosting.

EDIT3: WTF Tôi đột nhiên không thể tạo lại lỗi nữa. Tất cả hoạt động như bây giờ. Nhưng tôi không thay đổi gì cả.

EDIT4: Trong EDIT1 tệp có vẻ như được đánh dấu là đã xóa, nhưng không phải vì lệnh svn commit không làm gì cả. Tortoise Check cho danh sách sửa đổi không có gì.

Lưu ý: Khi sự cố vẫn xảy ra, bản cập nhật hoàn toàn đệ quy đã khôi phục thư mục.

+0

Các bạn đã cố gắng sử dụng git? –

Trả lời

65

Tôi đã gặp sự cố này hôm nay với svn 1.5.6. svn up --force the_dir_path đã sửa nó cho tôi.

Để tái tạo:

$ svn up 
Updated to revision X. 
$ rm -rf the_dir_path 
$ svn up 
D the_dir_path 
Updated to revision X. 
$ svn up 
Updated to revision X. 
$ svn up --force the_dir_path 
A .... 
A .... 
Updated to revision X. 
+0

Đối với tất cả mọi người cố gắng gõ 'dir' theo nghĩa đen (giống như tôi), nó sẽ được thay thế bằng thư mục thực tế bạn muốn lấy lại –

+7

Đây là câu trả lời duy nhất giải quyết được cho tôi. Hoàn nguyên, hồi quy đệ quy vv đã không hoạt động. Cảm ơn! – Laurent

+0

cảm ơn vì đã cứu tôi :) – Stevko

14

Bạn có thể muốn sử dụng lệnh svn revert thay vì thực hiện quá trình xóa các mục và sau đó cập nhật để hoàn nguyên chúng. Sử dụng chuyển đổi -R để đệ quy hoàn nguyên tệp/thư mục.

svn thông tin trợ giúp cho Hoàn nguyên là như sau

revert: Restore pristine working copy file (undo most local edits). 
usage: revert PATH... 

    Note: this subcommand does not require network access, and resolves 
    any conflicted states. However, it does not restore removed directories. 

Valid options: 
    --targets ARG   : pass contents of file ARG as additional args 
    -R [--recursive]   : descend recursively, same as --depth=infinity 
    --depth ARG    : limit operation by depth ARG ('empty', 'files', 
          'immediates', or 'infinity') 
    -q [--quiet]    : print nothing, or only summary information 
    --changelist ARG   : operate only on members of changelist ARG 
          [aliases: --cl] 

Global options: 
    --username ARG   : specify a username ARG 
    --password ARG   : specify a password ARG 
    --no-auth-cache   : do not cache authentication tokens 
    --non-interactive  : do no interactive prompting 
    --trust-server-cert  : accept unknown SSL server certificates without 
          prompting (but only with '--non-interactive') 
    --config-dir ARG   : read user configuration files from directory ARG 
    --config-option ARG  : set user configuration option in the format: 
           FILE:SECTION:OPTION=[VALUE] 
          For example: 
           servers:global:http-library=serf 
+2

Xóa thư mục theo sau là cập nhật svn là cách tiện dụng để dọn dẹp các tệp rác/tạm thời bên trong thư mục đó. – StackedCrooked

+0

Và nếu thư mục bị hỏng nó thường nhanh hơn để đơn giản xóa và khôi phục nó hơn là cố gắng sửa chữa nó. – StackedCrooked

+7

Hoàn nguyên không tạo lại các thư mục đã xóa – Damien

5

sử dụng svn revert (-R) foldername để đưa nó trở lại. bạn đã xóa nó bằng cách sử dụng svn rmsvn up sẽ không tạo lại cho bạn vì nó vẫn bị đánh dấu là đã xóa

+0

Ông đã không làm' svn rm' nhưng chỉ 'rm'.Tôi cũng đã có vấn đề này và hoàn nguyên đã không sửa chữa nó. Chỉ 'cập nhật - lực lượng' đã làm. – Laurent

+0

@Laurent, cảm ơn (nếu bạn vẫn còn ở đây), nếu bạn đã có đó như là một câu trả lời tôi đã có thể bỏ phiếu đó. – 244an

3

tôi sử dụng cho vô tình xóa lệnh thư mục

SVN CẬP NHẬT

trên thư mục mẹ

0
svn status|grep ^D|^Ct -c9-|xargs -n1 svn revert 
Các vấn đề liên quan