X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=tg-remote.sh;h=61774d7a0e28bf0131b1cb1f3851184bb1159c85;hp=4f60c7394b7fcca6ddc4e4c3fabb25f59237e359;hb=eff4bedc3f3ae92d47f7d78b19509ce2bd60d4e8;hpb=459c340fd5ac765ff1e5d82895b59b53b028aaca diff --git a/tg-remote.sh b/tg-remote.sh index 4f60c73..61774d7 100644 --- a/tg-remote.sh +++ b/tg-remote.sh @@ -15,21 +15,29 @@ while [ -n "$1" ]; do --populate) populate=1;; -*) - echo "Usage: tg [...] remote [--populate] REMOTE" >&2 + echo "Usage: tg [...] remote [--populate] [REMOTE]" >&2 exit 1;; *) name="$arg";; esac done +[ -n "$name" ] || + name="$base_remote" + git config "remote.$name.url" >/dev/null || die "unknown remote '$name'" ## Configure the remote -git config --add "remote.$name.fetch" "+refs/top-bases/*:refs/remotes/$name/top-bases/*" -git config --add "remote.$name.push" "+refs/top-bases/*:refs/top-bases/*" -git config --add "remote.$name.push" "+refs/heads/*:refs/heads/*" +git config --replace-all "remote.$name.fetch" "+refs/top-bases/*:refs/remotes/$name/top-bases/*" "\\+refs/top-bases/\\*:refs/remotes/$name/top-bases/\\*" + +if git config --get-all "remote.$name.push" "\\+refs/top-bases/\\*:refs/top-bases/\\*" >/dev/null && test "xtrue" != "x$(git config --bool --get topgit.dontwarnonoldpushspecs)"; then + info "Probably you want to remove the push specs introduced by an old version of topgit:" + info ' git config --unset-all "remote.'$name'.push" "\\+refs/top-bases/\\*:refs/top-bases/\\*"' + info ' git config --unset-all "remote.'$name'.push" "\\+refs/heads/\\*:refs/heads/\\*"' + info '(or use git config --bool --add topgit.dontwarnonoldpushspecs true to get rid of this warning)' +fi info "Remote $name can now follow TopGit topic branches." if [ -z "$populate" ]; then @@ -59,3 +67,5 @@ git for-each-ref "refs/remotes/$name/top-bases" | git config "topgit.remote" "$name" info "The remote '$name' is now the default source of topic branches." + +# vim:noet