2012-05-02 2 views
0

У меня есть content repository server software, клиенты могут перечислить/чтение/редактировать свои файлы, используя свой любимый протокол: FTP/WebDAV/CIFS/...Любой сервер, реализующий протокол Git, помимо самого Git?

мне интересно, является ли реализация интерфейса Git будет иметь смысл (я бы реализовать серверную сторону протокола Git, а клиенты Git подключатся к нему).

ВОПРОС: Есть ли серверное программное обеспечение, которое реализует протокол Git? (кроме Git server developed by Torvalds)?

+0

Насколько функциональность Git могла бы реализовать ваш репозиторий? Какие преимущества он может предложить против сервера Git? – joshp

+0

@joshp: Сколько функций Git: базовое управление версиями, но, вероятно, не поддерживало бы все функции. Какие преимущества он может предложить против сервера Git: Workflows –

ответ

2

Вы почти наверняка не захотите реализовать сервер git самостоятельно. Дизайн Git не поддается lib-ization, поэтому проблема в том, что версия класса git первого класса недоступна.

Тем не менее, существует целый ряд вариантов, в зависимости от ваших потребностей:

  1. libgit2, самую последнюю работу по истинной библиотеке C мерзавца, и различные его привязки к другим языкам
  2. GitPython, и аналогичные библиотеки для Python и других языках, которые свертывают мерзавец сам исполняемый файл
  3. jgit, родной реализации Java от мерзавца

Если вы хотите сделать прозрачным git-подобным интерфейсом для своего контента, вам нужно будет внимательно рассмотреть, что это значит и что вы хотите предоставить. Git - это DVCS, и поэтому он сохраняет всю историю всего. Это означает, что вы должны хранить и обслуживать всю историю, чтобы люди могли делать что-нибудь полезное в вашем репозитории. Итак, если вы просто пытаетесь экспортировать данные для одноразового просмотра, это не имеет большого смысла. Я думаю, что такой подход будет иметь наибольший смысл только в том случае, если вы фактически сохраняете все бэкэнд-данные, хранящиеся под контролем версий в git.

Наконец, обратите внимание, что «git-сервер» не существует. Git использует существующие транспортные средства, такие как ssh, http и т. Д., Которые могут отправлять простые команды git для отправки и получения данных.

Смежные вопросы