From: Randal L. Schwartz Date: Mon, 28 Nov 2005 19:25:06 GMT Subject: Re: lost again on syntax change - local repository? Message-ID: <86psok378t.fsf@blue.stonehenge.com> In-Reply-To: <20051128191546.GT22159@pasky.or.cz> >>>>> "Petr" == Petr Baudis writes: Petr> Could you try the following, please? Petr> diff --git a/cg-push b/cg-push Petr> index 1d59422..323ef26 100755 Petr> --- a/cg-push Petr> +++ b/cg-push Petr> @@ -56,13 +56,13 @@ if echo "$uri" | grep -q '#'; then Petr> uri=$(echo $uri | cut -d '#' -f 1) Petr> fi Petr> -if echo "$uri" | grep -q "^http://"; then Petr> +if [ "${uri#http://}" != "$uri" ]; then Petr> die "pushing over HTTP not supported yet" Petr> -elif echo "$uri" | grep -q "^git+ssh://"; then Petr> +elif [ "${uri#git+ssh://}" != "$uri" ]; then Petr> send_pack_update "$name" "$(echo "$uri" | sed 's#^git+ssh://\([^/]*\)\(/.*\)$#\1:\2#')" $_git_head$sprembranch "${tags[@]}" Petr> -elif echo "$uri" | grep -q "^rsync://"; then Petr> +elif [ "${uri#rsync://}" != "$uri" ]; then Petr> die "pushing over rsync not supported" Petr> -elif echo "$uri" | grep -q ":"; then Petr> +elif [ "${uri#*:}" != "$uri" ]; then Petr> echo "WARNING: I guessed the host:path syntax was used and fell back to the git+ssh protocol." Petr> echo "WARNING: The host:path syntax is evil because it is implicit. Please just use a URI." Petr> send_pack_update "$name" "$uri" $_git_head$sprembranch "${tags[@]}" Bizarrely, same behavior. Mark me "puzzled". localhost:~/Projects/Git/Play % cg-admin-setuprepo remote.git localhost:~/Projects/Git/Play % mkdir local.git localhost:~/Projects/Git/Play % cd local.git localhost:..Git/Play/local.git % cg-init -mempty defaulting to local storage area Committing initial tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 Committed as ee28097d96063ae660faf325f5bffdbcbc6818f4. localhost:..Git/Play/local.git % cg-branch-add origin "$(cd ..; pwd)/remote.git#master" localhost:..Git/Play/local.git % cg-branch-ls origin /Users/merlyn/Projects/Git/Play/remote.git#master localhost:..Git/Play/local.git % cg-push WARNING: I guessed the host:path syntax was used and fell back to the git+ssh protocol. WARNING: The host:path syntax is evil because it is implicit. Please just use a URI. ssh: \033]2;[zsh] localhost: No address associated with nodename fatal: unexpected EOF localhost:..Git/Play/local.git % which cg-push /opt/git/bin/cg-push localhost:..Git/Play/local.git % grep uri $(which cg-push) uri=$(cat "$_git/branches/$name" 2>/dev/null) || die "unknown branch: $name" if echo "$uri" | grep -q '#'; then rembranch=$(echo $uri | cut -d '#' -f 2) uri=$(echo $uri | cut -d '#' -f 1) if [ "${uri#http://}" != "$uri" ]; then elif [ "${uri#git+ssh://}" != "$uri" ]; then send_pack_update "$name" "$(echo "$uri" | sed 's#^git+ssh://\([^/]*\)\(/.*\)$#\1:\2#')" $_git_head$sprembranch "${tags[@]}" elif [ "${uri#rsync://}" != "$uri" ]; then elif [ "${uri#*:}" != "$uri" ]; then send_pack_update "$name" "$uri" $_git_head$sprembranch "${tags[@]}" remgit="$uri"; [ -d "$remgit/.git" ] && remgit="$remgit/.git" send_pack_update "$name" "$uri" $_git_head$sprembranch "${tags[@]}" -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!