From: Frank Li Date: Thu, 5 Feb 2009 15:45:28 +0000 (+0800) Subject: Fix Issue 31 in tortoisegit: Init Repository, Commit dialog can show added file X-Git-Url: http://git.sourceforge.jp/view?p=tortoisegit%2FTortoiseGitJp.git;a=commitdiff_plain;h=e5d619df236532b43ee0b10715b3756500c034d2;hp=09721071cee2819ca6f6216007d229b7940b55bc Fix Issue 31 in tortoisegit: Init Repository, Commit dialog can show added file Signed-off-by: Frank Li --- diff --git a/src/Git/GitStatusListCtrl.cpp b/src/Git/GitStatusListCtrl.cpp index 6cb5570..ff45d93 100644 --- a/src/Git/GitStatusListCtrl.cpp +++ b/src/Git/GitStatusListCtrl.cpp @@ -5253,40 +5253,62 @@ int CGitStatusListCtrl::UpdateFileList(git_revnum_t hash,CTGitPathList *list) BYTE_VECTOR cmdout; cmdout.clear(); CString cmd; - if(list == NULL) - cmd=(_T("git.exe diff-index --raw HEAD --numstat -C -M -z")); - else - cmd.Format(_T("git.exe diff-index --raw HEAD --numstat -C -M -z -- \"%s\""),(*list)[i].GetGitPathString()); - - if(g_Git.Run(cmd,&cmdout)) + if(!g_Git.IsInitRepos()) { - cmdout.clear(); - CString strout; - if(g_Git.Run(_T("git.exe rev-parse --revs-only HEAD"),&strout,CP_UTF8)) + if(list == NULL) + cmd=(_T("git.exe diff-index --raw HEAD --numstat -C -M -z")); + else + cmd.Format(_T("git.exe diff-index --raw HEAD --numstat -C -M -z -- \"%s\""),(*list)[i].GetGitPathString()); + + if(g_Git.Run(cmd,&cmdout)) { + cmdout.clear(); + CString strout; + if(g_Git.Run(_T("git.exe rev-parse --revs-only HEAD"),&strout,CP_UTF8)) + { + CMessageBox::Show(NULL,strout,_T("TortoiseGit"),MB_OK); + return -1; + } + if(strout.IsEmpty()) + break; //this is initial repositoyr, there are no any history + CMessageBox::Show(NULL,strout,_T("TortoiseGit"),MB_OK); return -1; - } - if(strout.IsEmpty()) - break; //this is initial repositoyr, there are no any history - CMessageBox::Show(NULL,strout,_T("TortoiseGit"),MB_OK); - return -1; + } + + if(list == NULL) + cmd=(_T("git.exe diff-index --cached --raw HEAD --numstat -C -M -z")); + else + cmd.Format(_T("git.exe diff-index --cached --raw HEAD --numstat -C -M -z -- \"%s\""),(*list)[i].GetGitPathString()); + g_Git.Run(cmd,&cmdout); + //out+=cmdout; + out.append(cmdout,0); } - - if(list == NULL) - cmd=(_T("git.exe diff-index --cached --raw HEAD --numstat -C -M -z")); - else - cmd.Format(_T("git.exe diff-index --cached --raw HEAD --numstat -C -M -z -- \"%s\""),(*list)[i].GetGitPathString()); + else // Init Repository + { + if(list == NULL) + cmd=_T("git.exe ls-files -s -t -z"); + else + cmd.Format(_T("git.exe ls-files -s -t -z -- \"%s\""),(*list)[i].GetGitPathString()); - g_Git.Run(cmd,&cmdout); - //out+=cmdout; - out.append(cmdout,0); + g_Git.Run(cmd,&cmdout); + //out+=cmdout; + out.append(cmdout,0); + } } + if(g_Git.IsInitRepos()) + { + m_StatusFileList.ParserFromLsFile(out); + for(int i=0;im_StatusFileList.ParserFromLog(out); - this->m_StatusFileList.ParserFromLog(out); + }else { int count = 0;