2012-02-13 27 views
12

tôi muốn chuyển một phần của offsite SVN repo của tôi, vào một thể hiện AWS & đang theo trang này (Repository Maintenance)svndumpfilter không thành công với "đường dẫn nguồn bản sao hợp lệ ..." lỗi

Tôi đã lấy một dump của toàn bộ repo (lệnh Windows):

  • svnadmin dump c:\repo > all_repo

Tiếp theo là để lọc nó, để chỉ bao gồm các dự án mà tôi quan tâm (được gọi là "M1").

  • type all_repo | svndumpfilter include M1 --drop-empty-revs > m1

Tôi biết điều này là đúng, như tôi đã làm nó trên một số các dự án khác rồi.


Mở dự án này, nó phá vỡ với các lỗi đã nêu trong tiêu đề của bài viết này. Các từ ngữ chính xác là:

svndumpfilter: bản sao hợp lệ đường dẫn nguồn '/ cá nhân/Richard/M1_Config'

Quá trình này đã cố gắng để viết thư cho một đường ống không tồn tại.

Thư mục mà lỗi đề cập đến là tiện ích cấu hình mà tôi đã viết và gửi trong thư mục cá nhân của mình và không nằm trong thư mục gốc/m1 .... Tôi không muốn đưa nó vào trong tập tin lọc, nhưng không biết làm thế nào để biết điều này để các lệnh svn.

  1. Làm cách nào để lọc chính xác toàn bộ thư mục M1 và con của nó, trong khi loại trừ hoàn toàn thư mục Cá nhân/Richard/M1_Config?
  2. Làm thế nào tôi có thể chắc chắn liệu các tập tin xuất khẩu có chứa các thông tin chính xác để tái tạo một cách chính xác thư mục M1 trên SVN từ xa?

Trả lời

14

Tại một số điểm /Personal/Richard/M1_Config đã được sao chép sang đường dẫn M1. Các thông báo lỗi được nói rằng nó không thể thực hiện sao chép từ các nguồn đã được lọc ra. Kiểm tra phiên bản mà svndumpfilter phàn nàn về.

Quý vị phải ghi /Personal/Richard/M1_Config con đường ngay cả khi bạn không muốn nó trong việc nhập khẩu chính thức. Bạn cũng cần phải bao gồm các /Personal/Richard/Personal đường vì mỗi cư trú tại đó là mẹ.lệnh của bạn cần phải được:

type all_repo | svndumpfilter include M1 "/Personal" --drop-empty-revs > m1 

Nếu bạn có con đường khác, nói /Personal/James rằng không cần thiết và bạn muốn loại trừ chúng thì bạn có thể chạy một svndumpfilter thứ hai để lột họ:

type m1 | svndumpfilter exclude "/Personal/James" --drop-empty-revs > m1_2 
+0

Có cách nào phạm tội để tìm ra các bộ phận phù thủy phải là includet hay không. Tôi đang làm việc với thử và lỗi vào lúc này. –

+0

Bạn có thể tìm kiếm thông qua các changesets và tìm 'copy-from-path' có ảnh hưởng đến đường dẫn quan tâm. Bạn có thể làm điều này bằng cách tìm kiếm văn bản thông qua một tệp kết xuất, hoặc có lẽ với svnlook. – Craig

16

tôi đã thử ít nhất 4 ứng dụng khác nhau để làm điều đó, chỉ có vậy thực sự làm việc đã sử dụng svndumpfilterIN:

svnadmin dump c:\repo > all_repo 
svndumpfilter.py all_repo --repo=c:\repo --output-dump=m1 include M1 

Đây là số full answer on linux của tôi.

Đây là những gì tôi đã cố gắng và không làm việc:

+0

Nghiêm túc, cảm ơn bài đăng. Sau khi dành rất nhiều thời gian, đây là thứ duy nhất hoạt động hoàn hảo. – rwb

+0

tập lệnh này hoạt động hoàn hảo ... – michabbb

+0

Làm việc tốt cho tôi. –

0

Tôi chạy vào cùng một vấn đề. Chúng tôi có nhiều đường dẫn di chuyển và sao chép từ xa trong kho lưu trữ và công cụ duy nhất thực sự trợ giúp là svndumpsanitizer Một chương trình C tập tin đơn giản có thể được biên dịch trên Cygwin hoặc Linux và nó hoạt động như một nét duyên dáng trên tệp kết xuất gia tăng 170 GB với ~ 160.000 cam kết.

Các vấn đề liên quan