#pragma once\r
+#include "gittype.h"\r
\r
class CTGitPath\r
{\r
public:\r
CTGitPath(void);\r
~CTGitPath(void);\r
- CTGitPath(const CString& sUnknownPath);\r
+ CTGitPath(const CString& sUnknownPath);\r
+ int m_Stage;\r
public:\r
enum\r
{ \r
LOGACTIONS_MODIFIED = 0x00000002,\r
LOGACTIONS_REPLACED = 0x00000004,\r
LOGACTIONS_DELETED = 0x00000008,\r
+ LOGACTIONS_UNMERGED = 0x00000010,\r
+ LOGACTIONS_CACHE = 0x00000020,\r
+ LOGACTIONS_COPY = 0x00000040,\r
+ LOGACTIONS_MERGED = 0x00000080,\r
+ LOGACTIONS_FORWORD = 0x00000100,\r
LOGACTIONS_UNVER = 0x80000000,\r
LOGACTIONS_IGNORE = 0x40000000,\r
- LOGACTIONS_CONFLICT = 0x20000000,\r
+ //LOGACTIONS_CONFLICT = 0x20000000,\r
+ \r
+ // For log filter only\r
+ LOGACTIONS_HIDE = 0x20000000,\r
+ LOGACTIONS_GRAY = 0x10000000,\r
+\r
+ // For Rebase only\r
+ LOGACTIONS_REBASE_CURRENT = 0x08000000,\r
+ LOGACTIONS_REBASE_PICK = 0x04000000,\r
+ LOGACTIONS_REBASE_SQUASH = 0x02000000,\r
+ LOGACTIONS_REBASE_EDIT = 0x01000000,\r
+ LOGACTIONS_REBASE_DONE = 0x00800000,\r
+ LOGACTIONS_REBASE_SKIP = 0x00400000,\r
+ LOGACTIONS_REBASE_MASK = 0x0FC00000,\r
+ LOGACTIONS_REBASE_MODE_MASK=0x07C00000,\r
+\r
};\r
\r
CString m_StatAdd;\r
CString m_StatDel;\r
int m_Action;\r
bool m_Checked;\r
- int ParserAction(CString action);\r
+ int ParserAction(BYTE action);\r
CString GetActionName();\r
+ static CString GetActionName(int action);\r
/**\r
* Set the path as an UTF8 string with forward slashes\r
*/\r
void SetFromGit(const char* pPath);\r
void SetFromGit(const char* pPath, bool bIsDirectory);\r
+ void SetFromGit(const TCHAR* pPath, bool bIsDirectory);\r
void SetFromGit(const CString& sPath,CString *OldPath=NULL);\r
\r
/**\r
* Returns true if the path points to a directory\r
*/\r
bool IsDirectory() const;\r
+\r
+ CTGitPath GetSubPath(CTGitPath &root);\r
+\r
/**\r
* Returns the directory. If the path points to a directory, then the path\r
* is returned unchanged. If the path points to a file, the path to the \r
* contains an admin directory.\r
*/\r
bool HasAdminDir() const;\r
+ bool HasAdminDir(CString *ProjectTopDir) const;\r
+ bool HasSubmodules() const;\r
\r
/**\r
* Checks if the path point to or below a Subversion admin directory (.Git).\r
mutable CString m_sUIPath;\r
mutable CStringA m_sUTF8FwdslashPath;\r
mutable CStringA m_sUTF8FwdslashPathEscaped;\r
+ mutable CString m_sProjectRoot;\r
\r
//used for rename case\r
mutable CString m_sOldBackslashPath;\r
mutable CString m_sOldFwdslashPath;\r
- \r
+\r
// Have we yet determined if this is a directory or not?\r
mutable bool m_bDirectoryKnown;\r
mutable bool m_bIsDirectory;\r
// A constructor which allows a path list to be easily built with one initial entry in\r
explicit CTGitPathList(const CTGitPath& firstEntry);\r
int m_Action;\r
+\r
public:\r
void AddPath(const CTGitPath& newPath);\r
bool LoadFromFile(const CTGitPath& filename);\r
bool WriteToFile(const CString& sFilename, bool bANSI = false) const;\r
CTGitPath * LookForGitPath(CString path);\r
- int ParserFromLog(CString &log);\r
+ int ParserFromLog(BYTE_VECTOR &log);\r
+ int ParserFromLsFile(BYTE_VECTOR &out,bool staged=true);\r
int FillUnRev(int Action,CTGitPathList *list=NULL);\r
int GetAction();\r
/**\r