#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_UNVER = 0x80000000,\r
LOGACTIONS_IGNORE = 0x40000000,\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 CString& sPath);\r
+ void SetFromGit(const TCHAR* pPath, bool bIsDirectory);\r
+ void SetFromGit(const CString& sPath,CString *OldPath=NULL);\r
+ \r
/**\r
* Set the path as UNICODE with backslashes\r
*/\r
* Returns the path with forward slashes.\r
*/\r
const CString& GetGitPathString() const;\r
+\r
+ const CString& GetGitOldPathString() const;\r
/**\r
* Returns the path completely prepared to be fed the the Git APIs\r
* It will be in UTF8, with URLs escaped, if necessary\r
* contains an admin directory.\r
*/\r
bool HasAdminDir() const;\r
+ bool HasAdminDir(CString *ProjectTopDir) 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
// 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 FillUnRev(int Action);\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
* Load from the path argument string, when the 'path' parameter is used\r