protected override object runCommand(DiffToolArguments arguments)
 {
     try
     {
         ConvertedArguments converted = _argumentConverter.Convert(arguments);
         return(startExternalProcess(converted.App, converted.Arguments, _path, false, null).PID);
     }
     catch (ArgumentConversionException ex)
     {
         throw new GitCommandServiceInternalException(ex);
     }
 }
 protected override object runCommand(GitDiffArguments arguments)
 {
     try
     {
         ConvertedArguments converted = _argumentConverter.Convert(arguments);
         return(startExternalProcess(converted.App, converted.Arguments, _path, true, new int[] { 0, 1 })
                .StdOut.Where(x => !String.IsNullOrEmpty(x)));
     }
     catch (ArgumentConversionException ex)
     {
         throw new GitCommandServiceInternalException(ex);
     }
 }
 async protected override Task <object> runCommandAsync(GitDiffArguments arguments)
 {
     try
     {
         ConvertedArguments   converted = _argumentConverter.Convert(arguments);
         IEnumerable <string> result    =
             (await startExternalProcessAsync(converted.App, converted.Arguments, _path, new int[] { 0, 1 })).StdOut;
         return(result.Where(x => !String.IsNullOrEmpty(x)));
     }
     catch (ArgumentConversionException ex)
     {
         throw new GitCommandServiceInternalException(ex);
     }
 }