Subject: How newbies create remote repositories

From: Bernie Innocenti <[email-masked]>
Date: Wed, 11 Mar 2009 07:59:47 +0100

Here's another usability problem report from my friends who
are learning their way to Git from previous experience with
Subversion and Mercurial.

Three of them confessed they couldn't find a simple recipe
to setup remote repositories, after looking in obvious
places such as the git-push manpage.

Each one could figure it out independently after some time, coming
up with a variety of creative strategies:

Strategy 1:
 client$ ssh server
 server$ mkdir foo.git
 server$ cd foo.git
 server$ git init --bare --shared
 server$ exit
 client$ git push --mirror server:foo.git 

Problem: Does not setup the remote for you.
Solution: Would be nice if "git push <URL>" could give this tip

Problem: Requires a full unrestricted shell on the server
Solution: If "git init <dir>" was supported, one could do
  ssh server git init --bare --shared foo.git

Strategy 2:
 client$ ssh server
 server$ mkdir foo.git
 server$ cd foo.git
 server$ git init --bare --shared
 server$ exit
 client$ git clone server:foo.git .
 client$ git add .
 client$ git commit
 client$ git push

Problem: only works if you had no local repository yet

Strategy 3:
 client$ scp -r .git server:foo.git
 client$ cd ..
 client$ rm -r foo
 client$ git clone server:foo.git

Problem: the user checks out the repository from scratch
  to properly add the remote
Solution: "git pull" might suggest to use "git remote".

A simple "git remote create" or "git remote new" along with a
reference to it in the manpage of "git push" might have helped
these users.

-- 
   // Bernie Innocenti - http://www.codewiz.org/
 \X/  Sugar Labs       - http://www.sugarlabs.org/