Re: lost again on syntax change - local repository?
>>>>> "Petr" == Petr Baudis <pasky@suse.cz> 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
<merlyn@stonehenge.com> <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!