示例#1
0
        public RevisionData ParseDereferenceOutput(DereferenceParameters parameters, GitOutput output)
        {
            Assert.IsNotNull(parameters);
            Assert.IsNotNull(output);

            if(output.ExitCode != 0)
            {
                if(IsUnknownRevisionError(output.Error, parameters.Reference))
                {
                    throw new UnknownRevisionException(parameters.Reference);
                }
                if(IsBadObjectError(output.Error, parameters.Reference))
                {
                    throw new UnknownRevisionException(parameters.Reference);
                }
                output.Throw();
            }

            if(parameters.LoadRevisionData)
            {
                var parser = new GitParser(output.Output);
                return parser.ParseRevision();
            }
            else
            {
                var hash = new Hash(output.Output);
                return new RevisionData(hash);
            }
        }
示例#2
0
        public Command GetDereferenceCommand(DereferenceParameters parameters)
        {
            Assert.IsNotNull(parameters);

            return new LogCommand(
                new CommandParameter(parameters.Reference),
                LogCommand.MaxCount(1),
                parameters.LoadRevisionData ?
                    GetRevisionFormatArgument() : LogCommand.Format("%H"));
        }