X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=src%2FTortoiseProc%2FFileDiffDlg.cpp;h=9beff4bbd4997e3beda4abdeb3f2241befa8c9fc;hb=5f37370ce639f772be0bd96f7a9867a64b41c96a;hp=3dc296f67ea87c40d316960c8e9ec5cb99eb77ef;hpb=ff91acb87ca327ebe0193bfe55038145899147e1;p=tortoisegit%2FTortoiseGitJp.git diff --git a/src/TortoiseProc/FileDiffDlg.cpp b/src/TortoiseProc/FileDiffDlg.cpp index 3dc296f..9beff4b 100644 --- a/src/TortoiseProc/FileDiffDlg.cpp +++ b/src/TortoiseProc/FileDiffDlg.cpp @@ -31,6 +31,7 @@ #include "RevisionDlg.h" #include ".\filediffdlg.h" #include "gitdiff.h" +#include "CommonResource.h" #define ID_COMPARE 1 #define ID_BLAME 2 @@ -96,6 +97,31 @@ void CFileDiffDlg::SetDiff(CTGitPath * path, GitRev rev1, GitRev rev2) m_rev2 = rev2; } +void CFileDiffDlg::SetDiff(CTGitPath * path, CString &hash1, CString &hash2) +{ + if(path!=NULL) + { + m_path1 = *path; + m_path2 = *path; + } + m_rev1.m_CommitHash = hash1; + m_rev2.m_CommitHash = hash2; +} +void CFileDiffDlg::SetDiff(CTGitPath * path, GitRev rev1) +{ + if(path!=NULL) + { + m_path1 = *path; + m_path2 = *path; + } + m_rev1 = rev1; + m_rev2.m_CommitHash = _T(""); + m_rev2.m_Subject = _T("Previou Version"); + + //this->GetDlgItem()->EnableWindow(FALSE); + + +} BOOL CFileDiffDlg::OnInitDialog() { @@ -170,6 +196,9 @@ BOOL CFileDiffDlg::OnInitDialog() // Start with focus on file list GetDlgItem(IDC_FILELIST)->SetFocus(); + + if(m_rev2.m_CommitHash.IsEmpty()) + m_SwitchButton.EnableWindow(FALSE); return FALSE; } @@ -221,14 +250,15 @@ UINT CFileDiffDlg::DiffThread() { rev1=+_T(""); if(this->m_rev1.m_CommitHash == GIT_REV_ZERO) - cmd.Format(_T("git.exe diff -r --raw -C -M --numstat %s"),m_rev2.m_CommitHash); + cmd.Format(_T("git.exe diff -r --raw -C -M --numstat -z %s"),m_rev2.m_CommitHash); else - cmd.Format(_T("git.exe diff -r -R --raw -C -M --numstat %s"),m_rev1.m_CommitHash); + cmd.Format(_T("git.exe diff -r -R --raw -C -M --numstat -z %s"),m_rev1.m_CommitHash); }else { - cmd.Format(_T("git.exe diff-tree -r --raw -C -M --numstat %s %s"),rev1,m_rev2.m_CommitHash); + cmd.Format(_T("git.exe diff-tree -r --raw -C -M --numstat -z %s %s"),rev1,m_rev2.m_CommitHash); } - CString out; + + BYTE_VECTOR out; g_Git.Run(cmd,&out); this->m_arFileList.ParserFromLog(out); @@ -288,7 +318,7 @@ void CFileDiffDlg::DoDiff(int selIndex, bool blame) CGitDiff diff; CTGitPath* fd = m_arFilteredList[selIndex]; - diff.Diff(fd, this->m_rev1.m_CommitHash, this->m_rev2.m_CommitHash, blame, FALSE); + diff.Diff(fd, fd,this->m_rev1.m_CommitHash, this->m_rev2.m_CommitHash, blame, FALSE); #if 0 CFileDiffDlg::CTGitPath* fd = m_arFilteredList[selIndex];