Có ai biết cách thiết lập Mercurial để sử dụng p4merge làm công cụ hợp nhất/khác biệt trên OS X 10.5 không?Làm thế nào để sử dụng p4merge như công cụ hợp nhất/khác biệt cho Mercurial?
Trả lời
Tôi đoán có một công cụ CLI cho p4merge (mà tôi không biết gì về).
Tôi đã viết một bài viết trên blog về việc sử dụng Changes.app, và một số công cụ GUI khác với Mercurial: Using Mercurial with GUI Tools.
Về cơ bản, bạn cần phải biết những kỳ vọng kêu gọi của công cụ CLI đó tải lên các công cụ diff. IE, làm thế nào để làm cho nó tải dữ liệu từ một tập tin cụ thể, và làm thế nào để làm cho nó chờ đợi để thoát. Nên có đủ thông tin trên bài đăng để cung cấp cho bạn một số ý tưởng.
tôi sử dụng các bit sau của Python để khởi động p4merge và sử dụng nó với git:
#!/usr/bin/python
import sys
import os
os.system('/Applications/p4merge.app/Contents/MacOS/p4merge "%s" "%s"' % (sys.argv[2], sys.argv[5]))
Tôi không chắc chắn như thế nào vẻ lanh lợi để khởi động một công cụ diff bên ngoài mặc dù? Hy vọng rằng nó đơn giản như điều chỉnh 2 & 5 trong dòng trên để trở thành chỉ mục của các đối số cho 'đã đăng ký' và 'bản sao làm việc hiện tại'.
Nơi này vào ~/.hgrc
của bạn (hoặc, tùy chọn, Mercurial.ini
của bạn trên Windows):
[merge-tools]
p4.priority = 100
p4.premerge = True # change this to False if you're don't trust hg's internal merge
p4.executable = /Applications/p4merge.app/Contents/MacOS/p4merge
p4.gui = True
p4.args = $base $local $other $output
Yêu cầu Mercurial 1.0 hoặc mới hơn. Rõ ràng bạn sẽ cần cập nhật đường dẫn đến tệp thực thi đó để phản ánh nơi bạn đã cài đặt p4merge.
Tôi đã tìm thấy Ry4an's answer là giải pháp tốt, ngoại trừ một vấn đề nhỏ, khiến p4merge (dưới mac os) trộn các đầu vào lệnh. làm tất cả mọi thứ được mô tả trong his answer và thêm dòng sau trong [sáp nhập công cụ] phần:
p4.args=$base $local $other $output
Dòng này nói lanh lợi, trong đó thứ tự p4merge mất đối số của nó.
Tôi đã chỉnh sửa câu trả lời của Ry4an để kết hợp sửa lỗi của bạn. Cảm ơn! –
Có thể vì tôi đang làm việc trên Windows, nhưng giải pháp được đề xuất không hiệu quả đối với tôi. Thay vào đó, những điều sau đây không hoạt động.
Trong bạn ~/.hgrc/
/Mercurial.ini
, tôi áp dụng các thay đổi sau:
Enabled "ExtDiff" mở rộng:
[extensions]
hgext.extdiff =
Added P4 extdiff lệnh:
[extdiff]
cmd.p4diff = p4merge
Configured nó như là mặc định công cụ tìm kiếm hình ảnh khác:
[tortoisehg]
vdiff = p4diff
Nếu bạn đi tuyến đường này, bạn chỉ cần gõ "hg p4" để thực hiện một sự khác biệt trực quan vì Mercurial chỉ yêu cầu bạn nhập số ký tự tối thiểu để phân biệt một lệnh. –
Cảm ơn! Nó hoạt động trên Windows của tôi. – Regent
Tôi đang sử dụng phiên bản 1.0.1 của TortoiseHg và p4merge hoạt động ngoài hộp.
Chỉ cần vào Global Settings -> TortoiseHg và chọn các tùy chọn sau:
- Ba chiều Merge Tool: p4merge
- trực quan Diff Tool: p4merge
- 1. Sử dụng P4Merge để hợp nhất XML
- 2. Tôi nên sử dụng công cụ hợp nhất nào với Mercurial trong Windows?
- 3. Công cụ Mercurial và merge?
- 4. lỗi với công cụ sáp nhập p4merge trong git
- 5. Kindle có thể được sử dụng như một công cụ đọc mã nguồn như thế nào?
- 6. Công cụ để xem xét mã trong kho Mercurial
- 7. Trong mercurial, làm thế nào để áp dụng một bản vá đảo ngược cho một tập tin cụ thể?
- 8. Làm thế nào để buộc Java/awt sử dụng một bộ công cụ cụ thể (qt)?
- 9. Tôi nên sử dụng Mercurial như một nhà phát triển đơn lẻ như thế nào?
- 10. Subversion có được "hỗ trợ" bằng các công cụ tích hợp liên tục hơn Mercurial không?
- 11. Làm thế nào để bạn sử dụng gọn gàng trong công cụ ứng dụng google (Python)
- 12. Làm thế nào để triển khai cho Heroku bằng Mercurial?
- 13. Làm cách nào để tạo thanh công cụ trông giống như thanh công cụ trong Keynote?
- 14. Cách đặt kdiff3 làm công cụ hợp nhất cho SVN
- 15. Sử dụng Mercurial với theo dõi mục công việc giống như TFS
- 16. Có thể thay đổi công cụ khác biệt mặc định trong Mercurial không?
- 17. Sử dụng WinMerge làm công cụ TortoiseHG Merge
- 18. Làm thế nào để sử dụng mercurial tại địa phương với một kho CVS trung tâm?
- 19. Công cụ hợp nhất cho mã C#
- 20. Công cụ blog để tích hợp với ứng dụng java. Công cụ blog nào?
- 21. Nhiệm vụ học máy: công cụ nào để sử dụng?
- 22. Làm thế nào để lưu trữ một công cụ IronPython trong một AppDomain riêng biệt?
- 23. Công cụ random.Random.seed của python hoạt động như thế nào?
- 24. Bất kỳ công cụ phân biệt/hợp nhất văn bản nào cho .NET?
- 25. Sử dụng Mercurial với Perforce
- 26. Nên sử dụng strace như thế nào?
- 27. Công cụ hợp nhất dòng lệnh tương tác GUI (như BeyondCompare hoặc WinMerge) cho Linux
- 28. Bất cứ thứ gì như VisualSVN Server cho Mercurial?
- 29. GVim làm công cụ hợp nhất cho TFS
- 30. Công cụ mô phỏng Simulink hoạt động như thế nào?
Bạn nên sử dụng tệp 'launchp4merge' có thể thực thi thay vì 'p4merge'. Bằng cách này, nếu bạn phân biệt nhiều cặp tệp cùng một lúc, tất cả chúng sẽ xuất hiện trong một quá trình p4merge thay vì trong các quy trình riêng biệt. –
Nếu bạn muốn sử dụng đề xuất của Adam, điều này phù hợp với tôi, hãy sử dụng dòng này thay cho dòng p4.executable ở trên: p4.executable = /Applications/p4merge.app/Contents/Resources/launchp4merge – warrenm
Điều này không hoạt động với 'hg diff'. Bất kỳ đề xuất về cách làm cho p4merge trình soạn thảo khác biệt mặc định? – Tobber