Re: How can I tell if a file has been updated upstream?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Timur Tabi <timur@xxxxxxxxxxxxx> writes:

> The reason I ask is that I have a set of Python scripts that I
> distribute via git (other people in the company clone my repository).
> I want my script, every time it's run, to check if an update is
> available, and ask the user to do "git pull".

So whenever I run your script it calls home, spend a roundtrip time, and
nags me to update?  I don't want to be working with you unless I can go
without running that script less often than once a week ;-)

You need to teach it how to call home.  How do your users "clone"?  Some
over git://, some others over ssh://, yet some others over local
filesystem?  Also how do they run the script?  Directly out of the
repository work tree, or is there a "make install" step involved?

If your users are running from the work tree copy unmodified, then you
would need to look at sys.argv[0] to find out where it is, use that to
find the repository, and using its .git/config learn how the user pulls
from your repository (i.e. git config remote.origin.url), and at the same
time which version it is (i.e. git rev-parse HEAD).  If "make install" is
involved, then you would hardcode the necessary information during the
build process to the script your users would run.

At runtime, you would run "ls-remote HEAD" and compare with the version
you are running.  It may be stale, or it may not be.

How big is the script?  It _might_ be faster to distribute a launcher that
downloads the real script every time it runs and runs that fresh copy that
is guaranteed to be the latest than doing all the hassle of the above.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]