Tôi là người dùng Git đang cố gắng tìm hiểu Perforce.
Tôi rất tiếc.
Làm cách nào để thực hiện điều này bằng Perforce?
Tôi là người dùng Git tốt hơn tôi là người dùng Perforce, vì vậy hãy sửa tôi nếu có điều gì đó không đúng. Tôi khuyên bạn nên đọc các trang của người đàn ông và a tutorial.
Nó "không thể", ít nhất là không hoàn toàn như cách Git thực hiện.
Trong git
, khi bạn tạo chi nhánh, bạn đang phân nhánh toàn bộ trạng thái của kho lưu trữ. Perforce không hỗ trợ điều này, thay vào đó, "phân nhánh" là nhiều hơn mỗi tệp: tức là bạn chi nhánh tệp A vào tệp B, tại đó tệp B chứa tham chiếu ngược đến tệp A nói "Tôi đến từ đây". Tham chiếu ngược này sau đó có thể được sử dụng để xác định một tổ tiên chung cho mục đích sáp nhập. Tuy nhiên, sự hiểu biết của tôi là các tham chiếu ngược này là mỗi tệp và bạn được tự do tích hợp (hợp nhất) bất kỳ tệp nào vào bất kỳ tệp nào khác. (So sánh với git, trong đó "Parent commit" là tham chiếu ngược của bạn, nhưng nằm trên quy mô toàn bộ kho.)
Bạn có thể chi nhánh toàn bộ tệp bằng p4 integrate
, sử dụng cú pháp Perforce điển hình (ví dụ: //depot/some/path/...
) . Thông thường, bạn sẽ chi nhánh toàn bộ thư mục vào toàn bộ thư mục khác, chẳng hạn như //depot/main/my_project
thành //depot/release-1.0/my_project
hoặc tương tự. Perforce, theo như tôi biết, không thực sự quan tâm đến các đường dẫn: nó chỉ là "chi nhánh" các tập tin từ một địa điểm khác. Bất kỳ mô hình hoặc sự tỉnh táo nào trong các đường dẫn đều tùy thuộc vào bạn.
Ngoài ra, bạn có thể sử dụng p4 branch
để tạo "chi tiết kỹ thuật chi tiết", về cơ bản là cách ghi lại tập hợp nguồn của tệp và đích đến để phân nhánh dễ dàng hơn. (Nếu bạn lấy ví dụ phát hành, cuối cùng bạn có thể muốn hợp nhất các thay đổi trở lại hoặc hợp nhất các thay đổi khác vào bản phát hành, v.v.)
Cả hai lần tôi đã làm việc với Perforce, các chi nhánh là một con thú có bản chất khác trong Git, và có một chút khác biệt về văn hóa ở đây. Chi nhánh tương đối hiếm. (Tôi chỉ nhìn thấy chúng được sử dụng để phát hành, bao giờ.) Chúng tôi đã không sử dụng chúng cho các chi nhánh tính năng, ngoại trừ có lẽ là lớn nhất của các tính năng; so sánh với git
, ở đâu đối với tôi "nhánh chi tiết" thường là "mất> 1 lần commit".
Bạn có đang sử dụng luồng hoặc chỉ các nhánh truyền thống không? Rất nhiều điều này phụ thuộc vào phương thức hoạt động và cấu trúc của bạn. Có các nhánh nhẹ trong các dòng suối và cũng sử dụng giá để tạo các thay đổi giả tạm thời. Vì vậy, nhiều là phụ thuộc vào cấu trúc của tổ chức của bạn. – gaige