Chúng tôi đang làm việc trên thiết kế và chúng tôi đã tạo bộ khung của các lớp trong nhánh chính của chúng tôi. Bây giờ, chúng ta đang bắt đầu viết mã, và cho rằng chúng ta có một nhánh mới. Vì vậy, nó sẽ được tốt đẹp nếu tôi có thể di chuyển tất cả các tập tin mới trong nhánh chính vào chi nhánh mới. Tuy nhiên, tôi chưa thể kiểm tra chúng. Vì vậy, có thể tích hợp danh sách thay đổi đã kiểm tra không? Cảm ơn.Tôi có thể tích hợp các tệp đã kiểm tra vào một nhánh khác trên mỗi lực lượng
Trả lời
Tôi chưa bao giờ tìm được cách để thực hiện điều đó trong perforce, nhưng ít nhất bạn cũng có thể tự động hóa nó một phần.
Thông thường khi tôi phải làm điều gì đó như vậy, tôi sẽ kiểm tra các tệp trong nhánh mà tôi muốn di chuyển, sau đó sử dụng WinMerge để phân biệt các nhánh và sao chép các thay đổi. Khi đã xong, bạn có thể hoàn nguyên các thay đổi trong nhánh ban đầu và kiểm tra chúng trong nhánh mới.
Đây không phải là giải pháp tốt nhất (không tự động thanh toán/thêm/xóa tệp trên nhánh mới), nhưng là phương pháp nhanh nhất mà tôi đã đưa ra.
Câu trả lời dễ dàng là - không bạn không thể. Một sự xem xét nhanh chóng của tài liệu Perforce đã không đưa ra một trích dẫn sẵn sàng cho điều này, thật không may, nhưng theo kinh nghiệm của tôi, bất kỳ nỗ lực nào để kéo tấm thảm ra khỏi máy chủ Perforce sẽ dẫn đến những thay đổi của bạn bị mất. người cắm trại.
Sao lưu, tạo vùng làm việc mới trên nhánh mới và áp dụng lại các thay đổi của bạn, có thể sử dụng chiến lược khác biệt/hợp nhất được nêu trong câu trả lời của Herms.
Không thực sự.
Bạn có thể chỉ cần mở tệp để chỉnh sửa trong nhánh mới và sao chép thủ công các tệp đã thay đổi từ vùng làm việc của nhánh chính sang không gian làm việc của nhánh mới. Đây có lẽ là cách dễ nhất nếu nó chỉ là một vài tập tin.
Here là một vài tập lệnh có thể hữu ích nếu có nhiều tệp hơn. Ví dụ: với tập lệnh P4Shelf bạn có thể tạo bản lưu trữ của tất cả các tệp đã thay đổi và sau đó tự động mở chúng trong bất kỳ chi nhánh nào với các thay đổi được khôi phục.
Ngoài ra, hãy xem một số other nifty scripts cho Perforce của Jim Tilander.
Trang web hỗ trợ Perforce giải thích cách thực hiện việc này: Perforce Knowledge Base: Branching work in progress. Nó sẽ đẹp hơn nếu nó là một bước duy nhất mà không yêu cầu chạy tám lệnh khác nhau.
Đây là câu trả lời đúng - thực hiện nó tải bản thân mình và rất dễ dàng. –
@ user38703: Vui lòng đánh dấu nó là câu trả lời đúng nếu đúng. –
Tôi ngạc nhiên rằng git bị lúng túng vì "khó sử dụng" khi p4 tương đương với "git rebase" là 15 lệnh. – RJFalconer
Kể từ khi phát hành 2013.1, cách tiến hành chi nhánh đang tiến hành là shelve
công việc và unshelve
nó trên nhánh. Cụ thể:
xiên thay đổi nổi bật của bạn:
$ p4 shelve ... Change 182535 created with 10 open file(s). Shelving files for change 182535. edit //info.ravenbrook.com/project/mps/master/code/arenavm.c#26 # etc.
Unshelve chúng trên các chi nhánh (sử dụng tùy chọn
-b
, mà bản đồ tên tập tin thông qua một đặc điểm kỹ thuật chi nhánh):$ p4 unshelve -b mps/branch/2013-06-05/diag -s 182535 ... //info.ravenbrook.com/project/mps/branch/2013-06-05/diag/code/arenavm.c - must resolve //info.ravenbrook.com/project/mps/master/code/[email protected]=182535 before submitting # etc.
Giải quyết mọi sự hợp nhất được tạo ra từ
unshelve
, sử dụngp4 resolve -as
để nhanh chóng thực hiện các thao tác "an toàn" và sau đó là doi ng phần còn lại vớip4 resolve
như bình thường.$ p4 resolve -as //gdr-peewit/info.ravenbrook.com/project/mps/branch/2013-06-05/diag/code/arenavm.c - copy from //info.ravenbrook.com/project/mps/master/code/arenavm.c # etc. $ p4 resolve No file(s) to resolve.
(Ví dụ đầu ra là từ một trường hợp sử dụng thực tế tôi chạy ngay bây giờ.)
Để rephrase Gareth Rees' câu trả lời ở trên trong thuật ngữ đơn giản,
p4 unshelve -b target_branchspec -s changelist
:)
- 1. Tích hợp các tệp được di chuyển theo lực lượng
- 2. Tích hợp lực lượng với studio trực quan mà không cần tệp dự án được kiểm tra trong lực lượng
- 3. kiểm tra lực lượng đồng đội
- 4. Khóa chi nhánh trong lực lượng?
- 5. Tôi có nên viết kiểm tra tích hợp hoặc kiểm tra đơn vị không?
- 6. Làm thế nào tôi có thể tích hợp Oracle BI vào một ứng dụng hiện có?
- 7. Mocking cho các bài kiểm tra tích hợp
- 8. Làm cách nào tôi có thể tích hợp kiểm tra chính tả với redactor?
- 9. Kiểm tra năng lực PHP?
- 10. kiểm tra thời lượng tệp âm thanh trên dòng lệnh
- 11. Cách tổ chức kiểm tra tích hợp?
- 12. Cam kết thay đổi đối với một chi nhánh khác với chi nhánh hiện tại đã kiểm tra với subversion
- 13. Làm cách nào tôi có thể kiểm tra dung lượng đĩa sẵn có?
- 14. Kiểm tra tích hợp javascript cho một ứng dụng trang
- 15. Chúng tôi có thể sử dụng JUNIT để kiểm tra tích hợp tự động không?
- 16. Bộ lọc kiểm tra tích hợp Grails
- 17. Có thể sử dụng Khung Tự động hóa Kiểm tra Trọng lượng nhẹ (LTAF) trong Tích hợp Liên tục không?
- 18. Ngữ cảnh mùa xuân bị bẩn sau mỗi lần kiểm tra tích hợp
- 19. Hoàn nguyên các tệp chưa được khắc phục trong mỗi lực lượng
- 20. VS 2008 và Team Explorer- đã kiểm tra các tệp
- 21. lực lượng bàn phím mở trên android
- 22. Tính tích hợp MKS có thể tích hợp với các công cụ kiểm soát nguồn khác không? (SVN, Git ...)
- 23. Hudson: Theo dõi số lượng tệp đã thay đổi trong mỗi tòa nhà
- 24. Kiểm tra tích hợp trong CakePHP 2.0
- 25. Kiểm tra để tích hợp liên tục
- 26. Tôi có thể chỉ định nhóm lớp rộng trên trường hợp kiểm tra TestNG không?
- 27. kiểm tra tích hợp commander.js cho CLI
- 28. Làm cách nào để kiểm tra tệp từ lực lượng trong python?
- 29. Tôi có thể nhúng các tệp khác vào một tệp DLL không?
- 30. Tôi có nên trộn các bài kiểm tra UnitTests và tích hợp của mình trong cùng một dự án không?
Xem liên kết ở trên về quá trình phân nhánh đang tiến hành. –