2012-06-14 18 views
15

Tôi đang cố nhập kho SVN vào Git. Khi tôi chạy một trong hai lệnh này:Tác giả không được xác định khi nhập kho SVN vào Git

git svn --authors-file=/path/to/authors --trunk=trunk clone https://my-repo/project . 

hoặc lệnh này:

svn2git https://my-repo/project --no-minimize-url -v --authors /path/to/authors 

Cả hai trả về lỗi này:

Author: patrick not defined in /path/to/authors file 

..nhưng như xa như tôi có thể nói, không có gì là sai với tác giả của tôi:

$ grep patrick /path/to/authors 
patrick = Patrick <[email protected]> 

Lỗi đó không xảy ra cho đến khi nó được sửa đổi 8700, do đó, nó phải được lấy tên tác giả khác một cách chính xác.

Điều gì có thể xảy ra ở đây? Cảm ơn.

+0

Tôi nghĩ có thể là do tôi đã sử dụng <[email protected]> cho nhiều tên người gửi. – Greg

Trả lời

2

Có hai vấn đề:

Tôi đã giải quyết vấn đề đầu tiên bằng cách gán địa chỉ email duy nhất cho từng tác giả.

Ngoài ra, tên người dùng là "patrick". Tôi không biết làm thế nào điều đó xảy ra, nhưng bằng cách sử dụng svnadmin tôi đã có thể thay đổi tất cả các trường hợp của biệt danh đó chỉ là "patrick".

+1

Tôi gặp vấn đề tương tự. Nó chắc chắn không phải là vấn đề để có nhiều tài khoản được ánh xạ tới cùng một địa chỉ email. Tôi đã có nhiều trường hợp SVN có tác giả với một không gian thêm ở cuối. Việc xóa cho phép quá trình di chuyển diễn ra suôn sẻ. – nopuck4you

+0

bạn đã sử dụng lệnh svnadmin nào? – dashesy

+0

dấu gạch ngang: http://stackoverflow.com/a/11767274/329062 – Greg

9

Tôi đã gặp sự cố tương tự khi cố gắng thực thi điều này trên Windows. Nó bật ra rằng mã hóa của tập tin mà tôi lưu trữ các tác giả trong đã được thiết lập để UTF-8 thay vì UTF-8 mà không có BOM. Khi phiên bản "with BOM" thêm một số byte bổ sung vào đầu tệp, tác giả đầu tiên trong danh sách không bao giờ được tìm thấy.

+0

Sử dụng công cụ di chuyển BitBucket, tự động tạo tệp authors.txt. Hơn 2 năm sau câu trả lời của bạn và câu hỏi ban đầu, tôi đã có cùng một vấn đề. Tệp của tôi đã được mã hóa dưới dạng UTF16LE vì một số lý do. Thay đổi nó thành UTf-8 mà không có BOM đã làm các trick và bộ chuyển đổi đang chạy atm. Cám ơn! – Psychokiller1888

+0

Trên Windows, bạn có thể sử dụng Notepad ++ để chuyển đổi tệp thành UTF8 mà không cần BOM. Mã hóa -> Mã hóa bằng UTF-8 (đơn giản, không có gì sau đó là mã không có BOM). – BogdanC

1

Tôi gặp vấn đề tương tự. Định dạng của authors.txt là nghiêm khắc với các hình thức

svn name = user name &#8249;email&#8250; 

như trong:

cruise-control = Cruise Control &#8249;[email protected]&#8250; 
user1 = User1 Lastname1 &#8249;[email protected]&#8250; 
user2 = User2 Lastname2 &#8249;[email protected]&#8250; 

Ví dụ định dạng này sẽ không làm việc:

user1 = [email protected] 
0

tôi thấy lỗi tương tự , nhưng vì một lý do khác. Tôi sẽ đăng giải pháp của tôi ở đây dưới dạng "câu trả lời", vì đó có thể là câu trả lời cho những người khác tìm thấy câu hỏi này (ngay cả khi đó không phải là giải pháp/câu trả lời cho vấn đề/câu hỏi của OP):

Tôi đã chạy số svn log từ thanh toán của dự án. Nhưng tôi chỉ có trunk được kiểm tra, vì vậy chỉ những tác giả đã thực hiện thay đổi đối với thân cây mới được đưa vào. Điều này rõ ràng là hầu hết các tác giả, do đó, bản sao sẽ chạy trong một thời gian dài (hơn 90 phút) trước khi nó sẽ sụp đổ với lỗi.

Khi kiểm tra toàn bộ gốc của dự án không phải là tùy chọn khả thi (nó có hơn 500 chi nhánh và thẻ, và bãi chứa hơn 600 GB), tôi thấy rằng tôi chỉ có thể chạy svn log trên repo từ xa như thế này:

svn log -q svn://server/path-to-project-root 

lệnh thực tế cũng đã làm một số lọc và định dạng của các đầu ra:

svn log -q svn://server-url/path-to-project-root | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt 
0

Look cho bất kỳ khoảng trống trong phần đầu của tên tác giả và xóa các dấu cách. Nếu điều đó không có tác dụng, hãy thử chuyển tên tác giả lên đầu tệp.

0

Tôi đã có cùng một vấn đề nhưng nguyên nhân thực sự khá khác nhau: Tôi đã sử dụng Powershell để kết xuất danh sách tác giả từ SVN và tôi không nhận ra rằng nó đã lưu kết quả dưới dạng tệp UTF-16.

Hóa ra git (ít nhất, lên đến git cho windows phiên bản 2.16.1) không thể sử dụng tệp UTF-16. Chuyển đổi các tập tin sang UTF-8 đã làm các trick cho tôi.

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