private QueryDiffParameters GetParameters(DiffOptions options)
        {
            Assert.IsNotNull(options);

            var parameters = new QueryDiffParameters()
            {
                Cached = _cached,
                Paths  = _paths,
            };

            ApplyCommonDiffOptions(parameters, options);
            return(parameters);
        }
        private QueryDiffParameters GetParameters(DiffOptions options)
        {
            Assert.IsNotNull(options);

            var parameters = new QueryDiffParameters()
            {
                Revision1 = _revision1.Pointer,
                Revision2 = _revision2.Pointer,
                Paths     = _paths,
            };

            ApplyCommonDiffOptions(parameters, options);
            return(parameters);
        }
Exemple #3
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);
        }
Exemple #4
0
        private static DiffType GetDiffType(QueryDiffParameters parameters)
        {
            Assert.IsNotNull(parameters);

            if(!string.IsNullOrWhiteSpace(parameters.Revision2))
            {
                return DiffType.CommitCompare;
            }
            if(parameters.Cached)
            {
                return DiffType.StagedChanges;
            }
            else
            {
                return DiffType.UnstagedChanges;
            }
        }
Exemple #5
0
        public Command GetDiffCommand(QueryDiffParameters parameters)
        {
            Assert.IsNotNull(parameters);

            var args = new List<ICommandArgument>();
            InsertDiffParameters1(parameters, args);
            if(!string.IsNullOrEmpty(parameters.Revision1))
            {
                args.Add(new CommandParameter(parameters.Revision1));
            }
            if(!string.IsNullOrEmpty(parameters.Revision2))
            {
                args.Add(new CommandParameter(parameters.Revision2));
            }
            InsertDiffParameters2(parameters, args);
            return new DiffCommand(args);
        }