OSDN Git Service

wingit.dll functionality replaced by commandline tool
authorMyagi <snowcoder@gmail.com>
Thu, 12 Feb 2009 03:34:32 +0000 (04:34 +0100)
committerFrank Li <lznuaa@gmail.com>
Fri, 13 Feb 2009 14:22:35 +0000 (22:22 +0800)
Languages/TortoiseLang.vcproj
src/Git/Git.cpp
src/Git/Git.h
src/Git/GitStatus.h
src/TortoiseGit.sln
src/TortoiseGitBlame/TortoiseGitBlame.vcproj
src/TortoiseGitSetup/StructureFragment.wxi
src/TortoiseProc/TortoiseProc.vcproj
src/TortoiseShell/TortoiseShell.vcproj

index 3a87a3e..61e91d6 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>\r
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
-       Version="9.00"\r
+       Version="9,00"\r
        Name="TortoiseLangs"\r
        ProjectGUID="{EC88E7EC-3074-4841-BA45-B938D098EFF6}"\r
        RootNamespace="TortoiseLangs"\r
@@ -47,9 +47,9 @@
                        >\r
                        <Tool\r
                                Name="VCNMakeTool"\r
-                               BuildCommandLine="adfad"\r
-                               ReBuildCommandLine=""\r
-                               CleanCommandLine=""\r
+                               BuildCommandLine="nmake /f Makefile outdir=$(OutDir)  ConfigurationName=$(ConfigurationName)"\r
+                               ReBuildCommandLine="nmake /f Makefile outdir=$(OutDir)  ConfigurationName=$(ConfigurationName)"\r
+                               CleanCommandLine="nmake /f Makefile clean "\r
                                Output="TortoiseLangs.exe"\r
                                PreprocessorDefinitions="WIN32;NDEBUG"\r
                                IncludeSearchPath=""\r
index 5a947f6..5d62fb2 100644 (file)
@@ -99,6 +99,8 @@ static BOOL FindGitPath()
                if ( FileExists(buf) )\r
                {\r
                        // dir found\r
+                       pfin[1] = 0;\r
+                       CGit::ms_LastMsysGitDir = buf;\r
                        return TRUE;\r
                }\r
        }\r
@@ -112,31 +114,17 @@ static BOOL FindGitPath()
 \r
 CString CGit::ms_LastMsysGitDir;\r
 CGit g_Git;\r
-BOOL g_IsWingitDllload = TRUE;\r
 \r
-LPBYTE wgGetRevisionID_safe(const char *pszProjectPath, const char *pszName)\r
-{\r
-       //if(g_IsWingitDllload)\r
-       //      return wgGetRevisionID(pszProjectPath,pszName);\r
-       //else\r
-       return NULL;\r
-}\r
+// contains system environment that should be used by child processes (RunAsync)\r
+// initialized by CheckMsysGitDir\r
+static LPTSTR l_processEnv = NULL;\r
 \r
-BOOL wgEnumFiles_safe(const char *pszProjectPath, const char *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData)\r
-{\r
-       //if(g_IsWingitDllload)\r
-       //      return wgEnumFiles(pszProjectPath,pszSubPath,nFlags,pEnumCb,pUserData);\r
-       //else\r
-       //      return g_Git.EnumFiles(pszProjectPath,pszSubPath,nFlags,pEnumCb,pUserData);\r
-       return FALSE;\r
-}\r
 \r
 BOOL CGit::IsVista()\r
 {\r
 \r
        if( CRegStdWORD(_T("Software\\TortoiseGit\\CacheType") ) == 0)\r
        {\r
-               g_IsWingitDllload=FALSE;\r
                return TRUE;\r
        }\r
 \r
@@ -154,42 +142,12 @@ BOOL CGit::IsVista()
                return FALSE;\r
 }\r
 \r
-static void InitWinGitDll()\r
-{\r
-       __try\r
-       {\r
-\r
-               if( CGit::IsVista () )\r
-               {\r
-                       g_IsWingitDllload=FALSE;\r
-                       return;\r
-               }\r
-               if ( !wgInit() )\r
-               {\r
-                               // TODO\r
-               }\r
-       }\r
-       __except(1)\r
-       {\r
-               g_IsWingitDllload=FALSE;\r
-               return;\r
-       }\r
-\r
-}\r
 CGit::CGit(void)\r
 {\r
-\r
        GetCurrentDirectory(MAX_DIRBUFFER,m_CurrentDir.GetBuffer(MAX_DIRBUFFER));\r
        m_CurrentDir.ReleaseBuffer();\r
 \r
-#if 0\r
-       // make sure git/bin is in PATH before wingit.dll gets (delay) loaded by wgInit()\r
-       if ( !CheckMsysGitDir() )\r
-       {\r
-               // TODO\r
-       }\r
-       InitWinGitDll();\r
-#endif\r
+       CheckMsysGitDir();\r
 }\r
 \r
 CGit::~CGit(void)\r
