seeseekey.net - Invictus Deus Ex Machina

Bei mir auf der Festplatte liegen einige Quelltext in Form von Subversion und Git Repositories. Da es mühsam wäre jedes einzelne Repository zu aktualisieren, habe ich mir ein kleines Skript geschrieben, welches diese Aufgabe abnimmt:

#bash

#Update repositories script
#Copyright (c) 2012 by seeseekey <seeseekey@gmail.com>
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program.  If not, see <http://www.gnu.org/licenses/>.

SCRIPTPATH=$(pwd);

#Git
for directory in `find $SCRIPTPATH -name ".git" -type d`;
do
  echo $directory;
  cd $directory/..;
  git pull;
done

#Subversion
for directory in `find $SCRIPTPATH -name ".svn" -type d`;
do
  echo $directory;
  cd $directory/..;
  svn update;
done

#Pfad zurücksetzen
cd $SCRIPTPATH;

Das Skript selbst steht dabei unter GPLv3 und kann auch direkt auf Github unter https://github.com/seeseekey/archive/blob/master/Bash/Git/updateRepositories.sh gefunden werden.

2 Kommentare

  1. In SVN gibt es aber doch in jedem Unterverzeichnis ein .svn Directory.

    Wenn ich ein einem Repo mit 10 Unterverzeichnissen das tun würde, wird ein SVN Repo 10 mal geupdated :/

    Außerdem schade das du im Skript keine Einrückungen hast 🙂

    Antworten

    • Das trifft nur auf die SVN Repositories < SVN 1.7 zu. Bei den anderen gibt es nur ein Verzeichnis namens ".svn". Das mit den Einrückungen hole ich gleich mal nach.

      Antworten

Schreibe einen Kommentar

You have to agree to the comment policy.