--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
git config "topgit.remote" "$name"
info "The remote '$name' is now the default source of topic branches."
+
+# vim:noet