Introduce a new CLIGitCommand.rawExecute() helper that behaves
just like execute() except that instead of processing its output
it returns it raw.
So now you can do
final byte[] expect = { 0, 1, 2, 3 };
final byte[] actual = CLIGitCommand.rawExecute(
"git show HEAD:goo.raw", db);
assertArrayEquals(expect, actual);
to test the output from "git show HEAD:goo.raw" without being
distracted by encoding issues.
Noticed while writing tests for a new "jgit archive" command that
writes its output in ZIP format.
Change-Id: I2fe6020a537975d0ccf414b7125d85d6cd86898c
public static List<String> execute(String str, Repository db)
throws Exception {
+ try {
+ return IO.readLines(new String(rawExecute(str, db)));
+ } catch (Die e) {
+ return IO.readLines(MessageFormat.format(CLIText.get().fatalError,
+ e.getMessage()));
+ }
+ }
+
+ public static byte[] rawExecute(String str, Repository db)
+ throws Exception {
String[] args = split(str);
if (!args[0].equalsIgnoreCase("git") || args.length < 2)
throw new IllegalArgumentException(
try {
cmd.execute(bean.getArguments().toArray(
new String[bean.getArguments().size()]));
- } catch (Die e) {
- return IO.readLines(MessageFormat.format(CLIText.get().fatalError,
- e.getMessage()));
} finally {
if (cmd.outw != null)
cmd.outw.flush();
}
- return IO.readLines(baos.toString());
+ return baos.toByteArray();
}
/**