Java Processbuilder GitLog 漂亮格式
Java Processbuilder GitLog pretty-format
我创建了一个 java 方法来从 git 存储库创建一个 git 日志。
方法:
String gitLogFormat = "--pretty=format:\"%H %an %ad %s\"";
List<String> cmds = Arrays.asList("git", "log", gitLogFormat, "--numstat", "--date=short");
ProcessBuilder builder = new ProcessBuilder(cmds);
builder.directory(new File( GitPath.toAbsolutePath().toString() ));
builder.redirectOutput(ProcessBuilder.Redirect.to( path.resolve("gitlog.txt").toFile() ) );
Process process = builder.start();
如果我 运行 这个方法没有 gitLogFormat
它有效,我得到一个带有 Gitlog 的文件。但是使用格式我总是得到退出代码 128
.
\"
是否存在问题,因为其他两个选项 --numstat
和 --date=short
都有效?
更新
我试了一下:
String gitLogFormat = "--pretty=format:\"%H_%an_%ad_%s\"";
并且有效。
空格是问题所在。有谁知道我如何使用带空格的代码,因为日志应该在信息之间有空格。
更新 2 和解决方案:
问题是空格所以我必须在每个空格之间添加 ,
它适用于此代码:
List<String> cmds = Arrays.asList("git", "log", "--pretty=format:\"%H" , "%an" , "%ad" , "%s\"" , "--numstat" , "--date=short");
我创建了一个 java 方法来从 git 存储库创建一个 git 日志。
方法:
String gitLogFormat = "--pretty=format:\"%H %an %ad %s\"";
List<String> cmds = Arrays.asList("git", "log", gitLogFormat, "--numstat", "--date=short");
ProcessBuilder builder = new ProcessBuilder(cmds);
builder.directory(new File( GitPath.toAbsolutePath().toString() ));
builder.redirectOutput(ProcessBuilder.Redirect.to( path.resolve("gitlog.txt").toFile() ) );
Process process = builder.start();
如果我 运行 这个方法没有 gitLogFormat
它有效,我得到一个带有 Gitlog 的文件。但是使用格式我总是得到退出代码 128
.
\"
是否存在问题,因为其他两个选项 --numstat
和 --date=short
都有效?
更新
我试了一下:
String gitLogFormat = "--pretty=format:\"%H_%an_%ad_%s\"";
并且有效。
空格是问题所在。有谁知道我如何使用带空格的代码,因为日志应该在信息之间有空格。
更新 2 和解决方案:
问题是空格所以我必须在每个空格之间添加 ,
它适用于此代码:
List<String> cmds = Arrays.asList("git", "log", "--pretty=format:\"%H" , "%an" , "%ad" , "%s\"" , "--numstat" , "--date=short");