2010-01-29 14 views
12

Tôi cố gắng để sao chép Papercut, an smtp server emulatorĐịnh dạng của một tệp tác giả cho git svn, đặc biệt cho các ký tự đặc biệt như dấu gạch chéo ngược hoặc dấu gạch dưới là gì?

tôi nhận được danh sách các tác giả SVN với svn log -q https://papercut.svn.codeplex.com/svn | grep -e '^r'| awk 'BEGIN {FS="|"};{print $2}'|sort|uniq được đem lại cho tôi

RNO\_MCLWEB 
SND\krobertson_cp 

Tôi tạo ra một authors.txt với định dạng SVN_User = UserName <Email>, nhưng khi tôi chạy

git svn clone --no-metadata -A authors.txt https://papercut.svn.codeplex.com/svn papercut 

nó than phiền "tác giả: RNO \ _MCLWEB không được định nghĩa trong tập tin authors.txt"

Tôi đã thử đặt \ trước '\' và '_' để cố gắng thoát khỏi chúng, và thêm dấu ngoặc kép xung quanh tên, nhưng không hoạt động.

tôi không thể tìm thấy bất kỳ mô tả rõ hơn về định dạng file authors.txt hơn SVN_User = UserName <Email>

+0

Loại 'git svn bản sao -help' và tìm kiếm cho môi trường 'tùy chọn -A' cho một mô tả tốt về' tệp authors.txt'. –

Trả lời

19

Tôi ghét phải là "anh chàng", nhưng tôi chỉ cho nó một thử và nó làm việc tốt cho tôi. Dưới đây là bản sao của tập tin tác giả tôi đã sử dụng:

RNO\_MCLWEB = Ronald McDonald <[email protected]> 
SND\krobertson_cp = Some Guy <[email protected]> 

tôi, tuy nhiên, sử dụng một phương pháp hơi khác so với bạn đã làm để tạo ra tên tác giả, sau these directions. Câu thần chú cụ thể của tôi là:

$ svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /' 

Tôi cũng đang sử dụng Git 1.6.6.1 (nghi ngờ tạo sự khác biệt nhưng bạn không bao giờ biết).

Tôi đã thông báo rằng khi tôi sử dụng đường ống dẫn của bạn để có được các tác giả SVN, có các khoảng trống trước tên người dùng SVN của họ trong tệp kết quả (nghĩa là, có một khoảng trống trong cột 1 trên mỗi dòng). Không biết nếu điều đó tạo nên sự khác biệt hay không.

+0

Lần đầu tiên tôi tạo authors.txt, tôi không đặt một chuỗi như [email protected] cho email, chỉ Tôi đoán đó là vấn đề, vì authors.txt có văn bản bạn đã hiển thị đã sao chép không có vấn đề gì (git 1.6.5.1). Tôi nghĩ rằng tôi đã thử với địa chỉ email thích hợp, nhưng dường như không. Dù sao, cảm ơn. – jasonpenny

+0

Regex không chính xác - cần phải khớp hơn 1 char. Đã sửa lỗi: ''s /.*>(.*?)<.*/$ 1 = /'' – CoffeeMonster

10

Tôi gặp sự cố tương tự, nhưng với apache của người dùng. Trong tác giả nộp một dòng như thế này.

apache = Apache 

hoặc

apache = Apache <> 

Nhưng khi tôi đặt nó là

apache = Apache <[email protected]> 

repo của tôi bắt đầu nhân bản normaly. Hãy đảm bảo rằng bạn đã đặt tất cả tên tác giả và email chính xác, với định dạng theo sau

svn_user_name = JustNameInGit <[email protected]> 

Mọi trường bắt buộc !!!

+0

Xem [câu hỏi này] (http://stackoverflow.com/q/11579311/168775) để thảo luận tương tự. – eykanal

+0

Lưu ý rằng mọi lĩnh vực đều bắt buộc phải giúp tôi. Các liên kết từ eykanal ngụ ý rằng nó không phải là có vẻ là đúng trong trường hợp ông liên kết, không phải trong một SVN nhập khẩu. – vmrob

0

tôi đã sử dụng những điều sau đây giúp bỏ qua tin nhắn với những từ như 'quyền' trong họ

svn log --xml | grep /author | sort -u | perl -pe 's/.>(.?)<./$1 = /' > users.txt 
Các vấn đề liên quan