diff --git a/jenkins/RO/start_build b/jenkins/RO/start_build
index 4c9adfc..c711cd7 100755
--- a/jenkins/RO/start_build
+++ b/jenkins/RO/start_build
@@ -25,36 +25,9 @@
 # SET YOU MDG repository name here
 export OSM_MDG=RO
 OSM_load_config
+OSM_git_checkout "$@"
 
 
-# Updates all the branches in the local repo (clones if it does not exist)
-if [ -d $OSM_MDG ]; then
-    INFO "reusing existing workspace"
-    cd $OSM_MDG
-    git pull --all
-    #git checkout master  #to make sure that we are in the right branch before pulling the code
-    #git pull
-else
-    INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-    git clone $OSM_GIT_URL/$OSM_MDG
-    cd $OSM_MDG
-    for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done
-fi
-
-if [ $# -gt 0 ]; then
-    if [ "$1" = "checkout" ]; then
-        INFO "Code to compile: '$2'"
-        git checkout $2
-    else
-        INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-        git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-        git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-    fi
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
-
 INFO "starting build"
 
 INFO "  cleaning .pyc"
diff --git a/jenkins/SETTINGS b/jenkins/SETTINGS
index 50bef01..c0a2c1f 100644
--- a/jenkins/SETTINGS
+++ b/jenkins/SETTINGS
@@ -19,3 +19,12 @@
 #
 # base url for all repositories
 OSM_GIT_URL=https://osm.etsi.org/gerrit/osm
+#
+# OSM_USE_LOCAL_DEVOPS
+#
+# this option disables the clone inside the
+# the container and instead copies this directory tree
+# into the container. Very useful for testing
+# default is false
+#
+# OSM_USE_LOCAL_DEVOPS=true
diff --git a/jenkins/SO/start_build b/jenkins/SO/start_build
index 8094a39..a672e14 100755
--- a/jenkins/SO/start_build
+++ b/jenkins/SO/start_build
@@ -25,32 +25,9 @@
 # SET YOU MDG repository name here
 export OSM_MDG=SO
 OSM_load_config
+OSM_git_checkout "$@"
 
-
-# Here is an example for how to handle an incremental build
-if [ -d $OSM_MDG ]; then
-    INFO "reusing existing workspace"
-    cd $OSM_MDG
-    git pull 
-else
-    INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-    git clone $OSM_GIT_URL/$OSM_MDG
-    cd $OSM_MDG
-fi
-
-if [ $# -gt 0 ]; then
-    if [ "$1" = "checkout" ]; then
-        INFO "Code to compile: '$2'"
-        git checkout $2
-    else
-        INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-        git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-        git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-    fi
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
+trap 'WARNING "INTERRUPT"; exit 1' INT
 
 INFO "starting build"
 make clean || FATAL "make clean failed"
diff --git a/jenkins/UI/start_build b/jenkins/UI/start_build
index af495e9..50b2e06 100755
--- a/jenkins/UI/start_build
+++ b/jenkins/UI/start_build
@@ -25,41 +25,15 @@
 # SET YOU MDG repository name here
 export OSM_MDG=UI
 OSM_load_config
+OSM_git_checkout "$@"
 
 
-# Here is an example for how to handle an incremental build
-if [ -d $OSM_MDG ]; then
-	INFO "reusing existing workspace"
-	cd $OSM_MDG
-	git pull 
-else
-	INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-	git clone $OSM_GIT_URL/$OSM_MDG
-	cd $OSM_MDG
-fi
-
-if [ $# -gt 0 ]; then
-    if [ "$1" = "checkout" ]; then
-        INFO "Code to compile: '$2'"
-        git checkout $2
-    else
-        INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-        git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-        git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-    fi
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
-
 INFO "starting build"
 make clean || FATAL "Make clean failed"
 make -j16 || FATAL "Make failed"
 sudo make install || FATAL "Make install Failed"
 
-RC=0
-
-INFO "done, RC=$RC"
-exit $RC
+INFO "build done"
+exit 0
 
 
diff --git a/jenkins/common/all_funcs b/jenkins/common/all_funcs
index 10b7650..a847108 100644
--- a/jenkins/common/all_funcs
+++ b/jenkins/common/all_funcs
@@ -22,9 +22,7 @@
 	export OSM_JENKINS=$(realpath $(dirname ${BASH_SOURCE[0]} ))
 fi
 
-. ${OSM_JENKINS}/common/logging
-INFO "logging sourced"
-. ${OSM_JENKINS}/common/config
-INFO "config sourced"
-. ${OSM_JENKINS}/common/container
-INFO "container sourced"
+for file in logging config container git_functions; do
+	. ${OSM_JENKINS}/common/$file
+	INFO "$file sourced"
+done
diff --git a/jenkins/common/git_functions b/jenkins/common/git_functions
new file mode 100644
index 0000000..7856623
--- /dev/null
+++ b/jenkins/common/git_functions
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+
+GIT() {
+
+	CMD git "$@"
+}
+
+
+OSM_git_checkout() {
+
+    # Updates all the branches in the local repo (clones if it does not exist)
+    if [ -d $OSM_MDG ]; then
+        INFO "reusing existing workspace"
+        cd $OSM_MDG
+        GIT pull --all
+        #git checkout master  #to make sure that we are in the right branch before pulling the code
+        #git pull
+    else
+        INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
+        GIT clone $OSM_GIT_URL/$OSM_MDG
+        cd $OSM_MDG
+        for remote in `git branch -r`; do GIT branch --track ${remote#origin/} $remote; done
+    fi
+    
+    if [ $# -gt 0 ]; then
+        if [ "$1" = "checkout" ]; then
+            INFO "Code to compile: '$2'"
+            GIT checkout $2
+        else
+            INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
+            GIT fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
+            GIT checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
+        fi
+    else
+        INFO "Code to compile: master"
+        GIT checkout master
+    fi
+
+}
diff --git a/jenkins/common/logging b/jenkins/common/logging
index 3eb4a0d..a95b563 100644
--- a/jenkins/common/logging
+++ b/jenkins/common/logging
@@ -35,13 +35,13 @@
 
 
 FATAL() { 
-	echo "### $(date) ${FUNCNAME[1]}: FATAL error: $*" >&2
+	echo -e "\n### $(date) ${FUNCNAME[1]}: FATAL error: $*" >&2
 	print_stack
 	exit 1
 }
 	
 WARNING() { 
-	echo "### $(date) ${FUNCNAME[1]}: WARNING error: $*" >&2
+	echo -e "\n### $(date) ${FUNCNAME[1]}: WARNING error: $*" >&2
 }
 
 INFO() { 
@@ -51,3 +51,11 @@
 DEBUG() { 
 	echo "#   $(date) ${FUNCNAME[1]}: $*" >&2
 }
+
+CMD() {
+	echo "# executing '$*' ..."
+	"$@"
+	rc=$?
+	echo "# .... '$*' done RC was $rc"
+	return $rc
+}
diff --git a/jenkins/template/start_build b/jenkins/template/start_build
index 2bd9074..43ef161 100755
--- a/jenkins/template/start_build
+++ b/jenkins/template/start_build
@@ -25,28 +25,7 @@
 # SET YOU MDG repository name here
 export OSM_MDG=XXXX
 OSM_load_config
-
-
-# Here is an example for how to handle an incremental build
-if [ -d $OSM_MDG ]; then
-	INFO "reusing existing workspace"
-	cd $OSM_MDG
-	git pull 
-else
-	INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-	git clone $OSM_GIT_URL/$OSM_MDG
-	cd $OSM_MDG
-fi
-
-# Gerrit arranges to call this script with two parameters -- the refspec and commit ID that needs to be built
-if [ $# -gt 0 ]; then
-    INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-    git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-    git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
+OSM_git_checkout "$@"
 
 INFO "starting build"
 ### for start_build
