contrib / remotes2config.shon commit Merge branch 'cc/maint-commit-reflog-msg' into maint (81b43b5)
   1#!/bin/sh
   2
   3# Use this tool to rewrite your .git/remotes/ files into the config.
   4
   5. git-sh-setup
   6
   7if [ -d "$GIT_DIR"/remotes ]; then
   8        echo "Rewriting $GIT_DIR/remotes" >&2
   9        error=0
  10        # rewrite into config
  11        {
  12                cd "$GIT_DIR"/remotes
  13                ls | while read f; do
  14                        name=$(printf "$f" | tr -c "A-Za-z0-9-" ".")
  15                        sed -n \
  16                        -e "s/^URL:[    ]*\(.*\)$/remote.$name.url \1 ./p" \
  17                        -e "s/^Pull:[   ]*\(.*\)$/remote.$name.fetch \1 ^$ /p" \
  18                        -e "s/^Push:[   ]*\(.*\)$/remote.$name.push \1 ^$ /p" \
  19                        < "$f"
  20                done
  21                echo done
  22        } | while read key value regex; do
  23                case $key in
  24                done)
  25                        if [ $error = 0 ]; then
  26                                mv "$GIT_DIR"/remotes "$GIT_DIR"/remotes.old
  27                        fi ;;
  28                *)
  29                        echo "git config $key "$value" $regex"
  30                        git config $key "$value" $regex || error=1 ;;
  31                esac
  32        done
  33fi