On Tue, Mar 3, 2009 at 2:09 AM, Jeff King <peff@xxxxxxxx> wrote: > If you are going to limit it in that way, wouldn't it be better to do it > entirely client-side? As in, "git push --create remote" will literally > do: > > ssh remote_host "mkdir -p remote_dir && cd remote_dir && git init --bare" > > ? Then you don't have to care about whether the remote side is recent > enough to support this, and there are no potential security issues; git > is merely saving you from typing the commands you could have done > yourself. So I was curious how Mercurial implemented this, and it is similar to what Junio coded. It runs "hg init" on the remote end via ssh. (hg init <path> takes care of creating the directory; I just also noticed you can do hg init ssh://host/path to create the repo remotely, which is I guess sorta interesting.) > I think a featur like this needs to be triggered manually via > "--create" or similar. Otherwise a typo on a regular push will be very > confusing as your pushes appear to go nowhere. Though I suppose most > regular pushes happen using a configured remote, in which case it is not > as much of an issue. So I could've sworn Mercurial creates a remote repo for you on push, but it turns out it does not: $ hg push ssh://localhost/~/bar remote: abort: There is no Mercurial repository here (.hg not found)! abort: no suitable response from remote hg! I concur w/Jeff and I think git probably should not as well. I think that instead adding it to init might be interesting "git init <arg>" where <arg> is local (and it creates the directory and repo for you) or arg is ssh://... and it creates the dir and repo over there for you. And have "git push" abort with a friendlier message than: fatal: '~/bar': unable to chdir or not a git archive fatal: The remote end hung up unexpectedly If that's a plumbing message maybe it can't change, unless push swallows it and says something nicer like: fatal: '~/bar' not a git repository. Create the destination repository with "git init" before pushing. We can be even friendlier than Mercurial. :-) j. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html