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); } }
public Command GetDereferenceCommand(DereferenceParameters parameters) { Assert.IsNotNull(parameters); return new LogCommand( new CommandParameter(parameters.Reference), LogCommand.MaxCount(1), parameters.LoadRevisionData ? GetRevisionFormatArgument() : LogCommand.Format("%H")); }