This siteAll blogsLe 17ClémentCCBCuisineLe 3ContactSe connecterS'inscrire
  • All blogs
  • Le 17
  • Clément
  • CCB
  • Cuisine
  • Le 3
  • Contact

  • S'inscrire

Recettes informatiques

  • Page de garde
  • Contact
  • Se connecter
  • « Start SSH daemon on Git portable distribution
  • Color diff »

Create a git mirror

Posted by mazet on 15 Avr 2021 in Systeme


Create a shell script mirror_git.sh to mirror a remote git server.

Shell

#!/bin/sh
 
AUTH=myLogin
PROTOCOL=https
SERVER=remoteHost
GITPATH=gitPath
REPOS="repos1 repos2 repos3"
 
# global variable
PROG=$(basename $0)
VERBOSE="yes"
 
# formatting function
title() { [ $VERBOSE = no ] || echo "\033[0;1m$*\033[0;0m"; }
pass() { [ $VERBOSE = no ] || echo "\033[1;32m$*\033[0;0m"; }
warn() { [ $VERBOSE = no ] || echo "\033[1;33m$*\033[0;0m"; }
fail() { [ $VERBOSE = no ] || echo "\033[1;31m$*\033[0;0m"; }
 
# help message
usage() {
        echo "$PROG [-h|--help] [-q|--quiet]"
        exit $1
}
 
# argument check
while [ $# -gt 0 ]; do
        case "$1" in
                -h|--help) usage 0;;
                -q|--quiet) VERBOSE="no";;
                *) usage 1;;
        esac
        shift
done
 
# get current directory
PWD=$(dirname $0)
[ "$PWD" ] || PWD=.
 
# action
for repos in $REPOS; do
        if [ -d $PWD/$repos.git ]; then
                title "Fetch $repos"
                ( cd $PWD/$repos.git && git fetch --tags && pass OK || fail KO )
                title "Push $repos"
                ( cd $PWD/$repos.git && git push --mirror && pass OK || fail KO )
                title "Prune $repos"
                ( cd $PWD/$repos.git && git fetch --prune && pass OK || fail KO )
        else
                title "Clone $repos"
                ( cd $PWD && echo git clone --mirror "$PROTOCOL://$AUTH@$SERVER/$GITPATH/$repos" && pass OK || fail KO )
        fi
done


Init your local git server by running previous script.


Setup cron task to automagically keep your mirror up-todate.


Don't forget to sore your credential and use following command:

Shell

git config --global credential.helper store
This entry was posted by mazet and filed under Systeme.

Aucun commentaire pour le moment

Catégories

  • Toutes
  • Non catégorisé
  • Programmation
    • Awk
    • Bash
    • C
    • C++
    • Javascript
    • LaTeX
    • Perl
    • Tcl/Tk
  • Systeme
    • Android
    • Debian
    • Ubuntu

Contenu

  • Linux Router
  • Creating a network between 2 virtual machines on Windows with Qemu
  • Build a Debian package for pdmenu
  • Extract informations from epub file
  • Connexion PostgreSql / Java par Socket Unix
  • Example of fork and respawn
  • Start SSH daemon on Git portable distribution
  • Create a git mirror
  • Color diff
  • Create on Debian a Minecraft server
  • GIT/HG/SVN on multiple repos simultaneously
  • Convert Comics into CBZ format
  • Random password generator function
  • Convert to camelCase
  • DKIM and SPF
  • Migration from BackupPC 3 (Debian package) to BackupPC 4 (Standalone Installation)
  • Minimal BC for Mingw
  • Diskless Debian cluster
  • Colorize log file
  • Generate certificates with (or without) a certificate authority
Août 2025
Lun Mar Mer Jeu Ven Sam Dim
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
 << <   > >>
  • Accueil
  • Récemment
  • Archives
  • Catégories
  • Derniers commentaires

Rechercher

Flux XML

  • RSS 2.0: Posts
  • Atom: Posts
More on RSS

©2025 by Laurent Mazet • Contact • Aide • b2

Responsive CMS

Cookies are required to enable core site functionality.