2012-05-24 24 views
11

Tôi đã thiết lập classpath của tôi cho p4merge một tập tin .gitconfig, nhưng tôi gặp lỗi này khi công cụ p4merge giả sử để mở hai tệp đó xung đột. ai biết giải pháp?lỗi với công cụ sáp nhập p4merge trong git

thêm vào classpath: "C: \ Program Files \ Perforce \ p4merge.exe" thêm vào .gitconfig file:

[merge] 
    tool = p4merge 
[mergetool "p4merge"] 
    cmd = p4merge.exe \\\"$BASE\\\" \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$MERGED\\\" 

ERROR MESSAGE:

Normal merge conflict for 'protected/views/layouts/main.php': 
    {local}: modified file 
    {remote}: modified file 
Hit return to start merge resolution tool (p4merge): 
C:\Program Files (x86)\Git/libexec/git-core/mergetools/p4merge: line 8: p4merge: 
command not found 
protected/views/layouts/main.php seems unchanged. 
Was the merge successful? [y/n] n 
merge of protected/views/layouts/main.php failed 

Trả lời

1

Dường như nó có thể Không tìm thấy p4merge vì vậy hãy thử thêm "C: \ Program Files \ Perforce \" vào biến môi trường PATH của bạn thông qua System Properties.

0

Thêm đường dẫn P4merge đầy đủ vào tệp .gitconfig của bạn. Dưới đây là mỏ (lưu ý tách đường lộn xung quanh, ví dụ c:/thay vì c: \):

[merge] 
    tool = p4 
[mergetool "p4"] 
    cmd = c:/winprogs/p4merge/p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 
+1

Nếu đường dẫn đến exe chứa dấu cách thì nó phải ở trong dấu ngoặc kép. 'cmd = 'C:/Program Files/Perforce/p4merge.exe' $ BASE $ LOCAL $ REMOTE $ MERGED' – Alex78191

3

Bạn cũng có thể cần phải khởi động lại git console của bạn nếu bạn vừa cài đặt p4merge, cho cập nhật biến môi trường để đăng ký.

+0

không được trợ giúp: ( – IsmailS

0

Nếu bạn don `t muốn thêm p4merge trong biến Path môi trường (như Dan Lister đề cập), bạn có thể thêm đường tham số trong git config của bạn:

[mergetool "p4merge"] 
    path = C:/Program Files/Perforce/p4merge.exe 

Nó làm việc cho tôi trên git v1.7.11 (WinXP).

+0

Tôi không thích các thứ tự tab REMOTE, BASE, LOCAL. sử dụng 'cmd = 'C:/Program Files/Perforce/p4merge.exe' $ BASE $ LOCAL $ REMOTE $ MERGED' – Alex78191

4

Nó làm việc cho tôi:

[merge] 
    keepBackup = false; 
    tool = p4merge 
[mergetool "p4merge"] 
    path = C:/Program Files/Perforce/p4merge.exe 
    cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 
    keepTemporaries = false 
    trustExitCode = false 
    keepBackup = false 
[difftool] 
    prompt = false 
[mergetool] 
    prompt = false 
+0

' keepTemporaries 'theo mặc định là sai. Trong mọi trường hợp, nó phải được đặt là' mergetool.keepTemporaries' , không phải 'mergetool. .keepTemporaries'.' KeepBackup' cũng được thiết lập mà không chỉ rõ ''. – Alex78191

+0

'trustExitCode' không nên được đặt thành false (nó phải là mặc định - đúng) – Alex78191

4

Tại sao mọi thứ khó khăn đến vậy tôi ghét viết lệnh vì vậy tôi đã làm gì?

  1. Cài đặt hình thức cụ p4Merge here serach cho P4Merge và cài đặt exe sau đó bạn chỉ cần

enter image description here

  1. Cài đặt nó như là người dùng Windows

  2. Chuyển đến mục tin thư thoại người dùng của bạn và tìm kiếm .gitconfig chỉnh sửa nó và thêm

[mergetool "p4merge"] 
    path = C:\\Program Files\\Perforce\\p4merge.exe 
    cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 
[merge] 
    tool = p4merge 

Làm thế nào để sử dụng nó? Khi bạn kéo một cái gì đó và có những xung đột mà bạn vừa có thể viết

git mergetool

Và công cụ này sẽ được mở.

enter image description here

Ở phía dưới là bạn phiên bản cuối cùng bạn có thể chỉnh sửa có sau đó chỉ cần tiết kiệm và cam kết và cuộc xung đột sẽ được giải quyết.

+0

Tùy chọn 'đường dẫn' là không cần thiết. – Alex78191

0
These steps worked for me. 

Sau khi tải về và cài đặt công cụ P4Merge từ perforce.com

Sau khi tên hồ sơ của bạn/email id.

Thay thế nội dung này trong tập tin ~/.gitconfig bạn

enter code here 

[merge] 
    keepBackup = false 
    tool = p4merge 
[mergetool "p4merge"] 
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$REMOTE\"" "\"$PWD/$MERGED\"" 
    keepTemporaries = false 
    trustExitCode = false 
    keepBackup = false 
[diff] 
    tool = p4merge 
[difftool "p4merge"] 
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\"" 
Các vấn đề liên quan