2008-11-05 41 views
22

Có cách nào để xóa một thư mục, cho phép gọi thư mục đó từ thư mục SVN đệ quy không? Một tìm kiếm nhanh trên google chỉ nói với tôi làm thế nào để đệ quy xóa tất cả các thư mục svn và đây không phải là những gì tôi muốn làmXóa đệ quy SVN

+0

Có gì sai với "svn rm FolX"? –

+1

Anh ấy nói rằng có nhiều thư mục FOIX lan truyền khắp cây.Lệnh của bạn sẽ chỉ xóa một trong thư mục hiện tại. –

Trả lời

31

Hãy thử một cái gì đó như sau trên một hệ thống posix:

find ./ -name "FolderX" | xargs svn delete --force 

này sẽ tìm thấy tất cả phù hợp với các tập tin/thư mục bắt đầu trong thư mục hiện hành và thực hiện hành động trên chúng tức là svn delete. Tôi không chắc chắn làm thế nào để làm điều này trong cửa sổ mặc dù không có Cygwin.

Đối với win32, các commenter dưới đây gợi ý một giải pháp tương tự (cmd):

for /R . %1 in (*.EXT) do svn delete %1 
+1

Tôi thực sự muốn có một lệnh nhắc lệnh Windows tương đương cho việc này. Tôi có thể cài đặt Cygwin tôi đoán. –

+3

Tìm thấy nó, tôi muốn đệ quy xóa tất cả các tệp * .EXT khỏi kho lưu trữ của tôi, trong điều kiện nhắc lệnh Win32 (DOS) là: cho/R. % 1 trong (* .EXT) làm svn xóa% 1 –

+0

Ok, tôi đã cập nhật câu trả lời. –

4

svn delete FolX --force nên làm các trick ngay cả khi có file không phiên bản trong cây con.

+1

Ông nói FolX (cho 'Thư mục X ''), không phải FOIX :) – ngn

3
find . -name ".svn" -exec rm -rf {} \; 

Nguồn: Recursive SVN delete

+7

Nó không liên quan. Câu hỏi là về xóa từ repo svn, không phải cục bộ. – pmod

+0

anh ấy không cần điều đó – kappa

0

Tôi tạo ra một SH để chạy một cách dễ dàng như là một "rm" chung.

  • Trong "/ usr/bin" Tôi tạo ra "rm_svn_dirs" tập tin, một đặt:

#!/bin/bash

if [ $\# -eq 0 ] ; then

echo 
    echo "Path not found" 
    echo "Use:" 
    echo " $0 path"` 
    echo " $0 /var/www/test/svn/website" 
    echo " $0 ." 
    echo "Operation cancelled" 
    echo 
    exit 1 
fi 

echo 
echo "Recursively delete .svn directories in:" 
if [ $1 != "." ] ; then 
    echo $1 
else 
    pwd 
fi 

echo 
read -p "Continue? [Yes/No]: " x 
if [ "$x" != "Yes" ] ; then 
    echo "Operation cancelled" 
    echo 
    exit 1 
fi 

find $1 -name .svn -exec rm -rf {} \; 
echo "End!" 
echo 
exit 0` 
  • Lưu tập tin, và làm cho nó thực thi:

    chmod +x rm_svn_dirs

  • Cách sử dụng:

    rm_svn_dirs /var/www/svn/www

    rm_svn_dirs ./svn/www

    rm_svn_dirs .

0

Nó làm việc tốt cho tôi

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf 
0

Đừng quên tăng gấp đôi%, nếu bạn muốn sử dụng nó trong một batch file:

cho/R. % 1 trong (* .EXT) làm svn xóa% 1

_

cho/R. %% 1 in (* .EXT) do svn delete %% 1