(WSL git에서 kdiff3을 사용하는 방법을 찾으려고 할 때 여기에 도착하여 최종 조각을 얻었으므로 다른 사람을 위해 내 솔루션을 게시 할 것입니다.
kdiff3을 WSL git의 diff / merge 도구로 사용하는 방법
Windows 업데이트 1903을 사용하면 훨씬 쉽습니다. wslpath를 사용하면 Windows 측에서 \ wsl $를 통해 WSL 파일 시스템에 액세스 할 수 있으므로 Windows에서 WSL로 TMP를 공유 할 필요가 없습니다.
[merge]
renormalize = true
guitool = kdiff3
[diff]
tool = kdiff3
[difftool]
prompt = false
[difftool "kdiff3"]
# Unix style paths must be converted to windows path style
cmd = kdiff3.exe \"`wslpath -w $LOCAL`\" \"`wslpath -w $REMOTE`\"
trustExitCode = false
[mergetool]
keepBackup = false
prompt = false
[mergetool "kdiff3"]
path = kdiff3.exe
trustExitCode = false
Windows 업데이트 1903 이전
WSL에서 git 용 diff / merge 도구로 Windows 10에 설치된 kdiff3을 사용하는 단계 :
- kdiff3 설치 디렉토리를 Windows 경로에 추가하십시오.
- WSLENV Windows 환경 변수에 TMP를 추가하십시오 (WSLENV = TMP / up). TMP 디렉토리는 git에서 이전 버전의 파일과 같은 임시 파일을 위해 사용되므로 경로가 Windows 파일 시스템에 있어야 경로가 작동합니다.
- .bashrc에서 TMPDIR을 TMP로 설정하십시오.
# If TMP is passed via WSLENV then use it as TMPDIR
[[ ! -z "$WSLENV" && ! -z "$TMP" ]] && export TMPDIR=$TMP
- kdiff3를 호출 할 때 unix-path를 windows-path로 변환하십시오. 내 .gitconfig 샘플 :
[merge]
renormalize = true
guitool = kdiff3
[diff]
tool = kdiff3
[difftool]
prompt = false
[difftool "kdiff3"]
#path = kdiff3.exe
# Unix style paths must be converted to windows path style by changing '/mnt/c/' or '/c/' to 'c:/'
cmd = kdiff3.exe \"`echo $LOCAL | sed 's_^\\(/mnt\\)\\?/\\([a-z]\\)/_\\2:/_'`\" \"`echo $REMOTE | sed 's_^\\(/mnt\\)\\?/\\([a-z]\\)/_\\2:/_'`\"
trustExitCode = false
[mergetool]
keepBackup = false
prompt = false
[mergetool "kdiff3"]
path = kdiff3.exe
trustExitCode = false