Danh sách tất cả người dùng đã cam kết với kho SVN


10

Đối với một kho lưu trữ SVN nhất định, tôi cần xác định danh sách tất cả người dùng đã từng cam kết bất cứ điều gì với kho lưu trữ đó. Kho lưu trữ này không phải là kho duy nhất trên máy chủ SVN, nhưng danh sách nên được giới hạn trong kho lưu trữ đó.


Bạn có thể phân tích cú pháp svn logcho những người dùng đã cam kết thay đổi không? Hoặc là kiểm tra repo không phải là một lựa chọn?
vật lý học

Ngoài ra, bạn có trăn không? =)
vật lý học

Câu trả lời:


19

Trong khi tôi bắt đầu viết lại phân tích cú pháp trăn của mình, tôi nhận ra một cách tốt hơn để làm những gì bạn yêu cầu (tôi đã phân tích tên và ngày nộp để tính tỷ lệ gửi cuối tuần / ngày trong tuần để xem ai không có sự sống!)

Kiểm tra repo, sau đó đi đến nó và thực hiện:

svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq

Điều đó nhận được một danh sách tất cả các thay đổi đã được cam kết, greps cho các dòng bắt đầu với sửa đổi và số ( r[12341] | author | date-and-stuff...), in ra trường thứ ba (tác giả), sắp xếp các tác giả và loại bỏ các bản sao.


@ user12889: Chào mừng bạn. Tôi chỉ tình cờ thấy đúng câu hỏi vào đúng thời điểm.
vật lý học

Trong trường hợp trường tên chứa một giá trị có khoảng trắng (trong trường hợp của tôi, tôi đã xác nhận từ người dùng (no author)), thêm -F ' [|] 'vào awk sẽ lấy toàn bộ tên : svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Quinn Comendant

3

Dạng câu trả lời @DrummerB nhẹ cho tên người dùng có dấu cách, kết hợp với tính đơn giản của @ vgm64

svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u


Điều này cũng hoạt động với tôi - trong khi phiên bản của @ DrummerB không tạo ra bất cứ điều gì
NickG

2

Câu trả lời của vgm64 là tốt, nhưng nó không hoạt động tốt với các tên có chứa khoảng trắng. Tôi đã thay đổi nó, vì vậy nó:

svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq

1

Tôi biết chủ đề này đã cũ nhưng vì một số hướng dẫn để chuyển đổi SVN sang Git đang liên kết ở đó, tôi thêm một lệnh sẽ tạo tệp Aut Tác giả:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > Authors.txt

Nếu đây là SVN đã nhập hoặc nếu bạn vấp phải Not a working copylỗi, bạn có thể chỉ định đường dẫn cục bộ đến thư mục SVN bằng cách thêm file:///tmp/svn-reposausvn log -q

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.