For the command: git log 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.. -M --date=short --pretty=format:"Author: %aN <%ae>; Date: %ad" --shortstat --dirstat --no-merges
I run it on shell by manual can create correct format of output, such as:
-------------------------------------------------
Author: Amit Shah [off-list ref]; Date: 2010-10-20
1 files changed, 14 insertions(+), 3 deletions(-)
100.0% drivers/char/
-------------------------------------------------
But when I put that command on cron job, even I run “. /etc/profile” and “. ~/.bash_profile” first, I can’t get correct format of output.
-------------------------------------------------
Author: %aN [off-list ref]; Date: Wed Oct 20 13:45:43 2010 +1030
100.0% drivers/char/
1 files changed, 14 insertions(+), 3 deletions(-)
-------------------------------------------------
My git version is git-1.7.3.2.
Does anyone know the reason?
Thanks
Chen
TREND MICRO EMAIL NOTICE
The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system.
From: Johannes Sixt <hidden> Date: 2016-06-15 22:49:59
Am 11/5/2010 9:29, schrieb chen_wang@trendmicro.com.cn:
For the command: git log 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.. -M --date=short --pretty=format:"Author: %aN <%ae>; Date: %ad" --shortstat --dirstat --no-merges
I run it on shell by manual can create correct format of output, such as:
-------------------------------------------------
Author: Amit Shah [off-list ref]; Date: 2010-10-20
1 files changed, 14 insertions(+), 3 deletions(-)
100.0% drivers/char/
-------------------------------------------------
But when I put that command on cron job, even I run “. /etc/profile” and “. ~/.bash_profile” first, I can’t get correct format of output.
-------------------------------------------------
Author: %aN [off-list ref]; Date: Wed Oct 20 13:45:43 2010 +1030
100.0% drivers/char/
1 files changed, 14 insertions(+), 3 deletions(-)
-------------------------------------------------
% has a special meaning in a crontab. See man 5 crontab.
-- Hannes
-----Original Message-----
From: Johannes Sixt [mailto:j.sixt@viscovery.net]
Sent: 2010年11月5日 16:38
To: Chen Wang (QA-CN)
Cc: git@vger.kernel.org; ellre923@gmail.com
Subject: Re: pretty format can't work on cron job
Am 11/5/2010 9:29, schrieb chen_wang@trendmicro.com.cn:
quoted
For the command: git log 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.. -M
I run it on shell by manual can create correct format of output, such as:
-------------------------------------------------
Author: Amit Shah [off-list ref]; Date: 2010-10-20
1 files changed, 14 insertions(+), 3 deletions(-)
100.0% drivers/char/
-------------------------------------------------
But when I put that command on cron job, even I run “. /etc/profile” and “.
~/.bash_profile” first, I can’t get correct format of output.
% has a special meaning in a crontab. See man 5 crontab.
I warped this command in script and trigger script in crontab.
I think it's not the root cause, because %ae still works.
-- Hannes
TREND MICRO EMAIL NOTICE
The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system.
% has a special meaning in a crontab. See man 5 crontab.
I warped this command in script and trigger script in crontab.
I think it's not the root cause, because %ae still works.
I notice that the only placeholder that is broken is %aN, which converts
using the .mailmap file. Maybe something in your environment is
preventing reading that file properly?
Can you show us the exact script you're calling from your crontab file?
I'm wondering if it's something to do with being in the same directory.
-Peff
From: Chen WANG <hidden> Date: 2016-06-15 22:49:59
-----Original Message-----
From: Jeff King [mailto:peff@peff.net]
Sent: 2010年11月5日 21:15
To: chen_wang@trendmicro.com.cn
Cc: j.sixt@viscovery.net; git@vger.kernel.org; ellre923@gmail.com
Subject: Re: pretty format can't work on cron job
On Fri, Nov 05, 2010 at 04:47:05PM +0800, chen_wang@trendmicro.com.cn
wrote:
quoted
quoted
quoted
But when I put that command on cron job, even I run “. /etc/profile” and
“.
quoted
quoted
~/.bash_profile” first, I can’t get correct format of output.
% has a special meaning in a crontab. See man 5 crontab.
I warped this command in script and trigger script in crontab.
I think it's not the root cause, because %ae still works.
I notice that the only placeholder that is broken is %aN, which converts
using the .mailmap file. Maybe something in your environment is
preventing reading that file properly?
$ ll .mailmap
-rw-r--r-- 1 wangchen club 4021 Oct 15 06:18 .mailmap
Can you show us the exact script you're calling from your crontab file?
I'm wondering if it's something to do with being in the same directory.
Sure.
$ crontab -l
58 06 * * * /home/wangchen/kps_update
$ cat /home/wangchen/kps_update
#!/bin/bash
su wangchen -
. /etc/profile
. ~/.bash_profile
cd /home/wangchen/kps
git pull
make
cd /home/wangchen/linux-2.6
git pull
/home/wangchen/kps/kps_web/kps_do /home/wangchen/linux-2.6 /home/wangchen/kps
$ cat /home/wangchen/kps/kps_web/kps_do
#!/bin/sh
#check script parameters
if [ -r $1 -a -w $2 ]; then
echo "begin to update kps_result"
readonly LGP=$1
KGP=$2
KGP=${KGP%%/}
else
echo "usage: $0 linux_kernel_source_dir kps_source_dir"
exit 1
fi
cd $LGP
git log 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.. -M --date=short --pretty=format:"Author: %aN <%ae>; Date: %ad" --shortstat --dirstat --no-merges >/tmp/ChangeLog-all
[%aN does not expand to anything within the cron runs]
Also, what git version(s) do you have installed? %aN appeared in
1.5.6.4 and 1.6.0, so it is entirely possible that the $PATH within
your cronjob runs an older version which fails to expand it to
anything.
--
Thomas Rast
trast@{inf,student}.ethz.ch
From: Chen WANG <hidden> Date: 2016-06-15 22:49:59
-----Original Message-----
From: Thomas Rast [mailto:trast@student.ethz.ch]
Sent: 2010年11月8日 3:19
To: Chen WANG
Cc: 'Jeff King'; Chen Wang (QA-CN); j.sixt@viscovery.net; git@vger.kernel.
org
Subject: Re: pretty format can't work on cron job
Chen WANG wrote:
quoted
$ cat /home/wangchen/kps_update
#!/bin/bash
su wangchen -
What is this 'su' supposed to do? AFAICS you would have to run
another script with 'su' if you really want to change user.
Ignore it please. I put a lot rubbish here to try to figure out the issue.
--pretty=format:"Author: %aN <%ae>; Date: %ad" --shortstat --dirstat
--no-merges >/tmp/ChangeLog-all
[%aN does not expand to anything within the cron runs]
Also, what git version(s) do you have installed? %aN appeared in
1.5.6.4 and 1.6.0, so it is entirely possible that the $PATH within
your cronjob runs an older version which fails to expand it to
anything.
Absolutely right.
I was keeping figure out the difference between manual run and cron job for
git.
But seems my administrator installed a 1.5.5.4 for global, but my local bin
has a higher version of git which support %aN.
Thanks guys. Thanks Thomas.