@@ -232,7 +190,10 @@ int CGit::RunAsync(CString cmd,PROCESS_INFORMATION *piOut,HANDLE *hReadOut,CStri
        si.wShowWindow=SW_HIDE;\r
        si.dwFlags=STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;\r
 \r
-       if(!CreateProcess(NULL,(LPWSTR)cmd.GetString(), NULL,NULL,TRUE,NULL,NULL,(LPWSTR)m_CurrentDir.GetString(),&si,&pi))\r
+       LPTSTR pEnv = l_processEnv;\r
+       DWORD dwFlags = pEnv ? CREATE_UNICODE_ENVIRONMENT : 0;\r
+\r
+       if(!CreateProcess(NULL,(LPWSTR)cmd.GetString(), NULL,NULL,TRUE,dwFlags,pEnv,(LPWSTR)m_CurrentDir.GetString(),&si,&pi))\r
        {\r
                LPVOID lpMsgBuf;\r
                FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,\r
@@ -600,8 +561,6 @@ int CGit::RunLogFile(CString cmd,CString &filename)
 \r
 git_revnum_t CGit::GetHash(CString &friendname)\r
 {\r
-       // NOTE: could replace this with wgGetRevisionID call\r
-\r
        CString cmd;\r
        CString out;\r
        cmd.Format(_T("git.exe rev-parse %s" ),friendname);\r
@@ -789,6 +748,7 @@ BOOL CGit::CheckMsysGitDir()
 \r
        _tputenv_s(_T("PATH"),path);\r
 \r
+       CString sOldPath = oldpath;\r
        free(oldpath);\r
 \r
 \r
@@ -798,6 +758,12 @@ BOOL CGit::CheckMsysGitDir()
        }\r
        else\r
        {\r
+#ifdef _TORTOISESHELL\r
+               l_processEnv = GetEnvironmentStrings();\r
+               // updated environment is now duplicated for use in CreateProcess, restore original PATH for current process\r
+               _tputenv_s(_T("PATH"),sOldPath);\r
+#endif\r
+\r
                bInitialized = TRUE;\r
                return true;\r
        }\r
@@ -825,70 +791,97 @@ public:
        void *                  m_pUserData;\r
 \r
        BYTE_VECTOR             m_DataCollector;\r
-       TStrCharMap             m_FileStatus;\r
 \r
        virtual bool    OnOutputData(const BYTE* data, size_t size)\r
        {\r
                m_DataCollector.append(data,size);\r
                while(true)\r
                {\r
-                       int found=m_DataCollector.findData((const BYTE*)"\n",1);\r
+                       // lines from igit.exe are 0 terminated\r
+                       int found=m_DataCollector.findData((const BYTE*)"",1);\r
                        if(found<0)\r
                                return false;\r
-                       CStringA line;\r
-                       char* pline=line.GetBuffer(found+1);\r
-                       memcpy(pline,&*m_DataCollector.begin(),found);\r
-                       pline[found]='\0';\r
-                       line.ReleaseBuffer();\r
-                       OnSingleLine(line);\r
-                       m_DataCollector.erase(m_DataCollector.begin(),m_DataCollector.begin()+found+1);\r
+                       OnSingleLine( (LPCSTR)&*m_DataCollector.begin() );\r
+                       m_DataCollector.erase(m_DataCollector.begin(), m_DataCollector.begin()+found+1);\r
                }\r
                return false;//Should never reach this\r
        }\r
        virtual void    OnEnd()\r
        {\r
-               for(TStrCharMap::iterator itFileStatus=m_FileStatus.begin();itFileStatus!=m_FileStatus.end();++itFileStatus)\r
-               {\r
-                       wgFile_s fileStatus;\r
-                       fileStatus.sFileName=itFileStatus->first;\r
-                       switch(itFileStatus->second)\r
-                       {\r
-                       case 'C':       fileStatus.nStatus=WGFS_Modified;break;\r
-                       case 'H':       fileStatus.nStatus=WGFS_Normal;break;\r
-                       case 'R':       fileStatus.nStatus=WGFS_Deleted;break;\r
-                       case '?':       fileStatus.nStatus=WGFS_Empty;break;//Other?\r
-                       case 'K'://Todo: Killed?\r
-                       case 'M'://Todo: What to do with this state? WGFS_Conflicted?\r
-                       default://Unexpected status. Show as normal.\r
-                               fileStatus.nStatus=WGFS_Normal;\r
-                       }\r
-                       fileStatus.sha1=NULL;//Unknown with this call\r
-                       fileStatus.nFlags=0;//Never a directory with this call. Git doesnt track directories as such.\r
-                       (*m_pEnumCb)(&fileStatus,m_pUserData);\r
-               }\r
        }\r
-       bool OnSingleLine(CStringA line)\r
+\r
+       UINT HexChar(char ch)\r
        {\r
-               //Parse single line\r
-               int space=line.Find(' ');\r
-               if(space<0)\r
-                       return false;\r
-               char status=line[0];\r
-               CStringA path=line;\r
-               path=path.Mid(space+1);\r
-               m_FileStatus[path]=status;\r
-               return true;\r
+               if (ch >= '0' && ch <= '9')\r
+                       return (UINT)(ch - '0');\r
+               else if (ch >= 'A' && ch <= 'F')\r
+                       return (UINT)(ch - 'A') + 10;\r
+               else if (ch >= 'a' && ch <= 'f')\r
+                       return (UINT)(ch - 'a') + 10;\r
+               else\r
+                       return 0;\r
        }\r
 \r
+       bool OnSingleLine(LPCSTR line)\r
+       {\r
+               //Parse single line\r
+\r
+               wgFile_s fileStatus;\r
+\r
+               // file/dir type\r
+\r
+               fileStatus.nFlags = 0;\r
+               if (*line == 'D')\r
+                       fileStatus.nFlags |= WGFF_Directory;\r
+               line += 2;\r
+\r
+               // status\r
+\r
+               fileStatus.nStatus = WGFS_Unknown;\r
+               switch (*line)\r
+               {\r
+               case 'N': fileStatus.nStatus = WGFS_Normal; break;\r
+               case 'M': fileStatus.nStatus = WGFS_Modified; break;\r
+               case 'S': fileStatus.nStatus = WGFS_Staged; break;\r
+               case 'A': fileStatus.nStatus = WGFS_Added; break;\r
+               case 'C': fileStatus.nStatus = WGFS_Conflicted; break;\r
+               case 'D': fileStatus.nStatus = WGFS_Deleted; break;\r
+               case 'I': fileStatus.nStatus = WGFS_Ignored; break;\r
+               case 'U': fileStatus.nStatus = WGFS_Unversioned; break;\r
+               case 'E': fileStatus.nStatus = WGFS_Empty; break;\r
+               }\r
+               line += 2;\r
+\r
+               // file sha1\r
+\r
+               BYTE sha1[20];\r
+               fileStatus.sha1 = NULL;\r
+               if ( !(fileStatus.nFlags & WGFF_Directory) )\r
+               {\r
+                       for (int i=0; i<20; i++)\r
+                       {\r
+                               sha1[i] = (HexChar(line[0]) << 8) | HexChar(line[1]);\r
+                               line += 2;\r
+                       }\r
+\r
+                       line++;\r
+               }\r
 \r
+               // filename\r
+               fileStatus.sFileName = line;\r
 \r
+               if ( (*m_pEnumCb)(&fileStatus,m_pUserData) )\r
+                       return false;\r
 \r
+               return true;\r
+       }\r
 };\r
 \r
 BOOL CGit::EnumFiles(const char *pszProjectPath, const char *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData)\r
 {\r
-       if(*pszProjectPath=='\0')\r
+       if(!pszProjectPath || *pszProjectPath=='\0')\r
                return FALSE;\r
+\r
        CGitCall_EnumFiles W_GitCall(pszProjectPath,pszSubPath,nFlags,pEnumCb,pUserData);\r
        CString cmd;\r
 \r
@@ -901,8 +894,33 @@ BOOL CGit::EnumFiles(const char *pszProjectPath, const char *pszSubPath, unsigne
        GetCurrentDirectoryA(sizeof(W_szToDir)-1,W_szToDir);\r
 */\r
        SetCurrentDir(CUnicodeUtils::GetUnicode(pszProjectPath));\r
-       cmd.Format(_T("git.exe ls-files -t -c -d -m"));// -- %s"),CUnicodeUtils::GetUnicode(pszProjectPath));\r
+\r
+       CString sMode;\r
+       if (nFlags)\r
+       {\r
+               if (nFlags & WGEFF_NoRecurse) sMode += _T("r");\r
+               if (nFlags & WGEFF_FullPath) sMode += _T("f");\r
+               if (nFlags & WGEFF_DirStatusDelta) sMode += _T("d");\r
+               if (nFlags & WGEFF_DirStatusAll) sMode += _T("D");\r
+               if (nFlags & WGEFF_EmptyAsNormal) sMode += _T("e");\r
+               if (nFlags & WGEFF_SingleFile) sMode += _T("s");\r
+       }\r
+       else\r
+       {\r
+               sMode = _T("-");\r
+       }\r
+\r
+       if (pszSubPath)\r
+               cmd.Format(_T("igit.exe %s status %s %s"), CUnicodeUtils::GetUnicode(pszProjectPath), sMode, CUnicodeUtils::GetUnicode(pszSubPath));\r
+       else\r
+               cmd.Format(_T("igit.exe %s status %s"), CUnicodeUtils::GetUnicode(pszProjectPath), sMode);\r
+\r
        W_GitCall.SetCmd(cmd);\r
-       Run(&W_GitCall);\r
+       // NOTE: should igit get added as a part of msysgit then use below line instead of the above one\r
+       //W_GitCall.SetCmd(CGit::ms_LastMsysGitDir + cmd);\r
+\r
+       if ( Run(&W_GitCall) )\r
+               return FALSE;\r
+\r
        return TRUE;\r
 }\r
index 632ddb3..5e81ff9 100644 (file)
@@ -105,5 +105,4 @@ extern CString GetTempFile();
 \r
 extern CGit g_Git;\r
 \r
-extern LPBYTE wgGetRevisionID_safe(const char *pszProjectPath, const char *pszName);\r
-extern BOOL wgEnumFiles_safe(const char *pszProjectPath, const char *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData);\r
+inline static BOOL wgEnumFiles(const char *pszProjectPath, const char *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData) { return g_Git.EnumFiles(pszProjectPath, pszSubPath, nFlags, pEnumCb, pUserData); }\r
index 9e16536..2370184 100644 (file)
@@ -15,7 +15,6 @@ typedef std::basic_string<wchar_t> wide_string;
 #pragma warning (pop)\r
 \r
 #include "TGitPath.h"\r
-#include "../../ext/wingit/wingit.h"\r
 \r
 typedef enum type_git_wc_status_kind\r
 {\r
@@ -63,6 +62,59 @@ typedef struct git_wc_status2_t
 #define MAX_STATUS_STRING_LENGTH               256\r
 \r
 \r
+/////////////////////////////////////////////////////////////////////\r
+// WINGIT API (replaced by commandline tool, but defs and data types kept so old code still works)\r
+\r
+// Flags for wgEnumFiles\r
+enum WGENUMFILEFLAGS\r
+{\r
+       WGEFF_NoRecurse         = (1<<0),       // only enumerate files directly in the specified path\r
+       WGEFF_FullPath          = (1<<1),       // enumerated filenames are specified with full path (instead of relative to proj root)\r
+       WGEFF_DirStatusDelta= (1<<2),   // include directories, in enumeration, that have a recursive status != WGFS_Normal (may have a slightly better performance than WGEFF_DirStatusAll)\r
+       WGEFF_DirStatusAll      = (1<<3),       // include directories, in enumeration, with recursive status\r
+       WGEFF_EmptyAsNormal     = (1<<4),       // report sub-directories, with no versioned files, as WGFS_Normal instead of WGFS_Empty\r
+       WGEFF_SingleFile        = (1<<5)        // indicates that the status of a single file or dir, specified by pszSubPath, is wanted\r
+};\r
+\r
+// File status\r
+enum WGFILESTATUS\r
+{\r
+       WGFS_Normal,\r
+       WGFS_Modified,\r
+       WGFS_Staged,\r
+       WGFS_Added,\r
+       WGFS_Conflicted,\r
+       WGFS_Deleted,\r
+\r
+       WGFS_Ignored = -1,\r
+       WGFS_Unversioned = -2,\r
+       WGFS_Empty = -3,\r
+       WGFS_Unknown = -4\r
+};\r
+\r
+// File flags\r
+enum WGFILEFLAGS\r
+{\r
+       WGFF_Directory          = (1<<0)        // enumerated file is a directory\r
+};\r
+\r
+struct wgFile_s\r
+{\r
+       const char *sFileName;                  // filename or directory relative to project root (using forward slashes)\r
+       int nStatus;                                    // the WGFILESTATUS of the file\r
+       int nFlags;                                             // a combination of WGFILEFLAGS\r
+\r
+       const BYTE* sha1;                               // points to the BYTE[20] sha1 (NULL for directories, WGFF_Directory)\r
+};\r
+\r
+// Application-defined callback function for wgEnumFiles, returns TRUE to abort enumeration\r
+// NOTE: do NOT store the pFile pointer or any pointers in wgFile_s for later use, the data is only valid for a single callback call\r
+typedef BOOL (__cdecl WGENUMFILECB)(const struct wgFile_s *pFile, void *pUserData);\r
+\r
+//\r
+/////////////////////////////////////////////////////////////////////\r
+\r
+\r
 // convert wingit.dll status to git_wc_status_kind\r
 inline static git_wc_status_kind GitStatusFromWingit(int nStatus)\r
 {\r
@@ -70,11 +122,13 @@ inline static git_wc_status_kind GitStatusFromWingit(int nStatus)
        {\r
        case WGFS_Normal: return git_wc_status_normal;\r
        case WGFS_Modified: return git_wc_status_modified;\r
-       //case WGFS_Staged: return git_wc_status_modified;\r
-       //case WGFS_Added: return git_wc_status_added;\r
+       case WGFS_Staged: return git_wc_status_modified;\r
+       case WGFS_Added: return git_wc_status_added;\r
        case WGFS_Conflicted: return git_wc_status_conflicted;\r
        case WGFS_Deleted: return git_wc_status_deleted;\r
 \r
+       case WGFS_Ignored: return git_wc_status_ignored;\r
+       case WGFS_Unversioned: return git_wc_status_unversioned;\r
        case WGFS_Empty: return git_wc_status_unversioned;\r
        }\r
 \r
index 9334049..bab6b69 100644 (file)
@@ -541,7 +541,6 @@ Global
                {EC88E7EC-3074-4841-BA45-B938D098EFF6}.release_static|x64.ActiveCfg = Release|Win32\r
                {EC88E7EC-3074-4841-BA45-B938D098EFF6}.release_static|x86.ActiveCfg = Release|Win32\r
                {EC88E7EC-3074-4841-BA45-B938D098EFF6}.Release|Mixed Platforms.ActiveCfg = Release|Win32\r
-               {EC88E7EC-3074-4841-BA45-B938D098EFF6}.Release|Mixed Platforms.Build.0 = Release|Win32\r
                {EC88E7EC-3074-4841-BA45-B938D098EFF6}.Release|Win32.ActiveCfg = Release|Win32\r
                {EC88E7EC-3074-4841-BA45-B938D098EFF6}.Release|x64.ActiveCfg = Release|x64\r
                {EC88E7EC-3074-4841-BA45-B938D098EFF6}.Release|x64.Build.0 = Release|x64\r
index 53df0ad..ba34f3c 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="gb2312"?>\r
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
-       Version="9.00"\r
+       Version="9,00"\r
        Name="TortoiseGitBlame"\r
        ProjectGUID="{62507C2F-9290-4342-910F-BFC44DF99B01}"\r
        RootNamespace="TortoiseGitBlame"\r
@@ -74,9 +74,9 @@
                                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
-                               AdditionalLibraryDirectories="../../ext/wingit"\r
+                               AdditionalLibraryDirectories=""\r
                                IgnoreDefaultLibraryNames="LIBCMTD"\r
-                               DelayLoadDLLs="wingit.dll"\r
+                               DelayLoadDLLs=""\r
                                GenerateDebugInformation="true"\r
                                SubSystem="2"\r
                                TargetMachine="1"\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
                                AdditionalLibraryDirectories="../../ext/wingit"\r
+                               AdditionalLibraryDirectories=""\r
                                GenerateDebugInformation="true"\r
                                SubSystem="2"\r
                                OptimizeReferences="2"\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
                                </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
index 2f9531a..19edaac 100644 (file)
@@ -231,7 +231,7 @@ out everything for now, leaving these enabled as they are would make the install
             </Component>\r
 \r
             <Component Id="C__wingit" Guid="$(var.GuidGitLib)" Win64="$(var.Win64YesNo)">\r
-              <File Id="F__wingit" ShortName="WINGIT.DLL" Name="wingit.dll" DiskId="1" Source="..\..\ext\wingit\wingit.dll" KeyPath="yes" />\r
+              <File Id="F__wingit" ShortName="IGIT.EXE" Name="igit.exe" DiskId="1" Source="..\..\ext\igit.exe" KeyPath="yes" />\r
             </Component>\r
             \r
             <Component Id="C__TortoiseSVN" Guid="$(var.GuidTortoiseSVN)" Win64="$(var.Win64YesNo)">\r
index 1199c8e..c4d4763 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>\r
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
-       Version="9.00"\r
+       Version="9,00"\r
        Name="TortoiseProc"\r
        ProjectGUID="{50797F06-39C5-4802-8E2B-7B7A4EF03214}"\r
        RootNamespace="TortoiseProc"\r
@@ -77,9 +77,9 @@
                                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
-                               AdditionalLibraryDirectories="../../ext/wingit"\r
+                               AdditionalLibraryDirectories=""\r
                                IgnoreDefaultLibraryNames="libcd.lib;libc;shell32;LIBCMTD;"\r
-                               DelayLoadDLLs="gdiplus.dll;wingit.dll"\r
+                               DelayLoadDLLs="gdiplus.dll"\r
                                GenerateDebugInformation="true"\r
                                SubSystem="2"\r
                                RandomizedBaseAddress="1"\r
index 84edbd9..3b1db93 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>\r
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
-       Version="9.00"\r
+       Version="9,00"\r
        Name="TortoiseShell"\r
        ProjectGUID="{E873DD32-5A31-4DE1-8341-A56A2A5489EA}"\r
        RootNamespace="TortoiseShell"\r
@@ -53,7 +53,7 @@
                                Optimization="0"\r
                                InlineFunctionExpansion="0"\r
                                AdditionalIncludeDirectories="&quot;../Git&quot;;&quot;../../ext/apr-util/include&quot;;&quot;../../ext/apr-util/xml/expat/lib&quot;;../../ext/Subversion/subversion/include;../../ext/apr/include;../Utils;..\TortoiseShell;..\SVN;&quot;..\..\ext\libintl\libintl3-win32\inc&quot;;..\Utils\MiscUI"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SVN_DEBUG"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SVN_DEBUG;_TORTOISESHELL"\r
                                BasicRuntimeChecks="1"\r
                                RuntimeLibrary="3"\r
                                ForceConformanceInForLoopScope="true"\r
                                OutputFile="$(OutDir)/TortoiseGit.dll"\r
                                LinkIncremental="0"\r
                                SuppressStartupBanner="true"\r
-                               AdditionalLibraryDirectories="../../ext/wingit"\r
+                               AdditionalLibraryDirectories=""\r
                                IgnoreAllDefaultLibraries="false"\r
                                IgnoreDefaultLibraryNames="LIBC"\r
                                ModuleDefinitionFile=".\ShellExt.def"\r
-                               DelayLoadDLLs="gdiplus.dll;"\r
+                               DelayLoadDLLs="gdiplus.dll"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="$(OutDir)/TortoiseGit.pdb"\r
                                OptimizeReferences="1"\r
                                FavorSizeOrSpeed="1"\r
                                OmitFramePointers="true"\r
                                AdditionalIncludeDirectories="&quot;../Git&quot;;&quot;../../ext/apr-util/include&quot;;&quot;../../ext/apr-util/xml/expat/lib&quot;;../../ext/Subversion/subversion/include;../../ext/apr/include;../Utils;..\TortoiseShell;..\SVN;&quot;..\..\ext\libintl\libintl3-win32\inc&quot;;..\Utils\MiscUI"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;_TORTOISESHELL"\r
                                StringPooling="true"\r
                                RuntimeLibrary="2"\r
                                BufferSecurityCheck="false"\r
                                OutputFile="$(OutDir)/TortoiseGit.dll"\r
                                LinkIncremental="1"\r
                                SuppressStartupBanner="true"\r
-                               AdditionalLibraryDirectories="../../ext/wingit"\r
+                               AdditionalLibraryDirectories=""\r
                                IgnoreDefaultLibraryNames="libcd, libc, shell32"\r
                                ModuleDefinitionFile=".\ShellExt.def"\r
-                               DelayLoadDLLs="gdiplus.dll;"\r
+                               DelayLoadDLLs="gdiplus.dll"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="$(OutDir)/TortoiseShell.pdb"\r
                                SubSystem="2"\r