Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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";
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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();
            }
        }
Ejemplo n.º 8
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);
            }
        }
Ejemplo n.º 9
0
        public void HandleMergeResult(GitOutput output)
        {
            Assert.IsNotNull(output);

            if(output.ExitCode != 0)
            {
                if(IsAutomaticMergeFailedError(output.Output))
                {
                    throw new AutomaticMergeFailedException();
                }
                output.Throw();
            }
        }
Ejemplo n.º 10
0
        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();
            }
        }
Ejemplo n.º 11
0
        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();
            }
        }
Ejemplo n.º 12
0
        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();
            }
        }
Ejemplo n.º 13
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();
            }
        }
Ejemplo n.º 14
0
        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();
            }
        }
Ejemplo n.º 15
0
        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;
            }
        }