2009-07-29 27 views
11

Nếu bạn thực hiện sync trong lực lượng, nó có thể xảy ra, rất thường xuyên, để không làm gì ngay cả khi cần. Nếu bạn thực hiện đồng bộ cưỡng bức (sync -f), nó chắc chắn sẽ đồng bộ tất cả các tệp từ máy chủ một cách mù quáng và điều này là không thể chấp nhận nếu bạn có một dự án lớn.Làm cách nào để thực hiện đồng bộ hóa nhanh và an toàn trên lực lượng?

Câu hỏi đặt ra là bạn có thể thực hiện đồng bộ hóa nhanh như thế nào?

Trả lời

18

Phần quan trọng đối với câu hỏi của bạn là "ngay cả khi cần". Không có thất bại, trong tất cả (nhiều) kinh nghiệm của tôi với Perforce, người dùng quay trở lại buộc phải đồng bộ hóa thường xuyên, vì đồng bộ hóa bình thường không làm những gì họ mong đợi, không sử dụng Perforce đúng cách.

Bạn phải để Perforce quản lý đĩa cứng cho bạn - máy chủ biết bạn đang sử dụng phiên bản nào và do đó đồng bộ hóa thông thường sẽ nhận được những gì cần. Nếu không thành công, thì hầu như không có ngoại lệ là dấu hiệu cho thấy người dùng đang sửa đổi, xóa, thêm, đổi tên tệp bên ngoài Perforce (ví dụ: trong Explorer).

Thỉnh thoảng bạn có thể nhận được hệ thống vui nhộn (tức là lỗi máy tính), gây ra lỗi này, do đó, nó không nhất thiết là lỗi của người dùng. Nhưng đây là những điều rất hiếm - do đó, vòng loại "quen thuộc" của tôi ở trên.

Nếu bạn nghĩ, hãy nói về trái tim, rằng bạn không làm bất cứ điều gì ngoài bình thường, hãy bắt đầu xem xét những quy trình khác có thể điều chỉnh những tệp này. Ví dụ. bạn xây dựng hệ thống làm điều gì đó kỳ lạ, và cố gắng sửa đổi các tập tin khi nó xây dựng? Bạn có một chia sẻ mạng mở mà có lẽ một người khác vô tình chọc? Bạn có một hệ thống sao lưu can thiệp không?

Hy vọng điều đó sẽ hữu ích.

+2

Perforce liên kết phiên bản tệp nào bạn có với từng thông số kỹ thuật của từng khách hàng. Thông tin này được lưu trên máy chủ với từng thông số khách hàng - trong thông tin mà nó gọi là "có danh sách". Các ứng dụng được chia sẻ không phải là thực tế điển hình của người dùng. Chúng được Perforce cho phép để kích hoạt các tình huống sử dụng cụ thể. Nhưng nếu bạn đang làm việc trên các máy khác nhau, thì điều đó được xử lý bằng việc có thông số máy khách trên mỗi máy. Đó chính xác là những gì chúng được thiết kế. –

+0

Giả sử bạn có một trang trại xây dựng - bạn có muốn tạo không gian làm việc (clientspec) cho mỗi máy tính trong trang trại không? – sorin

+0

Có, thông số khách hàng trên mỗi máy sẽ được khuyến khích trong hầu hết các trường hợp. Bạn có thể tự động tạo ra chúng, tuy nhiên, nó không đau đớn như bạn nghĩ. –

4

Nếu bạn tạo ra sự không nhất quán, trong đó lực lượng mất đi theo dõi những gì đang diễn ra trong không gian làm việc của bạn, bạn nên sử dụng chức năng "Hòa hợp công việc ngoại tuyến ..." (trong P4V).

Thao tác này sẽ chạy một thư mục khác và cho bạn biết bạn có những tùy chọn nào để giải quyết những mâu thuẫn đó.

Nói chung, hãy đảm bảo rằng bạn luôn kiểm tra tệp một cách rõ ràng thông qua lực lượng (mở để chỉnh sửa). Điều này thật lạ nếu bạn quen với các hệ thống khác.

+3

Xin lỗi nhưng tôi không nhằm mục đích sử dụng ứng dụng trực quan cho việc này. Đối với cùng một dự án, tôi đồng bộ hóa các tệp từ 6 máy chủ lực lượng khác nhau để chỉ có một giải pháp lô được chấp nhận - tôi không muốn lặp lại quy trình theo cách thủ công. – sorin

+0

@sorin: Bạn đã bao giờ tìm ra giải pháp có thể chấp nhận được chưa? Tôi đang chạy vào một cái gì đó tương tự khi cố gắng để tự động hóa xây dựng. Tôi không muốn buộc phải đồng bộ mọi lúc, vì phải mất ~ 2h. – Jordan

+0

Xin lỗi nhưng tôi không nói thêm nữa. Kinh nghiệm cuối cùng của tôi với họ là gần 5 năm trước. Chỉ có một tương lai cho họ, một tương tự như blackberry. – sorin

6

Như đã đề cập trong các câu trả lời khác, bạn cần phải tạo một máy khách riêng (không gian làm việc) cho mỗi "cá thể" của cây thư mục được đồng bộ hóa từ kho.

Nếu bạn muốn ép đồng bộ chỉ những tập tin đã thay đổi từ kho:

p4 diff -se ... | p4 -x - sync -f 
p4 diff -sd ... | p4 -x - sync -f 

Cảnh báo: đó sẽ ghi đè lên bất kỳ địa phương tập tin thay đổi (trong thư mục hiện hành và thư mục con).

Nếu thay vào đó bạn thay đổi nội dung một số tập tin và quên để mở chúng để chỉnh sửa đầu tiên, bạn có thể làm điều này:

p4 diff -se ... | p4 -x - edit 

đó sẽ mở ra để chỉnh sửa bất kỳ tập tin đó là khác nhau từ kho.

Và đây:

p4 diff -sd ... | p4 -x - delete 

sẽ mở ra cho xóa bất kỳ tập tin đó đã bị xóa tại địa phương.

0

Tôi tin rằng lệnh bạn đang tìm kiếm là p4 sạch.

Từ: http://www.perforce.com/perforce/r14.2/manuals/cmdref/p4_clean.html

"Files hiện diện trong không gian làm việc, nhưng mất tích từ kho sẽ bị xóa khỏi workspace tập tin hiện diện trong kho, nhưng mất tích từ không gian làm việc của bạn Các phiên bản của các tập tin mà có được.. Các tệp được sửa đổi trong không gian làm việc của bạn chưa được đăng ký sẽ được khôi phục về phiên bản cuối cùng được đồng bộ hóa từ kho. "

+0

P4 Sạch sẽ dứt khoát sẽ thực hiện công việc nhưng trên dự án rất lớn, nó cực kỳ chậm (số tiền phải làm hòa giải với xử lý tự động các trường hợp được tìm thấy có lợi cho máy chủ). Trường hợp tốt nhất cho OP là thực hiện các thao tác tệp mặc dù lực lượng (xóa, di chuyển, chỉnh sửa, v.v.). Việc kiểm tra thường xuyên vẫn nên được thực hiện để xem nếu không có gì trượt qua các vết nứt mặc dù. – Newtopian

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