获取git log的文件更改列表
执行命令
/usr/bin/git log --stat --pretty=format:%an*_*%cd*_*%H*_*%s
以下是输出
rrr*_*Wed Mar 29 15:03:44 2016 +0800*_*51c32954639dffbdba18050527ca56b0ec243453*_*bug#1395
mine-web-manage/src/main/webapp/WEB-INF/views/organ/courseForm.jsp | 6 +++++-
mine-web-server/src/main/java/com/mine/web/server/controller/organ/RestPublicOrganTeacherController.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 58 insertions(+), 1 deletion(-)
但是用php的exec执行时,返回值被切断了
php代码
$cmd = "/usr/bin/git log --stat --pretty=format:%an*_*%cd*_*%H*_*%s";
exec($cmd, $list, $return);
var_dump($list);
输出结果
string(90) "rrr*_*Wed Mar 29 15:03:44 2016 +0800*_*51c32954639dffbdba18050527ca56b0ec243453*_*bug#1395"
[18] =>
string(60) " .../main/webapp/WEB-INF/views/organ/courseForm.jsp | 6 ++-"
[19] =>
string(79) " .../organ/RestPublicOrganTeacherController.java | 53 ++++++++++++++++++++++"
[20] =>
string(49) " 2 files changed, 58 insertions(+), 1 deletion(-)"
还尝试以下几种方式,在命令后加上输出到文件等等,获取的结果都是被截断的,格式跟上面一样,无法获取到完整的文件路径
1, $cmd . " 2>&1"
2, $cmd . " > /tmp/cmd.txt"
3, passthru($cmd, $list, $return);
如果才能在exec中获取到完整的文件路径?
非常感谢您的帮助
改成:
这个长度设置在我这边是没问题的,不过还得看你那边完整路径名长度而定,
stat-width
表示正行长度,stat-name-width
表示文件名长度,光调整文件名长度是不够的。show full file path in git log
确实是长度的问题,不知道为什么在命令行下不设置宽度也能全部显示