summaryrefslogtreecommitdiff
path: root/contrib/remotes2config.sh
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2006-05-03 15:27:26 +0200
committerJunio C Hamano <junkio@cox.net>2006-05-04 00:07:06 -0700
commita4a6e4ab32648631204398691f4066719dea1029 (patch)
treea47e81247b644f431a5615ca060e51d1b909e2be /contrib/remotes2config.sh
parent73136b2e8a8ee024320c5ac6a0f14f912432bf03 (diff)
downloadgit-a4a6e4ab32648631204398691f4066719dea1029.tar.gz
Add a conversion tool to migrate remote information into the config
Use this tool to rewrite the .git/remotes/* files into the config. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'contrib/remotes2config.sh')
-rw-r--r--contrib/remotes2config.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/contrib/remotes2config.sh b/contrib/remotes2config.sh
new file mode 100644
index 0000000000..25901e2b3b
--- /dev/null
+++ b/contrib/remotes2config.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# Use this tool to rewrite your .git/remotes/ files into the config.
+
+. git-sh-setup
+
+if [ -d "$GIT_DIR"/remotes ]; then
+ echo "Rewriting $GIT_DIR/remotes" >&2
+ error=0
+ # rewrite into config
+ {
+ cd "$GIT_DIR"/remotes
+ ls | while read f; do
+ name=$(echo -n "$f" | tr -c "A-Za-z0-9" ".")
+ sed -n \
+ -e "s/^URL: \(.*\)$/remote.$name.url \1 ./p" \
+ -e "s/^Pull: \(.*\)$/remote.$name.fetch \1 ^$ /p" \
+ -e "s/^Push: \(.*\)$/remote.$name.push \1 ^$ /p" \
+ < "$f"
+ done
+ echo done
+ } | while read key value regex; do
+ case $key in
+ done)
+ if [ $error = 0 ]; then
+ mv "$GIT_DIR"/remotes "$GIT_DIR"/remotes.old
+ fi ;;
+ *)
+ echo "git-repo-config $key "$value" $regex"
+ git-repo-config $key "$value" $regex || error=1 ;;
+ esac
+ done
+fi
+
+