PDMBUILDER_API string checkout(string workspace) { SourceCode *sourceCode = getSourceCode(); char ExportCmd[500]; memset(ExportCmd,0,sizeof(ExportCmd)); string url = sourceCode->GetUrl(); string log("<---------------------------checkout--------------------------->\nCheckout: "); log.append(url).append("\n"); //string fullpath(workspace+"\\"+sourceCode->GetLocalPath()); string fullpath = sourceCode->GetLocalPath(); fullpath = changeSeparator(fullpath); if(sourceCode->GetVersion() == "head"){ sprintf(ExportCmd, "svn checkout --force --non-interactive --username %s --password %s %s \"%s\"",buildName.c_str(),buildPassword.c_str(),sourceCode->GetUrl().c_str(), fullpath.c_str()); }else{ sprintf(ExportCmd, "svn checkout -r %s --force --non-interactive --username %s --password %s %s \"%s\"",buildName.c_str(),buildPassword.c_str(),sourceCode->GetVersion().c_str(),sourceCode->GetUrl().c_str(),fullpath.c_str()); } int exitCode = 0; log += ExeCommand(ExportCmd,exitCode,(char *)workspace.c_str()); if (exitCode>0&&exitCode!=STILL_ACTIVE) { return log +"\nerror"; } int errorindex = log.find("svn: E"); if (errorindex!=string::npos) { return log +"\nerror"; } if ("head" == sourceCode->GetVersion()) { //int length = log.length(); int index = log.rfind("Checked out revision"); if(index!=string::npos){ int in = log.rfind("."); index += 21; sourceVersion = log.substr(index,in-index); } }else{ sourceVersion = sourceCode->GetVersion(); } delete sourceCode; return log; }
PDMBUILDER_API void getCodeInfo(char *url,char *version,char *localpath) { SourceCode *sourceCode = getSourceCode(); strcpy(url,sourceCode->GetUrl().c_str()); strcpy(version,sourceCode->GetVersion().c_str()); strcpy(localpath,sourceCode->GetLocalPath().c_str()); delete sourceCode; //url = (char *)sourceCode->GetUrl().c_str(); //version = (char *)sourceCode->GetVersion().c_str(); //localpath = (char *)sourceCode->GetLocalPath().c_str(); }