2012-03-09 32 views
7

Có ai đó có tập lệnh như vậy để chia sẻ không?Nguyên nhân đang chờ xử lý tập lệnh thay đổi khác

  • mất một số danh sách thay đổi cấp phát như là đầu vào
  • xuất ra một khác biệt thống nhất (bao gồm cả các file mở cho tiện ích)

tôi biết từ kinh nghiệm nhiều người làm việc với perforce cả ngày đã các đá xung quanh. Tôi thực sự có thể sử dụng trợ giúp với toàn bộ vấn đề của "tập tin (s) không phải trong xem khách hàng" khi diffing mới được thêm vào tập tin thông qua "p4 diff".

+0

Tôi đang tìm kiếm nội dung như sau: (http://confluence.atlassian.com/display/CRUCIBLE/Creating+a+Patch+Review#CreatingaPatchReview-PerforcePatchCreationViaTheCommandLine hoặc trang này: https://answers.atlassian.com/ Câu hỏi/9522/automatic-patch-review-script-for-perforce – user675801

Trả lời

2

Tôi không có thời gian để tìm một giải pháp thích hợp vì vậy tôi sử dụng này một liner:

p4 describe $CHANGELIST | sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' | xargs p4 diff -du 

Dưới đây là cách hoạt động:

Từ -

. .. Danh sách thay đổi đang chờ xử lý được chỉ định là 'đang chờ xử lý' và các tệp khác không được hiển thị.

p4 describe $CHANGELIST 

bởi chính nó sẽ không làm, nhưng bạn có thể sử dụng nó như là một điểm khởi đầu. Nó được (trong số những thứ khác) một danh sách các tập tin đã được thay đổi trong $CHANGELIST của bạn.

sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' 

In các <depot-file> một phần của chỉ các dòng có dạng ... <depot-file>#<revision> <action>

xargs p4 diff -du 

Đưa danh sách các tập tin kho và chạy p4 diff -du trên đó. Cờ -d vượt qua u (định dạng thống nhất) cho chương trình $P4DIFF của bạn (phải là diff).

+0

Điều này làm việc trên các cửa sổ, tôi nhận được "sed" không được công nhận lệnh.Làm thế nào tôi có thể nhận được một tập tin khác nhau (xóa và bổ sung cả hai bao gồm) trong một định dạng màu mà tôi có thể gửi qua email đến một peer để xem xét? – noobcode

+0

'sed',' xargs' và 'diff' thường xuất hiện trên các hệ thống giống Unix. Trên Windows, bạn có thể cài đặt các tiện ích giống như Unix của bên thứ 3 hoặc cố gắng sử dụng PowerShell. Xem: http://stackoverflow.com/q/127318/110488 –

-1

p4 describe -du changelist không hoạt động cho bạn?

+1

Không, đây là lý do tại sao: Đầu ra của tập lệnh sẽ là "diff" hoặc "patch" (tùy thuộc vào thuật ngữ ưa thích của bạn). được cung cấp cho tiện ích vá lỗi unix để tạo lại đầy đủ các thay đổi? "Lưu ý rằng mô tả p4 không bao gồm nội dung của tệp" được mở để thêm ", vì vậy bản vá sẽ thiếu tất cả các tệp mới được thêm vào. – user675801

+0

Ah, tôi hiểu - như bạn có thể chạy 'p4 add' trên toàn bộ thư mục và bỏ qua các tệp đã tồn tại. Một giải pháp tốt hơn (lệnh trạng thái) sẽ xuất hiện trong bản phát hành tiếp theo. cái p atch. Vì vậy, nó sẽ yêu cầu một kịch bản tôi nghĩ. –

+0

'p4 description' không hiển thị bất kỳ khác biệt nào, ngay cả đối với các tệp đã sửa đổi, nếu danh sách thay đổi đang chờ xử lý. –

0

này làm việc cho tôi:

p4 diff2 //depot/a/b/c/... //depot/a/b/c/[email protected]=$CHANGELIST | grep -v '<none>' 

càng cụ thể càng đường, nhanh hơn việc thực hiện. Bạn cũng có thể diff2 danh sách thay đổi so với một nhánh khác.

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