Пример #1
0
        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();
            }
        }
Пример #2
0
        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);
        }