public void HandleCheckoutResult(CheckoutParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsUnknownRevisionError(output.Error, parameters.Revision)) { throw new UnknownRevisionException(parameters.Revision); } if(IsRefrerenceIsNotATreeError(output.Error, parameters.Revision)) { throw new UnknownRevisionException(parameters.Revision); } if(IsUnknownPathspecError(output.Error, parameters.Revision)) { throw new UnknownRevisionException(parameters.Revision); } if(!parameters.Force) { string fileName; if(IsUntrackedFileWouldBeOverwrittenError(output.Error, out fileName)) { throw new UntrackedFileWouldBeOverwrittenException(fileName); } if(IsHaveLocalChangesError(output.Error, out fileName)) { throw new HaveLocalChangesException(fileName); } if(IsHaveConflictsError(output.Error)) { throw new HaveConflictsException(); } } output.Throw(); } }
public bool ParseStashSaveResult(GitOutput output) { Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsCantStashToEmptyRepositoryError(output.Error)) { throw new RepositoryIsEmptyException(); } output.Throw(); } return output.Output != "No local changes to save\n"; }
public RevisionData ParseSingleRevision(QueryRevisionParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { var revName = parameters.SHA1.ToString(); if(IsUnknownRevisionError(output.Error, revName)) { throw new UnknownRevisionException(revName); } output.Throw(); } var parser = new GitParser(output.Output); var rev = new RevisionData(parameters.SHA1); parser.ParseRevisionData(rev, null); return rev; }
public void HandleCherryPickResult(GitOutput output) { Assert.IsNotNull(output); if(output.ExitCode != 0) { string fileName; if(IsAutomaticCherryPickFailedError(output.Error)) { throw new AutomaticCherryPickFailedException(); } if(IsCherryPickIsEmptyError(output.Error)) { throw new CherryPickIsEmptyException(output.Error); } if(IsHaveLocalChangesMergeError(output.Error, out fileName)) { throw new HaveLocalChangesException(fileName); } if(IsCherryPickNotPossibleBecauseOfMergeCommit(output.Error)) { throw new CommitIsMergeException(); } if(IsCherryPickNotPossibleBecauseOfConflictsError(output.Error)) { throw new HaveConflictsException(); } output.Throw(); } }
public string ParseDescribeResult(DescribeParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(parameters.Revision != null) { if(IsUnknownRevisionError(output.Error, parameters.Revision)) { throw new UnknownRevisionException(parameters.Revision); } } output.Throw(); } if(string.IsNullOrWhiteSpace(output.Output)) { return null; } return output.Output; }
public Diff ParseDiff(QueryDiffParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(parameters.Cached && IsNoHEADCommitToCompareWithError(output.Error)) { throw new RepositoryIsEmptyException(output.Error); } output.Throw(); } var parser = new DiffParser(output.Output); var diffType = GetDiffType(parameters); return parser.ReadDiff(diffType); }
public void HandleStashPopResult(GitOutput output) { Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsNothingToApplyError(output.Error)) { throw new StashIsEmptyException(output.Error); } if(IsCannotApplyToDirtyWorkingTreeError(output.Error)) { throw new DirtyWorkingDirectoryException(); } output.Throw(); } }
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 void HandleMergeResult(GitOutput output) { Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsAutomaticMergeFailedError(output.Output)) { throw new AutomaticMergeFailedException(); } output.Throw(); } }
public void HandleRenameBranchResult(RenameBranchParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsBranchAlreadyExistsError(output.Error, parameters.NewName)) { throw new BranchAlreadyExistsException(parameters.NewName); } if(IsInvalidBranchNameError(output.Error, parameters.NewName)) { throw new InvalidBranchNameException(parameters.NewName); } output.Throw(); } }
public void HandleDeleteTagResult(DeleteTagParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsTagNotFoundError(output.Error, parameters.TagName)) { throw new TagNotFoundException(parameters.TagName); } output.Throw(); } }
public void HandleDeleteBranchResult(DeleteBranchParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsBranchNotFoundError(output.Error, parameters.Remote, parameters.BranchName)) { throw new BranchNotFoundException(parameters.BranchName); } if(!parameters.Force) { if(IsBranchNotFullyMergedError(output.Error, parameters.BranchName)) { throw new BranchIsNotFullyMergedException(parameters.BranchName); } } output.Throw(); } }
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 void HandleCreateBranchResult(CreateBranchParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0) { if(IsUnknownRevisionError(output.Error, parameters.StartingRevision)) { throw new UnknownRevisionException(parameters.StartingRevision); } if(IsBranchAlreadyExistsError(output.Error, parameters.BranchName)) { throw new BranchAlreadyExistsException(parameters.BranchName); } if(IsInvalidBranchNameError(output.Error, parameters.BranchName)) { throw new InvalidBranchNameException(parameters.BranchName); } output.Throw(); } }
public void HandleConfigResults(GitOutput output) { Assert.IsNotNull(output); switch(output.ExitCode) { case 0: return; case 1: throw new InvalidConfigFileException(output.Error); case 2: throw new CannotWriteConfigFileException(output.Error); case 3: throw new NoSectionProvidedException(output.Error); case 4: throw new InvalidSectionOrKeyException(output.Error); case 5: throw new ConfigParameterDoesNotExistException(output.Error); default: output.Throw(); break; } }