2012-02-16 18 views
22

Tôi tự hỏi liệu có cách nào để di chuyển một Danh sách thay đổi đã được tạo chỉnh sửa trên/chính/đến chi nhánh/dev/chi nhánh không?Perforce - di chuyển một Changelist xếp chồng từ chính đến chi nhánh?

Tôi có sáu Danh sách thay đổi như vậy với nhiều tệp trong đó. Tôi đã trì hoãn tất cả các tệp và muốn chuyển chúng đến chi nhánh để tiếp tục làm việc ở đó. Tôi muốn làm điều này trực tiếp trong P4V, nếu có thể.

Tôi đang sử dụng P4V 2011.1 với máy chủ P4 2010.2.

+0

câu hỏi liên quan: http://stackoverflow.com/questions/300160/can-i-integrate-checked-out-files-into- một nhánh khác nhau. – gdw2

Trả lời

1

Tôi tin rằng bạn có thể nhấp chuột phải vào tệp đã chỉnh sửa và chọn Rename/Move....

Nếu điều đó không hoạt động, có thể bạn sẽ phải sử dụng dòng lệnh và làm p4 move -f old_file new_file và chuyển sang một chi nhánh khác.

Lưu ý: Đối với những gì nó có giá trị, điều này làm việc cho các chi nhánh nhưng không hoạt động.

+1

Thật không may, khi tôi cố gắng di chuyển một tập tin đến các chi nhánh với phương pháp này tôi nhận được một lỗi "đã tồn tại trong kho". –

+0

@MartinSchulze, đó là điều tôi sợ. Trên dòng lệnh, đây là nơi '-f' xuất hiện, nhưng không biết liệu có cách nào để làm điều đó trong p4v hay không. – Chance

0

Tôi đã không cố gắng này bản thân mình, nhưng tôi sẽ tưởng tượng này nên có thể:

  1. Thay đổi khách hàng của bạn đến một không gian làm việc có chứa ánh xạ cho các chi nhánh địa điểm
  2. Chọn danh sách thay đổi đang chờ và unshelve nó (hoặc gọi p4 unshelve -s <number> từ dòng lệnh

từ hướng dẫn p4:

A successful unshelve operation places the shelved files on the user's 
workspace with the same open action and pending integration history as 
if it had originated from that user and client. 
+2

Thật không may các tập tin được lưu trữ được lưu trữ chống lại đường dẫn depot, không phải đường dẫn workspace. Vì vậy, ngay cả khi bạn chuyển sang một vùng làm việc mới với một nhánh khác, khi bạn bỏ sót, P4 cố gắng kiểm tra các tệp chống lại chính. –

-1
  1. trình trên /main/
  2. tích hợp các danh sách thay đổi để /dev/branch/
  3. rollback hoặc backout các danh sách thay đổi trên /main/

Điều này cho phép bạn để giải quyết những xung đột nếu có bất kỳ. Những bất lợi là sự ủng hộ của các thay đổi trên /main/ mà không phải là khá.

+0

Nếu bạn quay lại thay đổi chính, điều này sẽ không đảo ngược lịch sử tích hợp? Đó là để nói, bạn sẽ mong đợi rằng có những thay đổi chưa được giải quyết trên nhánh mà chưa có trong chính, nhưng theo quan điểm của Perforce, có những thay đổi chưa được tích hợp trên chính mà chưa có trong nhánh. –

+0

Tôi đưa ra -1 vì lý do trên. Tôi đã thực sự cố gắng này và nó có thể dẫn đến hành vi bất ngờ. Khi bạn tích hợp lại chính những thay đổi sẽ không có ở đó. – Ykok

18

Bắt đầu với Perforce 2013.1, bạn có thể đặt một tệp vào một chi nhánh và bỏ tệp đó vào một nhánh khác, sử dụng thông số chi tiết hoặc luồng làm bản đồ.

Đây là the documentation mô tả các tùy chọn -b-S mới.

+0

Bạn có thể mang và ví dụ về cách sử dụng -b? Các tài liệu chỉ nói sử dụng cờ-b! Tôi đã thử một số biến thể và nó không hoạt động, nói rằng chi nhánh chưa biết '/ dev/branch' – Shervin

+2

Tìm thấy nó. Đối với bản ghi, -b nên được cấp bản đồ chi nhánh từ chi nhánh được xếp vào chi nhánh, chúng tôi muốn danh sách thay đổi không bị hủy. Dưới đây là cách tạo bản đồ: http://www.perforce.com/perforce/doc.current/manuals/p4v/Managing_branch_specifications.html – Shervin

+0

@Shervin liên kết chết :-( – user234461

0

Bạn cũng có thể sử dụng "di chuyển p4 -f/main/.../dev/branch/..." để thực hiện việc này.

  1. đảm bảo rằng các tệp có thể chỉnh sửa duy nhất bạn có trong/main/... là những tệp bạn muốn di chuyển. Lưu trữ và hoàn nguyên tệp trong bất kỳ danh sách thay đổi nào khác
  2. dòng lệnh: "p4 move -f/main/.../dev/branch/..."
  3. các tệp trong changeset hiện đã có trên/dev/branch được đánh dấu như yêu cầu quyết
  4. Resolve mỗi tập tin bạn sẽ giống như một cuộc xung đột thông thường
Các vấn đề liên quan