How newbies create remote repositories
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.
Signature · 2 lines
// Bernie Innocenti - http://www.codewiz.org/ \X/ Sugar Labs - http://www.sugarlabs.org/