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>
) - отклонить текущий коммит, попросив вас добавить и зафиксировать снова (так как предварительный коммит не может изменить индекс)
Таким образом, ваш пользователь будет обращаться к этому файлу, чтобы получить вики правильную версию.