#define MAX_DIRBUFFER 1000\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
+\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 FALSE;\r
+}\r
+\r
+static void InitWinGitDll()\r
+{\r
+ __try\r
+ {\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
GetCurrentDirectory(MAX_DIRBUFFER,m_CurrentDir.GetBuffer(MAX_DIRBUFFER));\r
{\r
// TODO\r
}\r
-\r
- if ( !wgInit() )\r
- {\r
- // TODO\r
- }\r
+ InitWinGitDll();\r
}\r
\r
CGit::~CGit(void)\r
extern CString GetTempFile();\r
\r
\r
-extern CGit g_Git;
\ No newline at end of file
+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
#include "GitFolderStatus.h"\r
#include "UnicodeUtils.h"\r
#include "..\TGitCache\CacheInterface.h"\r
+#include "Git.h"\r
//#include "GitGlobal.h"\r
\r
extern ShellCache g_ShellCache;\r
\r
//if (lpszSubPath) MessageBoxA(NULL, lpszSubPath, "BuildCache", MB_OK);\r
//MessageBoxA(NULL, CStringA(sProjectRoot), sSubPath, MB_OK);\r
- err = !wgEnumFiles(CStringA(sProjectRoot), lpszSubPath, WGEFF_NoRecurse|WGEFF_FullPath|WGEFF_DirStatusAll, &fillstatusmap, this);\r
+ err = !wgEnumFiles_safe(CStringA(sProjectRoot), lpszSubPath, WGEFF_NoRecurse|WGEFF_FullPath|WGEFF_DirStatusAll, &fillstatusmap, this);\r
\r
/*err = svn_client_status4 (&youngest,\r
filepath.GetDirectory().GetSVNApiPath(pool),\r
//# include "TGitPath.h"\r
//# include "PathUtils.h"\r
#endif\r
-\r
+#include "git.h"\r
\r
GitStatus::GitStatus(bool * pbCanceled)\r
: status(NULL)\r
nFlags |= WGEFF_NoRecurse;\r
#endif\r
\r
- err = !wgEnumFiles(CStringA(sProjectRoot), lpszSubPath, nFlags, &getallstatus, &statuskind);\r
+ err = !wgEnumFiles_safe(CStringA(sProjectRoot), lpszSubPath, nFlags, &getallstatus, &statuskind);\r
\r
/*err = git_client_status4 (&youngest,\r
path.GetSVNApiPath(pool),\r
\r
m_status.prop_status = m_status.text_status = git_wc_status_none;\r
\r
- // NOTE: currently wgEnumFiles will not enumerate file if it isn't versioned (so status will be git_wc_status_none)\r
- m_err = !wgEnumFiles(CStringA(sProjectRoot), lpszSubPath, nFlags, &getstatus, &m_status);\r
+ // NOTE: currently wgEnumFiles_safe_safe_safe will not enumerate file if it isn't versioned (so status will be git_wc_status_none)\r
+ m_err = !wgEnumFiles_safe(CStringA(sProjectRoot), lpszSubPath, nFlags, &getstatus, &m_status);\r
\r
/*m_err = git_client_status4 (&youngest,\r
path.GetGitApiPath(m_pool),\r
\r
if (update)\r
{\r
- const BYTE *sha1 = wgGetRevisionID(CStringA(sProjectRoot), NULL);\r
+ const BYTE *sha1 = wgGetRevisionID_safe(CStringA(sProjectRoot), NULL);\r
if (sha1)\r
youngest = ConvertHashToRevnum(sha1);\r
}\r
};\r
\r
\r
-
\ No newline at end of file
GIT_ERROR_GET_EXIT_CODE\r
};\r
\r
+extern BOOL g_IsWingitDllload;\r
+\r
class CGitByteArray:public std::vector<BYTE>\r
{\r
public:\r
m_bLoadUserToolbars = FALSE;\r
m_bSaveState = FALSE;\r
retSuccess = false;\r
- CGit git;\r
+ //CGit git;\r
//git.GetUserName();\r
}\r
\r