Keeping up with all the GIT
Unless you stuck in the last century, you might have noticed, that the gold standard for version control is GIT. Atlassian likes it, IBM DevOps supports it and of course the Linux Kernel is build with it.
The prime destination for opensource projects is GitHub, with BitBucket coming in strong too. Getting the code of a project you work with (and I bet you do - jquery anyone) is just a
I'm using a little script (you even could cron it or attach it to a successful network connection) to keep all my "read-only" repositories up-to-date. You need to change the
A little caveat: when you actively work on a repository you might not want the combination origin - master, so be aware: as usual YMMV
The prime destination for opensource projects is GitHub, with BitBucket coming in strong too. Getting the code of a project you work with (and I bet you do - jquery anyone) is just a
git clone
away. Of course that opens the challenge to keep up with all the changes and updates. While in the projects you work on, a branch, pull and push is daily work - using the command line or a nice UI. For that "keep an eye one" projects this gets tedious quite fast.
I'm using a little script (you even could cron it or attach it to a successful network connection) to keep all my "read-only" repositories up-to-date. You need to change the
basedir=
to match your path. Enjoy
# !/bin/sh
# Helper script to keep all the things I pulled from GITHUB updated
# most of them are in ~/github, but some are somewhere else
# Pulls a repository from GIT origin or Mercurial
syncrep() {
echo "Processing $f file..."
cd $1
isHG=`find -maxdepth 1 -type d -name ".hg"`
if [ -n "$isHG"]
then
git pull origin master &
else
echo "$f is a Mercurial directory"
hg pull
fi
}
basedir=/home/yourusername
# Part 1: all in ~/github
notify-send -t 20000 -u low -i gtk-dialog-info "Starting GIT threaded update"
FILES=$basedir/github/*
for f in $FILES
do
syncrep $f
done
# Part 2: all in ~/company
notify-send -t 20000 -u low -i gtk-dialog-info "Starting COMPANY threaded update"
FILES=$basedir/company/*
for f in $FILES
do
syncrep $f
done
cd ~
notify-send -t 20000 -u low -i gtk-dialog-info "All GIT pull requests are on their way!"
# Wait for the result
stillrunning=0
while [ "$stillrunning" -eq "0" ]
do
sleep 60
pgrep git- > /dev/null
stillrunning=$?
done
notify-send -t 20000 -u low -i gtk-dialog-info "GIT pull updates completed"
A little caveat: when you actively work on a repository you might not want the combination origin - master, so be aware: as usual YMMV
Posted by Stephan H Wissel on 25 September 2014 | Comments (0) | categories: Software