//async get all commites public void GetAllCommits(string szWorkingDir) { if (string.IsNullOrEmpty(szWorkingDir)) { return; } CGitSourceConfig.m_szWorkingDir = szWorkingDir; Process process = CGitCmdLog.GetAllCommitesAsynch(Async_Callback_DataReceived, Async_Callback_ErrorReceived, Async_Callback_Exited); lock (_processLock) { _CurrentProcess = process; _CurrentOperaType = AsyncOperaType.ASYNC_GET_ALL_COMMITS; } }
//async svn clone public void CloneSvn(string szRepositoryUrl, string szWorkingDir,string szUser,string szPassword) { if (string.IsNullOrEmpty(szWorkingDir) || string.IsNullOrEmpty(szRepositoryUrl)) { return; } CGitSourceConfig.m_szWorkingDir = szWorkingDir; _szInputProcessArgu = szPassword; Process process = CGitCmdSvn.CloneAsynch(szRepositoryUrl, szWorkingDir, szUser, Async_Callback_DataReceived, Async_Callback_ErrorReceived, Async_Callback_Exited); lock (_processLock) { _CurrentProcess = process; _CurrentOperaType = AsyncOperaType.ASYNC_CLONE; } }
//async clone public bool Commit2SpecBranch(string szRemoteRepoName, string szLocalBranch,string szRemoteBranch,bool bIsFoece,string szWorkingDir) { if (string.IsNullOrEmpty(szWorkingDir) || string.IsNullOrEmpty(szRemoteRepoName) || string.IsNullOrEmpty(szLocalBranch)|| string.IsNullOrEmpty(szRemoteBranch)) { return false; } CGitSourceConfig.m_szWorkingDir = szWorkingDir; Process process = CGitCmdPush.Commit2SpecBranch(szRemoteRepoName, szLocalBranch, szRemoteBranch, bIsFoece,Async_Callback_DataReceived, Async_Callback_ErrorReceived, Async_Callback_Exited); lock (_processLock) { if (process == null) { return false; } _CurrentProcess = process; _CurrentOperaType = AsyncOperaType.ASYNC_PUSH_BRANCH; } return true; }
private int OnProcessClose() { Trace.WriteLine(String.Format("\n--------------------E0----------------------")); int iCode = -1; Thread.Sleep(500); lock (_processLock) { try { if (_CurrentProcess != null) { _CurrentProcess.CancelErrorRead(); _CurrentProcess.CancelOutputRead(); iCode =_CurrentProcess.ExitCode; //_CurrentProcess.WaitForExit(1000); _CurrentProcess.Refresh(); _CurrentProcess.Close(); } } finally { _CurrentProcess = null; _szInputProcessArgu = null; _CurrentOperaType = AsyncOperaType.ASYNC_NONE; } } return iCode; }
// public bool CheckSshKey(string szSshDir, string szURl) { if (string.IsNullOrEmpty(szURl)) { return false; } CGitSourceConfig.m_szWorkingDir = szSshDir; Process process = CGitCmdSSH.CheckSshKey(szURl, Async_Callback_DataReceived, Async_Callback_ErrorReceived, Async_Callback_Exited); lock (_processLock) { if (process == null) { return false; } _CurrentProcess = process; _CurrentOperaType = AsyncOperaType.ASYNC_SSH_CHECK; } return true; }
//async clone public bool UpLoadBranch2RemoteRepo(string szRemoteRepoName, string szBranch,string szWorkingDir) { if (string.IsNullOrEmpty(szWorkingDir) || string.IsNullOrEmpty(szRemoteRepoName) || string.IsNullOrEmpty(szBranch)) { return false; } CGitSourceConfig.m_szWorkingDir = szWorkingDir; Process process = CGitCmdPush.UpLoadBranchAsynch(szRemoteRepoName,szBranch, Async_Callback_DataReceived, Async_Callback_ErrorReceived, Async_Callback_Exited); lock (_processLock) { if (process == null) { return false; } _CurrentProcess = process; _CurrentOperaType = AsyncOperaType.ASYNC_UPLOAD_BRANCH; } return true; }
//async clone public bool UpdateRemote(string szRemoteRepoName, string szWorkingDir) { if (string.IsNullOrEmpty(szWorkingDir)) { return false; } CGitSourceConfig.m_szWorkingDir = szWorkingDir; Process process = CGitCmdRemote.UpdateAsynch(szRemoteRepoName, Async_Callback_DataReceived, Async_Callback_ErrorReceived, Async_Callback_Exited); lock (_processLock) { if (process==null) { return false; } _CurrentProcess = process; _CurrentOperaType = AsyncOperaType.ASYNC_UPDATE_REMOTE; } return true; }
public void KillProcess() { lock (_processLock) { try { if (_CurrentProcess == null) return; if (!_CurrentProcess.HasExited) { _CurrentProcess.Kill(); } } catch { } finally { _CurrentOperaType = AsyncOperaType.ASYNC_NONE; } } }