Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
PDMBUILDER_API string import()
{
	SourceCode *scode = getSourceCode();
	string sourceUrl = scode->GetUrl();

	int tagsIndex = sourceUrl.find("tags");
	int branchesIndex = sourceUrl.find("branches");
	int trunkIndex = sourceUrl.find("trunk");
	if (tagsIndex>0&&branchesIndex==string::npos&&trunkIndex==string::npos)
	{
		return "";
	}else if (tagsIndex>trunkIndex||tagsIndex>branchesIndex)
	{
		return "";
	}

	list<ImportStep *> *importStep = getImportStep();
	string log;

	for(list<ImportStep *>::iterator iter=importStep->begin();iter != importStep->end();++iter)
	{
		string name = (*iter)->GetName();
		string url = (*iter)->GetUrl();
		list<ImportItem *> item = (*iter)->GetItem();

		vector<string> source;
		vector<string> target;
		for(list<ImportItem *>::iterator iterItem=item.begin();iterItem != item.end();++iterItem)
		{
			string path =workspace+"\\"+(*iterItem)->GetSource();
			path = changeSeparator(path);
			source.push_back(path);
			
			target.push_back(changeSeparator((*iterItem)->GetTarget()));
		}
		//string logPath = workspace + "\\log";
		source.push_back(workspace+"\\log");
		target.push_back(".");
		//delete item;
		log += ImportLibStep(name,url,sourceUrl,source,target);
	}

	delete scode;
	delete importStep;
	return log;
}
Ejemplo n.º 4
0
PDMBUILDER_API string publish()
{
	
	SourceCode *scode = getSourceCode();
	string sourceUrl = scode->GetUrl();

	int tagsIndex = sourceUrl.find("tags");
	int branchesIndex = sourceUrl.find("branches");
	int trunkIndex = sourceUrl.find("trunk");
	if (tagsIndex<0&&branchesIndex>0||trunkIndex>0)
	{
		return "";
	}else if (tagsIndex<trunkIndex||tagsIndex<branchesIndex)
	{
		return "";
	}
	
	Publish *publish = getPublish();

	list<ImportItem *> itemList = publish->GetImportItem();
	vector<string> source;
	vector<string> target;
	for (list<ImportItem *>::iterator iter = itemList.begin();iter != itemList.end();++iter)
	{
		string path =workspace+"\\"+(*iter)->GetSource();
		path = changeSeparator(path);
		source.push_back(path);

		//source.push_back((*iter)->GetSource());
		target.push_back((*iter)->GetTarget());
	}

	string log = ExeComponentUpLoad((char *)publish->GetUrl().c_str(),"component",(char *)publish->GetCategory().c_str(),(char *)publish->GetComponent().c_str(),(char *)publish->GetVersion().c_str(),source,target);
	
	//delete itemList;
	delete scode;
	delete publish;

	return log;
}