checking action of git-pull

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

checking action of git-pull

Mark Ryden
Hello,
  I am working against a git repository which is updated at non regular
intervals; sometimes it takes a day and sometimes a week or two.

I have a script in crontab which runs daily which tries "git pull" of
this repository.

I want write a bash script which echoes yhe  result of this git pull
to a log file in such
a way that in case that any files were pulled, a short message
saying "files were pulled at date ddmmyyyy" will be added to a log file.
In case that there there were no changes, a message saying
"Already up-to-date (ddmmyyyy) will be added to a log file.

How can it be done ?
can I test somehow the return value of git pull in a bash script for
these two different
cases?

Regards,
Mark
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: checking action of git-pull

Junio C Hamano
"Mark Ryden" <[hidden email]> writes:

> Hello,
>   I am working against a git repository which is updated at non regular
> intervals; sometimes it takes a day and sometimes a week or two.
>
> I have a script in crontab which runs daily which tries "git pull" of
> this repository.
>
> I want write a bash script which echoes yhe  result of this git pull
> to a log file in such
> a way that in case that any files were pulled, a short message
> saying "files were pulled at date ddmmyyyy" will be added to a log file.
> In case that there there were no changes, a message saying
> "Already up-to-date (ddmmyyyy) will be added to a log file.
>
> How can it be done ?
> can I test somehow the return value of git pull in a bash script for
> these two different
> cases?

You know that a no-op pull does not update HEAD and a successful pull
does.  So your script would do something like:

        #!/bin/sh

        original_head=$(git rev-parse HEAD) || exit
        git pull origin || exit
        updated_head=$(git rev-parse HEAD) || exit
        if test "$updated_head" = "$original_head"
        then
        echo Upstream is idling
        else
        echo These new commits were brought in
                git shortlog $original_head..$updated_head
        fi

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html