Colobot Forum - International Colobot Community

Full Version: Gource Live Commit Tracking System for Colobot (BETA)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Description:
This project aims to increase the publicity of colobot.
The GLCTSfC was born when I was doing the gource visualization for colobot repository.
It tracks commits and visualizes them LIVE on stream.
@RaptorParkowsky helped me in creating the appearance of this GLCTSfC. (+rep for you!)
This is still BETA because errors occur in the tracing of commits (e.g. not visualizing the newest commits).

Broadcasting services:Playlist:
Spoiler :
@bartekko - Incoming
@bartekko - Orphenia
@bartekko - Working on earth
@Emxx52 - Colonize with Bots
@Emxx52 - Constructive Destruction
@Emxx52 - Sequential Deed Request
@Emxx52 - Dispersion Circumstance
@Emxx52 - Deviated Distortion Imminent
@Emxx52 - Humanitarian
@Emxx52 - Humanitarian v2 - The Box
@Emxx52 - Infinite Storm v2 - Being Approximately Overcharged
@Emxx52 - Under Construction - Novae
@Emxx52 - Substantial Processing
@Emxx52 - Proton Ame
@Emxx52 - Prototype
@Emxx52 - Quite Busy
@Emxx52 - Quite Busy v2 - Echoes of the Sand
@Emxx52 - Under Construction - Terralice Theme
ESPITEC - Thrilling Adventure
ESPITEC - Leaving Earth
ESPITEC - Fake Paradise
ESPITEC - Virus
ESPITEC - Horizon
ESPITEC - Eruption
ESPITEC - Hope
ESPITEC - Infinite Storm
ESPITEC - Terranova
ESPITEC - Well done, mission accomplished
ESPITEC - Sorry, mission failed
ESPITEC - Jazz Buzzing
@Gretplayy - Hope (remix)
Kevin MacLeod - Harmful or Fatal
Kevin MacLeod - In a Heartbeat
Kevin MacLeod - Rocket
Kevin MacLeod - Cognative Dissonance
Kevin MacLeod - Ossuary 6 - Air
Kevin MacLeod - Lightless Dawn
Kevin MacLeod - Ropocolypse 2
Kevin MacLeod - Spacial Harvest
Kevin MacLeod - EDM Detection Mode
Kevin MacLeod - Oddysey
Kevin MacLeod - Phantom from Space
Kevin MacLeod - The Lift
Kevin MacLeod - Digital Bark
Kevin MacLeod - Heart of the Beast
@PiXeL - Colobot2
@PiXeL - Colobot6
@PiXeL - Intro
Color Legend:
Spoiler :
Pink - H file
Blue - CPP file
Yellow - PSP file
Cyan - CC file
Gray - CUR file
Orange - TXT file
Violet - M file
White - 'Blank' file/dir
Green - CMAKE/PUMP file
Lemon - YML file
Grayed Blue - PO file
Grayed Green - POT file
Cyaned Green - PDF/GITIGNORE/ICO file
Grayed Orange - SH file
If you can help me in this project:
Spoiler :
I have problem with detection of newest commits.
For this day (27/02/17) it shows the newest commit from 27/12/16.
Can you help me for fixing this?
Code:
gource-live.sh
Code:
#!/bin/sh
#
# SCRIPT: gource-live.sh
# AUTHOR: Janos Gyerik <info@janosgyerik.com>
# DATE:   2014-02-22
# REV:    1.0.D (Valid are A, B, D, T and P)
#               (For Alpha, Beta, Dev, Test and Production)
#
# PLATFORM: Not platform dependent (confirmed in Linux)
#
# PURPOSE: Poll VCS and pipe log to Gource, to show live commits
#
# set -n   # Uncomment to check your syntax, without execution.
#          # NOTE: Do not forget to put the comment back in or
#          #       the shell script will not execute!
# set -x   # Uncomment to debug this shell script (Korn shell only)
#

usage() {
   test $# = 0 || echo $@
   echo "Usage: $0 [OPTION]... [ARG]..."
   echo
   echo Poll VCS and pipe log to Gource, to show live commits
   echo
   echo Options:
   echo "  -i, --interval INTERVAL  Interval to poll repository for changes, default = $interval"
   echo "  -s, --startrev REV       Start revision, default = $startrev"
   echo "      --relstart N         Start from HEAD - N, ignored when startrev != 0, default = $relstart"
   echo
   echo "      --feed-only          Show feed only, default = $feed_only"
   echo
   echo "  -r, --remote REMOTE      Name of remote (Git only), default = $remote"
   echo "  -b, --branch BRANCH      Name of branch (Git only), default = $branch"
   echo
   echo "  -h, --help               Print this help"
   echo
   exit 1
}

