Это - то, как я автоматически создаю папку branches
(при условии, что trunk
уже существует), таким образом я могу автоматически переходить. Это написано на C # и использует DLL SharpSVN, чтобы сделать работу. Затем он вызывает TortoiseSVN (не показан), чтобы выполнить ветвь.
using SharpSvn;
SvnClient client = new SvnClient();
Uri trunkUri = client.GetUriFromWorkingCopy(trunkPath);
if (trunkUri.Segments.Last() != "trunk/")
{
MessageBox.Show(String.Format("Will skip {0}, because first trunk path does not end in \"trunk\\\"",trunkPath));
return;
} else {
System.UriBuilder builder = new UriBuilder(trunkUri);
builder.Path += "../branches/";
Uri parent = builder.Uri;
System.Collections.ObjectModel.Collection<SvnInfoEventArgs> info;
bool result = client.GetInfo(SvnTarget.FromUri(parent), new SvnInfoArgs { ThrowOnError = false }, out info);
if (result == false)
{
SvnCreateDirectoryArgs args = new SvnCreateDirectoryArgs();
args.CreateParents = true;
args.ThrowOnError = true;
args.LogMessage = String.Format("Creating new branch \"{0}\"", branchName);
client.RemoteCreateDirectory(parent, args);
}
builder.Path += branchName;
Uri newUrl = builder.Uri;
TortoiseSVN.Copy(trunkPath, newUrl.ToString(), comment);
}