public void HandleCreateTagResult(CreateTagParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsUnknownRevisionError(output.Error, parameters.TaggedObject)) { throw new UnknownRevisionException(parameters.TaggedObject); } if(IsTagAlreadyExistsError(output.Error, parameters.TagName)) { throw new TagAlreadyExistsException(parameters.TagName); } if(IsInvalidTagNameError(output.Error, parameters.TagName)) { throw new InvalidTagNameException(parameters.TagName); } output.Throw(); } }
public Command GetCreateTagCommand(CreateTagParameters parameters) { Assert.IsNotNull(parameters); var args = new List<ICommandArgument>(5); if(parameters.TagType == TagType.Annotated) { if(parameters.Signed) { if(parameters.KeyId != null) { args.Add(TagCommand.SignByKey(parameters.KeyId)); } else { args.Add(TagCommand.SignByEmail()); } } else { args.Add(TagCommand.Annotate()); } } if(parameters.Force) { args.Add(TagCommand.Force()); } if(!string.IsNullOrEmpty(parameters.Message)) { args.Add(TagCommand.Message(parameters.Message)); } else if(!string.IsNullOrEmpty(parameters.MessageFile)) { args.Add(TagCommand.MessageFromFile(parameters.MessageFile)); } args.Add(new CommandParameter(parameters.TagName)); if(parameters.TaggedObject != null) { args.Add(new CommandParameter(parameters.TaggedObject)); } return new TagCommand(args); }