args=
feed_only=off
interval=-1
startrev=a4c804b49ec872b71bd5a0167c3ad45704a3cc30
relstart=-1
remote=origin
branch=dev
while [ $# != 0 ]; do
   case $1 in
   -h|--help) usage ;;
   -i|--interval) shift; interval=$1 ;;
   -s|--startrev) shift; startrev=$1 ;;
   --relstart) shift; relstart=$1 ;;
   -r|--remote) shift; remote=$1 ;;
   -b|--branch) shift; branch=$1 ;;
   --feed-only) feed_only=on ;;
#    --) shift; while [ $# != 0 ]; do args="$args \"$1\""; shift; done; break ;;
   -) usage "Unknown option: $1" ;;
   -?*) usage "Unknown option: $1" ;;
   *) args="$args \"$1\"" ;;  # script that takes multiple arguments
#    *) test "$arg" && usage || arg=$1 ;;  # strict with excess arguments
#    *) arg=$1 ;;  # forgiving with excess arguments
   esac
   shift
done

eval "set -- $args"  # save arguments in $@. Use "$@" in for loops, not $@

#test $# -gt 0 || usage

feeders=$(dirname "$0")/feeders

test -d "$1" && project_dir="$1" || project_dir=.

if test -d "$project_dir"/.git; then
   feeder="$feeders"/git.sh
   feeder_args="$interval $startrev $relstart $remote $branch"
elif test -d "$project_dir"/.bzr; then
   feeder="$feeders"/bzr.sh
   feeder_args="$interval $startrev $relstart"
elif test -d "$project_dir"/.svn; then
   feeder="$feeders"/svn.sh
   feeder_args="$interval $startrev $relstart"
elif test -d "$project_dir"/.hg; then
   feeder="$feeders"/hg.sh
     feeder_args="$interval $startrev $relstart"
else
   echo Fatal: could not find .git, .bzr or .svn directory in the current directory. Are you in the root directory of a project?
   exit 1
fi

if test $feed_only = on; then
   "$feeder" "$project_dir" $feeder_args
else
   "$feeder" "$project_dir" $feeder_args | tee /dev/stderr | gource --log-format custom --file-idle-time 0 -
fi
git.sh:
Code:
#!/bin/sh -e

test $# -ge 2 || {
   echo "usage: $0 PROJECTDIR INTERVAL [STARTREV|0 RELSTART [REMOTE [BRANCH]]]"
   exit 1
}

PROJECTDIR=$1/.git
INTERVAL=$2
STARTREV=$3
RELSTART=$4
REMOTE=$5
BRANCH=$6

test "$REMOTE" || REMOTE=origin
test "$BRANCH" || BRANCH=master
test "$RELSTART" -a "$RELSTART" != 0 && NUM=$RELSTART || NUM=10
test "$STARTREV" -a "$STARTREV" != 0 && SHA=$STARTREV || SHA=$(git --git-dir "$PROJECTDIR" rev-list $REMOTE/$BRANCH --max-count=$NUM | tail -n 1)

while true
do
   for SHA in $(git --git-dir "$PROJECTDIR" rev-list --reverse --first-parent $SHA..$REMOTE/$BRANCH)
   do
       AUTHOR=$(git --git-dir "$PROJECTDIR" log --format=%an $SHA --max-count=1)
       TIMESTAMP=$(git --git-dir "$PROJECTDIR" log --format=%at $SHA --max-count=1)
       PREFIX="$TIMESTAMP|$AUTHOR|"
       git --git-dir "$PROJECTDIR" diff-tree -r --no-commit-id --name-status $SHA | tr '\t' '|' | while read SUFFIX
       do
           echo $PREFIX$SUFFIX
       done
   done
   test $INTERVAL = 0 && break
   git --git-dir "$PROJECTDIR" fetch $REMOTE $BRANCH >/dev/null 2>&1
   sleep $INTERVAL
done

Question for TerranovaTeam:
Spoiler :
TerranovaTeam, Can you put this stream on the main channels (YT: ColobotGame | Twitch: PPColobot)? Because these channels are a bit neglected.
Youtube stream don't works for me. Btw what this tree represents? What diffrent colors represents?
(02-27-2017, 01:13 PM)Smok Wrote: [ -> ]Youtube stream don't works for me. Btw what this tree represents? What diffrent colors represents?
Try now. In this time it must work.
This tree represents colobot github repository.
Colors:
Pink - H file
Blue - CPP file
Yellow - PSP file
Cyan - CC file
Gray - CUR file
Orange - TXT file
Violet - M file
White - 'Blank' file/dir
Green - CMAKE/PUMP file
Lemon - YML file
Grayed Blue - PO file
Grayed Green - POT file
Cyaned Green - PDF/GITIGNORE/ICO file
Grayed Orange - SH file
The project has been closed until further notice.
Reason: This Project is a misfire, Stream is blocked on LiveEdu.