Subject: Re: lost again on syntax change - local repository?

From: [email-masked] (Randal L. Schwartz)
Date: 28 Nov 2005 11:25:06 -0800

>>>>> "Petr" == Petr Baudis <[email-masked]> 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
<[email-masked]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!