Github вики и теги

Итак, у меня есть проект Github с вики, которую я использую для поддержки документации. Каждый раз, когда что-то меняется в проекте или добавляется к нему, что часто бывает кровавым, я немедленно документирую это в вики, что помогает сохранить все документально.

В то же время большинство пользователей получают и используют только периодические двоичные обновления и, следовательно, нуждаются в доступе к состоянию вики в определенные моменты времени. Я знаю, что вики также является git-репозиторием, но, очевидно, он полностью отделен от основного репозитория проекта.

Я также знаю, что можно интегрировать репозиторий вики как подмодуль (хотя я не могу сказать, что я понимаю, как они работают, поскольку у меня нет опыта работы с командной строкой git), но это само по себе не отвечает на мой вопрос, который я сформулировать так:

Что мне нужно сделать, чтобы создать URL-адрес, который я мог бы просто опубликовать для пользователей, чтобы направить их в рабочую вики, отражающую его состояние на момент последнего бинарного выпуска?

1 ответ

Я также знаю, что можно интегрировать репозиторий вики как подмодуль (хотя я не могу сказать, что понимаю, как они работают, поскольку у меня нет опыта работы с командной строкой git), но это само по себе не отвечает на мой вопрос

Это на самом деле может ответить на вопрос, поскольку подмодуль будет записывать точный SHA1 вики ( зарегистрированный как подмодуль)

cd /yourRepo
git submodule add -b master https://github.com/you/proj.wiki
git submodule update --init

Каждый раз, когда вы изменяете свой проект, вы можете:

  • перейти к этому подмодулю,
  • изменить вики, добавить, зафиксировать и нажать,
  • вернитесь к родительскому репо, добавьте, зафиксируйте и нажмите: это запишет SHA1 вики в вашем родительском репо.

Когда ваши пользователи получают это репо, простой git ls-tree master:<path-to-directory-containing-submodule> может дать им SHA1 этой вики.
Обратите внимание, что содержимое этой вики не будет видно, если эти пользователи не сделают:

git submodule update --init

Но если это нужно только SHA1, чтобы получить доступ к вики на https://github.com/you/proj.wiki/commit/<SHA1>, git ls-tree достаточно (им не нужно заполнять подмодуль каким-либо контентом).


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

  • проверьте SHA1 последнего коммита в вашей вики
  • поместите этот SHA1 в файл в вашем локальном репо (как URL: https://github.com/you/proj.wiki/commit/<SHA1>)
  • отклонить текущий коммит, попросив вас добавить и зафиксировать снова (так как предварительный коммит не может изменить индекс)

Таким образом, ваш пользователь будет обращаться к этому файлу, чтобы получить вики правильную версию.

Другие вопросы по тегам