OSDN Git Service

Conflict Handle Delete case
authorFrank Li <lznuaa@gmail.com>
Fri, 27 Feb 2009 11:03:17 +0000 (19:03 +0800)
committerFrank Li <lznuaa@gmail.com>
Fri, 27 Feb 2009 11:03:17 +0000 (19:03 +0800)
src/TortoiseProc/AppUtils.cpp

index 3c5c6e3..441972c 100644 (file)
@@ -1307,6 +1307,7 @@ bool CAppUtils::ConflictEdit(CTGitPath &path,bool bAlternativeTool)
        tempfile.Open(base.GetWinPathString(),CFile::modeCreate|CFile::modeReadWrite);\r
        tempfile.Close();\r
 \r
+       bool base=false, local=false, remote=false;\r
 \r
        for(int i=0;i<list.GetCount();i++)\r
        {\r
@@ -1316,21 +1317,31 @@ bool CAppUtils::ConflictEdit(CTGitPath &path,bool bAlternativeTool)
                \r
                if( list[i].m_Stage == 1)\r
                {\r
+                       base = true;\r
                        outfile=base.GetWinPathString();\r
                }\r
                if( list[i].m_Stage == 2 )\r
                {\r
+                       local = true;\r
                        outfile=mine.GetWinPathString();\r
                }\r
                if( list[i].m_Stage == 3 )\r
                {\r
+                       remote = true;\r
                        outfile=theirs.GetWinPathString();\r
                }       \r
                g_Git.RunLogFile(cmd,outfile);\r
        }\r
 \r
-       merge.SetFromWin(g_Git.m_CurrentDir+_T("\\")+merge.GetWinPathString());\r
-       bRet = !!CAppUtils::StartExtMerge(base, theirs, mine, merge,_T("BASE"),_T("REMOTE"),_T("LOCAL"));\r
+       if(local && remote )\r
+       {\r
+               merge.SetFromWin(g_Git.m_CurrentDir+_T("\\")+merge.GetWinPathString());\r
+               bRet = !!CAppUtils::StartExtMerge(base, theirs, mine, merge,_T("BASE"),_T("REMOTE"),_T("LOCAL"));\r
+       \r
+       }else\r
+       {\r
+\r
+       }\r
 \r
 #if 0\r
 \r