Все знают такой замечательный сервис для хранения mercurial-репозиториев. Но места там чрезвычайно мало, да и закрытый репозиторий всего один для одного аккаунта. Поэтому вооружившись django, mysql-python и hg, хочу придумать свое хранилище репозиториев. Планируется реализовать на первых порах:
- Регистрация пользователей (пока по инвайтам)
- Создание репозиториев (приватные, публичные)
- Доступ по http, https, ssh (по ssh и возник вопрос)
- Файловый архив (ну релизы всякие загружать)
- Все остальное взять из hg (changeset, browse, etc)
В будущем хотелось бы issue tracker и milestone. А потом все это отдать обществу, конечно! Ну а теперь собственно проблема:
Когда я зарегистрировался на bitbacket.org, создал свой репозиторий, сразу же добавил публичный ssh-ключ, чтобы коммитить по ssh. Если вы пользовались этим, то знаете, что все коммиты происходят от одного пользователя «hg». То есть примерно вот так:
hg push ssh://hg@bitbacket.org/username/reponame/
Теперь вопрос. Как bitbacket.org узнает, что мне можно коммитить в /username/reponame/, но нельзя коммитить в /login/testrepo/? Или что мне можно читать /username/repo2/, но нельзя читать /silence/secretrepo/?
Второй вопрос, как добиться такого поведения:
$ ssh hg@bitbucket.org
PTY allocation request failed on channel 0
ponq: what are you asking for, exactly?
Connection to bitbucket.org closed.
$ ssh hg@bitbucket.org ls -la
ponq: what are you asking for, exactly?
Заранее спасибо за ответы! Надеюсь, что правильно сформулировал вопросы.