2010-09-28 26 views
7

Tôi muốn có giải pháp nhanh không yêu cầu đồng bộ hóa lực sẽ đặt một thư mục được chỉ định vào trạng thái lưu trữ ban đầu của nó.Perforce nhanh đồng bộ hóa thư mục với trạng thái sạch

  • file tương tự có thể được gỡ bỏ từ đĩa
  • cùng tập tin có thể được bổ sung từ đĩa
  • một số tập tin có thể được sửa đổi trên đĩa
  • một số tập tin có thể được đánh dấu để loại bỏ, bổ sung, sửa đổi trong perforce

Tất cả những gì tôi muốn là đảm bảo rằng sau khi chạy lệnh, tôi sẽ không có lệnh nào trong số này.

p4 -f sync không phải là một tùy chọn, tôi cần giải pháp nhanh hơn để giảm thiểu mức sử dụng mạng.

Chỉ trong trường hợp một người nào đó hỏi, proxy nhân lực không được thảo luận.

tôi biết rằng một giải pháp phần là:

p4 diff -sd -se //clientspec/dir/... | p4 -x - revert

Vấn đề là điều này không loại bỏ các file bổ sung vào đường dẫn ở trên mà không phải là trong perforce - tập tin mà tôi muốn được gỡ bỏ từ đĩa.

Ngoài ra, tôi cần một giải pháp đa nền tảng hoặc đa nền tảng - nó phải hoạt động trên Windows, OS X và Linux.

Trả lời

0

Nếu bạn có Unix/Linux, tính năng này có thể hoạt động.

Trong lực lượng bạn có thể "hòa hợp công việc ngoại tuyến" thông qua p4v, như được xem here hoặc thông qua dòng lệnh như được xem trong câu hỏi của bạn, khi bạn hoàn nguyên các tệp đã chỉnh sửa và xóa. Các tệp được thêm là phức tạp hơn. Liên kết thứ hai sẽ khiến bạn làm như sau.

find . -type f -print | p4 -x - add 
find . -type l -print | p4 -x - add 

để thêm các tập tin và liên kết tượng trưng trong Unix

Phần khó khăn về mặt vật lý loại bỏ các tập tin bạn đã thêm. Điều này không đẹp, nhưng tôi nghĩ nó sẽ hoạt động. p4 mở | grep add | cut -f1 -d "#" | p4 -x- ở đâu | cắt -d -f3""

Sau đó, bạn cần phải làm một

p4 revert directory/... 

hoặc làm điều gì đó tương tự như trên khi loại bỏ các file.

0

Tôi cần điều này cho máy chủ xây dựng với svn. Những gì tôi đã làm cuối cùng là:

  • Cập nhật workspace
  • Xóa cái cũ “xây dựng thư mục” nếu có một
  • Xcopy workspace để “xây dựng thư mục”
  • Do việc xây dựng trong "thư mục xây dựng"

Bằng cách đó tôi biết không có gì cho một phiên bản cũ bị treo.

2

Một đoạn Unix/Linux rằng nên loại bỏ tất cả các file mà đã chưa bao giờ được theo dõi bởi chẳng đả:

find . -type f | p4 -x- files 2>&1 | sed -n -e 's/ - no such file(s).//p' | xargs -d '\n' rm

+0

Ở trên sẽ xóa tất cả các tệp đang mở để thêm ... – John

5

Perforce đã thêm một lệnh mới "p4 sạch" trong 2014,1 thực hiện chính xác những gì bạn đang tìm kiếm cho, bằng cách đặt lại không gian làm việc của bạn để nhà nướC#have của nó:

file
  • mới không có trong Perforce sẽ bị xóa
  • tập tin sửa đổi ngoài tầm kiểm soát cực chẳng đả sẽ rese t
  • tập tin bị xóa ngoài tầm kiểm soát cực chẳng đả sẽ được phục hồi

Lệnh là một bí danh cho "p4 hòa -w" và sử dụng hashsum của các tập tin để xác định tình trạng của họ trong không gian làm việc của bạn.

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