}\r
if ((m_dwContextMenus & SVNSLC_POPRESOLVE)/*&&(entry->textstatus == git_wc_status_conflicted)*/)\r
{\r
- popup.AppendMenuIcon(IDSVNLC_RESOLVETHEIRS, IDS_SVNPROGRESS_MENUUSETHEIRS, IDI_RESOLVE);\r
- popup.AppendMenuIcon(IDSVNLC_RESOLVEMINE, IDS_SVNPROGRESS_MENUUSEMINE, IDI_RESOLVE);\r
+ //popup.AppendMenuIcon(IDSVNLC_RESOLVETHEIRS, IDS_SVNPROGRESS_MENUUSETHEIRS, IDI_RESOLVE);\r
+ //popup.AppendMenuIcon(IDSVNLC_RESOLVEMINE, IDS_SVNPROGRESS_MENUUSEMINE, IDI_RESOLVE);\r
}\r
if ((m_dwContextMenus & SVNSLC_POPCONFLICT)||(m_dwContextMenus & SVNSLC_POPRESOLVE))\r
popup.AppendMenu(MF_SEPARATOR);\r
break;\r
\r
case IDSVNLC_EDITCONFLICT:\r
- CString sCmd;\r
- sCmd.Format(_T("\"%s\" /command:conflicteditor /path:\"%s\""),\r
- (LPCTSTR)(CPathUtils::GetAppDirectory()+_T("TortoiseProc.exe")), g_Git.m_CurrentDir+filepath->GetWinPath());\r
- \r
- CAppUtils::LaunchApplication(sCmd, NULL, false);\r
+ {\r
+ CAppUtils::ConflictEdit(*filepath);\r
break;\r
+ }\r
+ case IDSVNLC_RESOLVECONFLICT:\r
+ {\r
+ if (CMessageBox::Show(m_hWnd, IDS_PROC_RESOLVE, IDS_APPNAME, MB_ICONQUESTION | MB_YESNO)==IDYES)\r
+ {\r
+ POSITION pos = GetFirstSelectedItemPosition();\r
+ while (pos != 0)\r
+ {\r
+ int index;\r
+ index = GetNextSelectedItem(pos);\r
+ CTGitPath * fentry =(CTGitPath*) this->GetItemData(index);\r
+ if(fentry == NULL)\r
+ continue;\r
+\r
+ if ( fentry->m_Action & CTGitPath::LOGACTIONS_UNMERGED)\r
+ {\r
+ CString cmd,output;\r
+ cmd.Format(_T("git.exe add \"%s\""),fentry->GetGitPathString());\r
+ if(g_Git.Run(cmd,&output,CP_OEMCP))\r
+ {\r
+ CMessageBox::Show(m_hWnd, output, _T("TortoiseSVN"), MB_ICONERROR);\r
+ }else\r
+ {\r
+ fentry->m_Action |= CTGitPath::LOGACTIONS_MODIFIED;\r
+ fentry->m_Action &=~CTGitPath::LOGACTIONS_UNMERGED;\r
+ }\r
+ }\r
+ \r
+ }\r
+ Show(m_dwShow, 0, m_bShowFolders);\r
+ }\r
+ }\r
+ break;\r
#if 0\r
case IDSVNLC_COPY:\r
CopySelectedEntriesToClipboard(0);\r
case IDSVNLC_EDITCONFLICT:\r
SVNDiff::StartConflictEditor(filepath);\r
break;\r
- case IDSVNLC_RESOLVECONFLICT:\r
- case IDSVNLC_RESOLVEMINE:\r
- case IDSVNLC_RESOLVETHEIRS:\r
- {\r
- git_wc_conflict_choice_t result = git_wc_conflict_choose_merged;\r
- switch (cmd)\r
- {\r
- case IDSVNLC_RESOLVETHEIRS:\r
- result = git_wc_conflict_choose_theirs_full;\r
- break;\r
- case IDSVNLC_RESOLVEMINE:\r
- result = git_wc_conflict_choose_mine_full;\r
- break;\r
- case IDSVNLC_RESOLVECONFLICT:\r
- result = git_wc_conflict_choose_merged;\r
- break;\r
- }\r
- if (CMessageBox::Show(m_hWnd, IDS_PROC_RESOLVE, IDS_APPNAME, MB_ICONQUESTION | MB_YESNO)==IDYES)\r
- {\r
- SVN git;\r
- POSITION pos = GetFirstSelectedItemPosition();\r
- while (pos != 0)\r
- {\r
- int index;\r
- index = GetNextSelectedItem(pos);\r
- FileEntry * fentry = m_arStatusArray[m_arListArray[index]];\r
- if (!git.Resolve(fentry->GetPath(), result, FALSE))\r
- {\r
- CMessageBox::Show(m_hWnd, git.GetLastErrorMessage(), _T("TortoiseSVN"), MB_ICONERROR);\r
- }\r
- else\r
- {\r
- fentry->status = git_wc_status_modified;\r
- fentry->textstatus = git_wc_status_modified;\r
- fentry->isConflicted = false;\r
- }\r
- }\r
- Show(m_dwShow, 0, m_bShowFolders);\r
- }\r
- }\r
- break;\r
+ \r
case IDSVNLC_ADD:\r
{\r
SVN git;\r
/>\r
</Configuration>\r
<Configuration\r
- Name="Debug|x64"\r
- OutputDirectory="..\..\bin\debug64\bin"\r
+ Name="Release|Win32"\r
+ OutputDirectory="..\..\bin\$(ConfigurationName)\bin"\r
IntermediateDirectory="..\..\obj\TortoiseGitBlame\$(ConfigurationName)"\r
ConfigurationType="1"\r
UseOfMFC="2"\r
CharacterSet="1"\r
+ WholeProgramOptimization="1"\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
/>\r
<Tool\r
Name="VCMIDLTool"\r
- PreprocessorDefinitions="_DEBUG"\r
+ PreprocessorDefinitions="NDEBUG"\r
MkTypLibCompatible="false"\r
- TargetEnvironment="3"\r
+ ValidateParameters="true"\r
/>\r
<Tool\r
Name="VCCLCompilerTool"\r
- Optimization="0"\r
+ Optimization="2"\r
+ EnableIntrinsicFunctions="true"\r
AdditionalIncludeDirectories="..\Git;..\TortoiseProc;..\..\ext\scintilla\include;..\Utils;..\Utils\MiscUI;..\..\ext\hunspell;..\..\ext\ResizableLib;..\Resources"\r
- PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
+ PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"\r
+ MinimalRebuild="false"\r
+ RuntimeLibrary="2"\r
+ EnableFunctionLevelLinking="true"\r
UsePrecompiledHeader="2"\r
WarningLevel="3"\r
DebugInformationFormat="3"\r
/>\r
<Tool\r
Name="VCResourceCompilerTool"\r
- PreprocessorDefinitions="_DEBUG"\r
+ PreprocessorDefinitions="NDEBUG"\r
Culture="1033"\r
AdditionalIncludeDirectories="$(IntDir);..\TortoiseShell"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
AdditionalDependencies="Crypt32.lib gdiplus.lib shfolder.lib shell32.lib comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib wininet.lib version.lib"\r
- LinkIncremental="2"\r
- IgnoreDefaultLibraryNames="LIBCMTD"\r
+ LinkIncremental="1"\r
GenerateDebugInformation="true"\r
SubSystem="2"\r
- TargetMachine="17"\r
+ OptimizeReferences="2"\r
+ EnableCOMDATFolding="2"\r
+ TargetMachine="1"\r
/>\r
<Tool\r
Name="VCALinkTool"\r
/>\r
</Configuration>\r
<Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="..\..\bin\$(ConfigurationName)\bin"\r
+ Name="Debug|x64"\r
+ OutputDirectory="..\..\bin\debug64\bin"\r
IntermediateDirectory="..\..\obj\TortoiseGitBlame\$(ConfigurationName)"\r
ConfigurationType="1"\r
UseOfMFC="2"\r
CharacterSet="1"\r
- WholeProgramOptimization="1"\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
/>\r
<Tool\r
Name="VCMIDLTool"\r
- PreprocessorDefinitions="NDEBUG"\r
+ PreprocessorDefinitions="_DEBUG"\r
MkTypLibCompatible="false"\r
- ValidateParameters="true"\r
+ TargetEnvironment="3"\r
/>\r
<Tool\r
Name="VCCLCompilerTool"\r
- Optimization="2"\r
- EnableIntrinsicFunctions="true"\r
+ Optimization="0"\r
AdditionalIncludeDirectories="..\Git;..\TortoiseProc;..\..\ext\scintilla\include;..\Utils;..\Utils\MiscUI;..\..\ext\hunspell;..\..\ext\ResizableLib;..\Resources"\r
- PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"\r
- MinimalRebuild="false"\r
- RuntimeLibrary="2"\r
- EnableFunctionLevelLinking="true"\r
+ PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"\r
+ MinimalRebuild="true"\r
+ BasicRuntimeChecks="3"\r
+ RuntimeLibrary="3"\r
UsePrecompiledHeader="2"\r
WarningLevel="3"\r
DebugInformationFormat="3"\r
/>\r
<Tool\r
Name="VCResourceCompilerTool"\r
- PreprocessorDefinitions="NDEBUG"\r
+ PreprocessorDefinitions="_DEBUG"\r
Culture="1033"\r
AdditionalIncludeDirectories="$(IntDir);..\TortoiseShell"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
AdditionalDependencies="Crypt32.lib gdiplus.lib shfolder.lib shell32.lib comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib wininet.lib version.lib"\r
- LinkIncremental="1"\r
+ LinkIncremental="2"\r
+ IgnoreDefaultLibraryNames="LIBCMTD"\r
GenerateDebugInformation="true"\r
SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- TargetMachine="1"\r
+ TargetMachine="17"\r
/>\r
<Tool\r
Name="VCALinkTool"\r
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
>\r
<File\r
+ RelativePath="..\TortoiseProc\Colors.cpp"\r
+ >\r
+ </File>\r
+ <File\r
RelativePath=".\EditGotoDlg.cpp"\r
>\r
</File>\r
/>\r
</FileConfiguration>\r
<FileConfiguration\r
- Name="Debug|x64"\r
+ Name="Release|Win32"\r
>\r
<Tool\r
Name="VCCLCompilerTool"\r
/>\r
</FileConfiguration>\r
<FileConfiguration\r
- Name="Release|Win32"\r
+ Name="Debug|x64"\r
>\r
<Tool\r
Name="VCCLCompilerTool"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\blameres\output_wnd.ico"\r
+ RelativePath=".\res\output_wnd.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\res\output_wnd.ico"\r
+ RelativePath="..\Resources\blameres\output_wnd.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\blameres\output_wnd_hc.ico"\r
+ RelativePath=".\res\output_wnd_hc.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\res\output_wnd_hc.ico"\r
+ RelativePath="..\Resources\blameres\output_wnd_hc.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\res\properties_hc.bmp"\r
+ RelativePath="..\Resources\blameres\properties_hc.bmp"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\blameres\properties_hc.bmp"\r
+ RelativePath=".\res\properties_hc.bmp"\r
>\r
</File>\r
<File\r
- RelativePath=".\res\properties_wnd.ico"\r
+ RelativePath="..\Resources\blameres\properties_wnd.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\blameres\properties_wnd.ico"\r
+ RelativePath=".\res\properties_wnd.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\res\Toolbar.bmp"\r
+ RelativePath="..\Resources\blameres\Toolbar.bmp"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\blameres\Toolbar.bmp"\r
+ RelativePath=".\res\Toolbar.bmp"\r
>\r
</File>\r
<File\r
- RelativePath=".\res\Toolbar256.bmp"\r
+ RelativePath="..\Resources\blameres\Toolbar256.bmp"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\blameres\Toolbar256.bmp"\r
+ RelativePath=".\res\Toolbar256.bmp"\r
>\r
</File>\r
<File\r
/>\r
</FileConfiguration>\r
<FileConfiguration\r
- Name="Debug|x64"\r
+ Name="Release|Win32"\r
>\r
<Tool\r
Name="VCResourceCompilerTool"\r
/>\r
</FileConfiguration>\r
<FileConfiguration\r
- Name="Release|Win32"\r
+ Name="Debug|x64"\r
>\r
<Tool\r
Name="VCResourceCompilerTool"\r
</FileConfiguration>\r
</File>\r
<File\r
- RelativePath=".\res\TortoiseGitBlameDoc.ico"\r
+ RelativePath="..\Resources\blameres\TortoiseGitBlameDoc.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\blameres\TortoiseGitBlameDoc.ico"\r
+ RelativePath=".\res\TortoiseGitBlameDoc.ico"\r
>\r
</File>\r
<File\r
/>\r
</FileConfiguration>\r
<FileConfiguration\r
- Name="Debug|x64"\r
+ Name="Release|Win32"\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
/>\r
</FileConfiguration>\r
<FileConfiguration\r
- Name="Release|Win32"\r
+ Name="Debug|x64"\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
\r
}\r
return FALSE;\r
+}\r
+\r
+bool CAppUtils::ConflictEdit(CTGitPath &path,bool bAlternativeTool)\r
+{\r
+ bool bRet = false;\r
+\r
+ CTGitPath merge=path;\r
+ CTGitPath directory = merge.GetDirectory();\r
+ \r
+ \r
+\r
+ // we have the conflicted file (%merged)\r
+ // now look for the other required files\r
+ //GitStatus stat;\r
+ //stat.GetStatus(merge);\r
+ //if (stat.status == NULL)\r
+ // return false;\r
+\r
+ BYTE_VECTOR vector;\r
+\r
+ CString cmd;\r
+ cmd.Format(_T("git.exe ls-files -u -t -z -- \"%s\""),merge.GetGitPathString());\r
+\r
+ if(g_Git.Run(cmd,&vector))\r
+ {\r
+ return FALSE;\r
+ }\r
+\r
+ CTGitPathList list;\r
+ list.ParserFromLsFile(vector);\r
+\r
+ if(list.GetCount() == 0)\r
+ return FALSE;\r
+\r
+ TCHAR szTempName[512]; \r
+ GetTempFileName(_T(""),_T(""),0,szTempName);\r
+ CString temp(szTempName);\r
+ temp=temp.Mid(1,temp.GetLength()-5);\r
+\r
+ CTGitPath theirs;\r
+ CTGitPath mine;\r
+ CTGitPath base;\r
+\r
+ CString format;\r
+ format=g_Git.m_CurrentDir+_T("\\")+directory.GetWinPathString()+merge.GetFilename()+CString(_T(".%s."))+temp+merge.GetFileExtension();\r
+\r
+ CString file;\r
+ file.Format(format,_T("LOCAL"));\r
+ mine.SetFromGit(file);\r
+ file.Format(format,_T("REMOTE"));\r
+ theirs.SetFromGit(file);\r
+ file.Format(format,_T("BASE"));\r
+ base.SetFromGit(file);\r
+\r
+ \r
+ format=_T("git.exe cat-file blob \":%d:%s\"");\r
+ for(int i=0;i<list.GetCount();i++)\r
+ {\r
+ CString cmd;\r
+ CString outfile;\r
+ cmd.Format(format,list[i].m_Stage,list[i].GetGitPathString());\r
+\r
+ if( list[i].m_Stage == 1)\r
+ {\r
+ outfile=base.GetWinPathString();\r
+ }\r
+ if( list[i].m_Stage == 2 )\r
+ {\r
+ outfile=mine.GetWinPathString();\r
+ }\r
+ if( list[i].m_Stage == 3 )\r
+ {\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
+\r
+#if 0\r
+\r
+ CAppUtils::StartExtMerge(CAppUtils::MergeFlags().AlternativeTool(bAlternativeTool), \r
+ base, theirs, mine, merge);\r
+#endif\r
+#if 0\r
+ if (stat.status->text_status == svn_wc_status_conflicted)\r
+ {\r
+ // we have a text conflict, use our merge tool to resolve the conflict\r
+\r
+ CTSVNPath theirs(directory);\r
+ CTSVNPath mine(directory);\r
+ CTSVNPath base(directory);\r
+ bool bConflictData = false;\r
+\r
+ if ((stat.status->entry)&&(stat.status->entry->conflict_new))\r
+ {\r
+ theirs.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->conflict_new));\r
+ bConflictData = true;\r
+ }\r
+ if ((stat.status->entry)&&(stat.status->entry->conflict_old))\r
+ {\r
+ base.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->conflict_old));\r
+ bConflictData = true;\r
+ }\r
+ if ((stat.status->entry)&&(stat.status->entry->conflict_wrk))\r
+ {\r
+ mine.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->conflict_wrk));\r
+ bConflictData = true;\r
+ }\r
+ else\r
+ {\r
+ mine = merge;\r
+ }\r
+ if (bConflictData)\r
+ bRet = !!CAppUtils::StartExtMerge(CAppUtils::MergeFlags().AlternativeTool(bAlternativeTool), \r
+ base, theirs, mine, merge);\r
+ }\r
+\r
+ if (stat.status->prop_status == svn_wc_status_conflicted)\r
+ {\r
+ // we have a property conflict\r
+ CTSVNPath prej(directory);\r
+ if ((stat.status->entry)&&(stat.status->entry->prejfile))\r
+ {\r
+ prej.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->prejfile));\r
+ // there's a problem: the prej file contains a _description_ of the conflict, and\r
+ // that description string might be translated. That means we have no way of parsing\r
+ // the file to find out the conflicting values.\r
+ // The only thing we can do: show a dialog with the conflict description, then\r
+ // let the user either accept the existing property or open the property edit dialog\r
+ // to manually change the properties and values. And a button to mark the conflict as\r
+ // resolved.\r
+ CEditPropConflictDlg dlg;\r
+ dlg.SetPrejFile(prej);\r
+ dlg.SetConflictedItem(merge);\r
+ bRet = (dlg.DoModal() != IDCANCEL);\r
+ }\r
+ }\r
+\r
+ if (stat.status->tree_conflict)\r
+ {\r
+ // we have a tree conflict\r
+ SVNInfo info;\r
+ const SVNInfoData * pInfoData = info.GetFirstFileInfo(merge, SVNRev(), SVNRev());\r
+ if (pInfoData)\r
+ {\r
+ if (pInfoData->treeconflict_kind == svn_wc_conflict_kind_text)\r
+ {\r
+ CTSVNPath theirs(directory);\r
+ CTSVNPath mine(directory);\r
+ CTSVNPath base(directory);\r
+ bool bConflictData = false;\r
+\r
+ if (pInfoData->treeconflict_theirfile)\r
+ {\r
+ theirs.AppendPathString(pInfoData->treeconflict_theirfile);\r
+ bConflictData = true;\r
+ }\r
+ if (pInfoData->treeconflict_basefile)\r
+ {\r
+ base.AppendPathString(pInfoData->treeconflict_basefile);\r
+ bConflictData = true;\r
+ }\r
+ if (pInfoData->treeconflict_myfile)\r
+ {\r
+ mine.AppendPathString(pInfoData->treeconflict_myfile);\r
+ bConflictData = true;\r
+ }\r
+ else\r
+ {\r
+ mine = merge;\r
+ }\r
+ if (bConflictData)\r
+ bRet = !!CAppUtils::StartExtMerge(CAppUtils::MergeFlags().AlternativeTool(bAlternativeTool),\r
+ base, theirs, mine, merge);\r
+ }\r
+ else if (pInfoData->treeconflict_kind == svn_wc_conflict_kind_tree)\r
+ {\r
+ CString sConflictAction;\r
+ CString sConflictReason;\r
+ CString sResolveTheirs;\r
+ CString sResolveMine;\r
+ CTSVNPath treeConflictPath = CTSVNPath(pInfoData->treeconflict_path);\r
+ CString sItemName = treeConflictPath.GetUIFileOrDirectoryName();\r
+ \r
+ if (pInfoData->treeconflict_nodekind == svn_node_file)\r
+ {\r
+ switch (pInfoData->treeconflict_operation)\r
+ {\r
+ case svn_wc_operation_update:\r
+ switch (pInfoData->treeconflict_action)\r
+ {\r
+ case svn_wc_conflict_action_edit:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILEUPDATEEDIT, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
+ break;\r
+ case svn_wc_conflict_action_add:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILEUPDATEADD, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
+ break;\r
+ case svn_wc_conflict_action_delete:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILEUPDATEDELETE, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
+ break;\r
+ }\r
+ break;\r
+ case svn_wc_operation_switch:\r
+ switch (pInfoData->treeconflict_action)\r
+ {\r
+ case svn_wc_conflict_action_edit:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILESWITCHEDIT, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
+ break;\r
+ case svn_wc_conflict_action_add:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILESWITCHADD, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
+ break;\r
+ case svn_wc_conflict_action_delete:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILESWITCHDELETE, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
+ break;\r
+ }\r
+ break;\r
+ case svn_wc_operation_merge:\r
+ switch (pInfoData->treeconflict_action)\r
+ {\r
+ case svn_wc_conflict_action_edit:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILEMERGEEDIT, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
+ break;\r
+ case svn_wc_conflict_action_add:\r
+ sResolveTheirs.Format(IDS_TREECONFLICT_FILEMERGEADD, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
+ break;\r
+ case svn_wc_conflict_action_delete:\r
+ sConflictAction.Format(IDS_TREECONFLICT_FILEMERGEDELETE, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
+ break;\r
+ }\r
+ break;\r
+ }\r
+ }\r
+ else if (pInfoData->treeconflict_nodekind == svn_node_dir)\r
+ {\r
+ switch (pInfoData->treeconflict_operation)\r
+ {\r
+ case svn_wc_operation_update:\r
+ switch (pInfoData->treeconflict_action)\r
+ {\r
+ case svn_wc_conflict_action_edit:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRUPDATEEDIT, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
+ break;\r
+ case svn_wc_conflict_action_add:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRUPDATEADD, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
+ break;\r
+ case svn_wc_conflict_action_delete:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRUPDATEDELETE, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEDIR);\r
+ break;\r
+ }\r
+ break;\r
+ case svn_wc_operation_switch:\r
+ switch (pInfoData->treeconflict_action)\r
+ {\r
+ case svn_wc_conflict_action_edit:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRSWITCHEDIT, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
+ break;\r
+ case svn_wc_conflict_action_add:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRSWITCHADD, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
+ break;\r
+ case svn_wc_conflict_action_delete:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRSWITCHDELETE, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEDIR);\r
+ break;\r
+ }\r
+ break;\r
+ case svn_wc_operation_merge:\r
+ switch (pInfoData->treeconflict_action)\r
+ {\r
+ case svn_wc_conflict_action_edit:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRMERGEEDIT, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
+ break;\r
+ case svn_wc_conflict_action_add:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRMERGEADD, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
+ break;\r
+ case svn_wc_conflict_action_delete:\r
+ sConflictAction.Format(IDS_TREECONFLICT_DIRMERGEDELETE, (LPCTSTR)sItemName);\r
+ sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEDIR);\r
+ break;\r
+ }\r
+ break;\r
+ }\r
+ }\r
+\r
+ UINT uReasonID = 0;\r
+ switch (pInfoData->treeconflict_reason)\r
+ { \r
+ case svn_wc_conflict_reason_edited:\r
+ uReasonID = IDS_TREECONFLICT_REASON_EDITED;\r
+ sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
+ break;\r
+ case svn_wc_conflict_reason_obstructed:\r
+ uReasonID = IDS_TREECONFLICT_REASON_OBSTRUCTED;\r
+ sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
+ break;\r
+ case svn_wc_conflict_reason_deleted:\r
+ uReasonID = IDS_TREECONFLICT_REASON_DELETED;\r
+ sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_REMOVEDIR : IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
+ break;\r
+ case svn_wc_conflict_reason_added:\r
+ uReasonID = IDS_TREECONFLICT_REASON_ADDED;\r
+ sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
+ break;\r
+ case svn_wc_conflict_reason_missing:\r
+ uReasonID = IDS_TREECONFLICT_REASON_MISSING;\r
+ sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_REMOVEDIR : IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
+ break;\r
+ case svn_wc_conflict_reason_unversioned:\r
+ uReasonID = IDS_TREECONFLICT_REASON_UNVERSIONED;\r
+ sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
+ break;\r
+ }\r
+ sConflictReason.Format(uReasonID, (LPCTSTR)sConflictAction);\r
+\r
+ CTreeConflictEditorDlg dlg;\r
+ dlg.SetConflictInfoText(sConflictReason);\r
+ dlg.SetResolveTexts(sResolveTheirs, sResolveMine);\r
+ dlg.SetPath(treeConflictPath);\r
+ INT_PTR dlgRet = dlg.DoModal();\r
+ bRet = (dlgRet != IDCANCEL);\r
+ }\r
+ }\r
+ }\r
+#endif\r
+ return bRet;\r
}
\ No newline at end of file
\r
static bool IgnoreFile(CTGitPath &file, bool IsMask);\r
static bool GitReset(CString *CommitHash,int type=1);\r
+ static bool ConflictEdit(CTGitPath &file,bool bAlternativeTool=false);\r
private:\r
static CString PickDiffTool(const CTGitPath& file1, const CTGitPath& file2);\r
static bool GetMimeType(const CTGitPath& file, CString& mimetype);\r
{\r
bool bRet = false;\r
\r
- CProgressDlg progress;\r
- progress.m_GitCmd.Format(_T("Git Clean -d -x"));\r
- if(progress.DoModal()==IDOK)\r
+ if(CMessageBox::Show(NULL,_T("Are you sure clean all unversion files"),_T("TortoiseGit"),MB_YESNO)==IDYES)\r
+ {\r
+ CProgressDlg progress;\r
+ progress.m_GitCmd.Format(_T("Git Clean -d -x -f"));\r
+ if(progress.DoModal()==IDOK)\r
return TRUE;\r
-\r
+ }\r
#if 0\r
CProgressDlg progress;\r
progress.SetTitle(IDS_PROC_CLEANUP);\r
\r
bool ConflictEditorCommand::Execute()\r
{\r
- bool bRet = false;\r
-\r
- CTGitPath merge = cmdLinePath;\r
- CTGitPath directory = merge.GetDirectory();\r
- \r
bool bAlternativeTool = !!parser.HasKey(_T("alternative"));\r
-\r
- // we have the conflicted file (%merged)\r
- // now look for the other required files\r
- //GitStatus stat;\r
- //stat.GetStatus(merge);\r
- //if (stat.status == NULL)\r
- // return false;\r
-\r
- BYTE_VECTOR vector;\r
-\r
- CString cmd;\r
- cmd.Format(_T("git.exe ls-files -u -t -z -- \"%s\""),merge.GetGitPathString());\r
-\r
- if(g_Git.Run(cmd,&vector))\r
- {\r
- return FALSE;\r
- }\r
-\r
- CTGitPathList list;\r
- list.ParserFromLsFile(vector);\r
-\r
- if(list.GetCount() == 0)\r
- return FALSE;\r
-\r
- TCHAR szTempName[512]; \r
- GetTempFileName(_T(""),_T(""),0,szTempName);\r
- CString temp(szTempName);\r
- temp=temp.Mid(1,temp.GetLength()-5);\r
-\r
- CTGitPath theirs;\r
- CTGitPath mine;\r
- CTGitPath base;\r
-\r
- CString format;\r
- format=g_Git.m_CurrentDir+_T("\\")+directory.GetWinPathString()+merge.GetFilename()+CString(_T(".%s."))+temp+merge.GetFileExtension();\r
-\r
- CString file;\r
- file.Format(format,_T("LOCAL"));\r
- mine.SetFromGit(file);\r
- file.Format(format,_T("REMOTE"));\r
- theirs.SetFromGit(file);\r
- file.Format(format,_T("BASE"));\r
- base.SetFromGit(file);\r
-\r
- \r
- format=_T("git.exe cat-file blob \":%d:%s\"");\r
- for(int i=0;i<list.GetCount();i++)\r
- {\r
- CString cmd;\r
- CString outfile;\r
- cmd.Format(format,list[i].m_Stage,list[i].GetGitPathString());\r
-\r
- if( list[i].m_Stage == 1)\r
- {\r
- outfile=base.GetWinPathString();\r
- }\r
- if( list[i].m_Stage == 2 )\r
- {\r
- outfile=mine.GetWinPathString();\r
- }\r
- if( list[i].m_Stage == 3 )\r
- {\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
-\r
-#if 0\r
-\r
- CAppUtils::StartExtMerge(CAppUtils::MergeFlags().AlternativeTool(bAlternativeTool), \r
- base, theirs, mine, merge);\r
-#endif\r
-#if 0\r
- if (stat.status->text_status == svn_wc_status_conflicted)\r
- {\r
- // we have a text conflict, use our merge tool to resolve the conflict\r
-\r
- CTSVNPath theirs(directory);\r
- CTSVNPath mine(directory);\r
- CTSVNPath base(directory);\r
- bool bConflictData = false;\r
-\r
- if ((stat.status->entry)&&(stat.status->entry->conflict_new))\r
- {\r
- theirs.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->conflict_new));\r
- bConflictData = true;\r
- }\r
- if ((stat.status->entry)&&(stat.status->entry->conflict_old))\r
- {\r
- base.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->conflict_old));\r
- bConflictData = true;\r
- }\r
- if ((stat.status->entry)&&(stat.status->entry->conflict_wrk))\r
- {\r
- mine.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->conflict_wrk));\r
- bConflictData = true;\r
- }\r
- else\r
- {\r
- mine = merge;\r
- }\r
- if (bConflictData)\r
- bRet = !!CAppUtils::StartExtMerge(CAppUtils::MergeFlags().AlternativeTool(bAlternativeTool), \r
- base, theirs, mine, merge);\r
- }\r
-\r
- if (stat.status->prop_status == svn_wc_status_conflicted)\r
- {\r
- // we have a property conflict\r
- CTSVNPath prej(directory);\r
- if ((stat.status->entry)&&(stat.status->entry->prejfile))\r
- {\r
- prej.AppendPathString(CUnicodeUtils::GetUnicode(stat.status->entry->prejfile));\r
- // there's a problem: the prej file contains a _description_ of the conflict, and\r
- // that description string might be translated. That means we have no way of parsing\r
- // the file to find out the conflicting values.\r
- // The only thing we can do: show a dialog with the conflict description, then\r
- // let the user either accept the existing property or open the property edit dialog\r
- // to manually change the properties and values. And a button to mark the conflict as\r
- // resolved.\r
- CEditPropConflictDlg dlg;\r
- dlg.SetPrejFile(prej);\r
- dlg.SetConflictedItem(merge);\r
- bRet = (dlg.DoModal() != IDCANCEL);\r
- }\r
- }\r
-\r
- if (stat.status->tree_conflict)\r
- {\r
- // we have a tree conflict\r
- SVNInfo info;\r
- const SVNInfoData * pInfoData = info.GetFirstFileInfo(merge, SVNRev(), SVNRev());\r
- if (pInfoData)\r
- {\r
- if (pInfoData->treeconflict_kind == svn_wc_conflict_kind_text)\r
- {\r
- CTSVNPath theirs(directory);\r
- CTSVNPath mine(directory);\r
- CTSVNPath base(directory);\r
- bool bConflictData = false;\r
-\r
- if (pInfoData->treeconflict_theirfile)\r
- {\r
- theirs.AppendPathString(pInfoData->treeconflict_theirfile);\r
- bConflictData = true;\r
- }\r
- if (pInfoData->treeconflict_basefile)\r
- {\r
- base.AppendPathString(pInfoData->treeconflict_basefile);\r
- bConflictData = true;\r
- }\r
- if (pInfoData->treeconflict_myfile)\r
- {\r
- mine.AppendPathString(pInfoData->treeconflict_myfile);\r
- bConflictData = true;\r
- }\r
- else\r
- {\r
- mine = merge;\r
- }\r
- if (bConflictData)\r
- bRet = !!CAppUtils::StartExtMerge(CAppUtils::MergeFlags().AlternativeTool(bAlternativeTool),\r
- base, theirs, mine, merge);\r
- }\r
- else if (pInfoData->treeconflict_kind == svn_wc_conflict_kind_tree)\r
- {\r
- CString sConflictAction;\r
- CString sConflictReason;\r
- CString sResolveTheirs;\r
- CString sResolveMine;\r
- CTSVNPath treeConflictPath = CTSVNPath(pInfoData->treeconflict_path);\r
- CString sItemName = treeConflictPath.GetUIFileOrDirectoryName();\r
- \r
- if (pInfoData->treeconflict_nodekind == svn_node_file)\r
- {\r
- switch (pInfoData->treeconflict_operation)\r
- {\r
- case svn_wc_operation_update:\r
- switch (pInfoData->treeconflict_action)\r
- {\r
- case svn_wc_conflict_action_edit:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILEUPDATEEDIT, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
- break;\r
- case svn_wc_conflict_action_add:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILEUPDATEADD, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
- break;\r
- case svn_wc_conflict_action_delete:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILEUPDATEDELETE, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
- break;\r
- }\r
- break;\r
- case svn_wc_operation_switch:\r
- switch (pInfoData->treeconflict_action)\r
- {\r
- case svn_wc_conflict_action_edit:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILESWITCHEDIT, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
- break;\r
- case svn_wc_conflict_action_add:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILESWITCHADD, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
- break;\r
- case svn_wc_conflict_action_delete:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILESWITCHDELETE, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
- break;\r
- }\r
- break;\r
- case svn_wc_operation_merge:\r
- switch (pInfoData->treeconflict_action)\r
- {\r
- case svn_wc_conflict_action_edit:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILEMERGEEDIT, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
- break;\r
- case svn_wc_conflict_action_add:\r
- sResolveTheirs.Format(IDS_TREECONFLICT_FILEMERGEADD, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYFILE);\r
- break;\r
- case svn_wc_conflict_action_delete:\r
- sConflictAction.Format(IDS_TREECONFLICT_FILEMERGEDELETE, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
- break;\r
- }\r
- break;\r
- }\r
- }\r
- else if (pInfoData->treeconflict_nodekind == svn_node_dir)\r
- {\r
- switch (pInfoData->treeconflict_operation)\r
- {\r
- case svn_wc_operation_update:\r
- switch (pInfoData->treeconflict_action)\r
- {\r
- case svn_wc_conflict_action_edit:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRUPDATEEDIT, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
- break;\r
- case svn_wc_conflict_action_add:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRUPDATEADD, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
- break;\r
- case svn_wc_conflict_action_delete:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRUPDATEDELETE, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEDIR);\r
- break;\r
- }\r
- break;\r
- case svn_wc_operation_switch:\r
- switch (pInfoData->treeconflict_action)\r
- {\r
- case svn_wc_conflict_action_edit:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRSWITCHEDIT, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
- break;\r
- case svn_wc_conflict_action_add:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRSWITCHADD, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
- break;\r
- case svn_wc_conflict_action_delete:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRSWITCHDELETE, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEDIR);\r
- break;\r
- }\r
- break;\r
- case svn_wc_operation_merge:\r
- switch (pInfoData->treeconflict_action)\r
- {\r
- case svn_wc_conflict_action_edit:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRMERGEEDIT, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
- break;\r
- case svn_wc_conflict_action_add:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRMERGEADD, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_KEEPREPOSITORYDIR);\r
- break;\r
- case svn_wc_conflict_action_delete:\r
- sConflictAction.Format(IDS_TREECONFLICT_DIRMERGEDELETE, (LPCTSTR)sItemName);\r
- sResolveTheirs.LoadString(IDS_TREECONFLICT_RESOLVE_REMOVEDIR);\r
- break;\r
- }\r
- break;\r
- }\r
- }\r
-\r
- UINT uReasonID = 0;\r
- switch (pInfoData->treeconflict_reason)\r
- { \r
- case svn_wc_conflict_reason_edited:\r
- uReasonID = IDS_TREECONFLICT_REASON_EDITED;\r
- sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
- break;\r
- case svn_wc_conflict_reason_obstructed:\r
- uReasonID = IDS_TREECONFLICT_REASON_OBSTRUCTED;\r
- sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
- break;\r
- case svn_wc_conflict_reason_deleted:\r
- uReasonID = IDS_TREECONFLICT_REASON_DELETED;\r
- sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_REMOVEDIR : IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
- break;\r
- case svn_wc_conflict_reason_added:\r
- uReasonID = IDS_TREECONFLICT_REASON_ADDED;\r
- sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
- break;\r
- case svn_wc_conflict_reason_missing:\r
- uReasonID = IDS_TREECONFLICT_REASON_MISSING;\r
- sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_REMOVEDIR : IDS_TREECONFLICT_RESOLVE_REMOVEFILE);\r
- break;\r
- case svn_wc_conflict_reason_unversioned:\r
- uReasonID = IDS_TREECONFLICT_REASON_UNVERSIONED;\r
- sResolveMine.LoadString(pInfoData->treeconflict_nodekind == svn_node_dir ? IDS_TREECONFLICT_RESOLVE_KEEPLOCALDIR : IDS_TREECONFLICT_RESOLVE_KEEPLOCALFILE);\r
- break;\r
- }\r
- sConflictReason.Format(uReasonID, (LPCTSTR)sConflictAction);\r
-\r
- CTreeConflictEditorDlg dlg;\r
- dlg.SetConflictInfoText(sConflictReason);\r
- dlg.SetResolveTexts(sResolveTheirs, sResolveMine);\r
- dlg.SetPath(treeConflictPath);\r
- INT_PTR dlgRet = dlg.DoModal();\r
- bRet = (dlgRet != IDCANCEL);\r
- }\r
- }\r
- }\r
-#endif\r
- return bRet;\r
+ return CAppUtils::ConflictEdit(this->cmdLinePath,bAlternativeTool);\r
}\r
m_ListCtrl.EnableFileDrop();\r
m_ListCtrl.SetBackgroundImage(IDI_COMMIT_BKG);\r
\r
+ this->DialogEnableWindow(IDC_COMMIT_AMEND,FALSE);\r
// m_ProjectProperties.ReadPropsPathList(m_pathList);\r
m_cLogMessage.Init(m_ProjectProperties);\r
m_cLogMessage.SetFont((CString)CRegString(_T("Software\\TortoiseGit\\LogFontName"), _T("Courier New")), (DWORD)CRegDWORD(_T("Software\\TortoiseGit\\LogFontSize"), 8));\r
>\r
</File>\r
<File\r
- RelativePath=".\explorer.ico"\r
+ RelativePath="..\Resources\explorer.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\explorer.ico"\r
+ RelativePath=".\explorer.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\newfolder.ico"\r
+ RelativePath="..\Resources\newfolder.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\newfolder.ico"\r
+ RelativePath=".\newfolder.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\open.ico"\r
+ RelativePath="..\Resources\open.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\open.ico"\r
+ RelativePath=".\open.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\save.ico"\r
+ RelativePath="..\Resources\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\save.ico"\r
+ RelativePath=".\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\saveas.ico"\r
+ RelativePath="..\Resources\saveas.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\saveas.ico"\r
+ RelativePath=".\saveas.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\up.ico"\r
+ RelativePath="..\Resources\up.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\up.ico"\r
+ RelativePath=".\up.ico"\r
>\r
</File>\r
<File\r