예제 #1
0
        public override async Task ExecuteAsync(IOperationExecutionContext context)
        {
            this.LogInformation("Executing SVN checkout...");

            var(c, r) = this.GetCredentialsAndResource(context);

            var client          = new SvnClient(context, c, this.SvnExePath, this);
            var sourcePath      = new SvnPath(r?.RepositoryUrl, this.SourcePath);
            var destinationPath = context.ResolvePath(this.DestinationPath);
            var result          = await client.CheckoutAsync(sourcePath, destinationPath, this.AdditionalArguments).ConfigureAwait(false);

            this.LogClientResult(result);

            this.RevisionNumber = await client.GetRevisionNumberAsync(new SvnPath(destinationPath, null)).ConfigureAwait(false);

            this.LogInformation("SVN checkout executed.");
        }