mirror of https://github.com/voidlizard/hbs2
wip
This commit is contained in:
parent
16b5b6220a
commit
ff181e3e5c
|
@ -0,0 +1 @@
|
|||
./state.db
|
|
@ -0,0 +1,5 @@
|
|||
title: "hbs2 project repo"
|
||||
author: "Dmitry Zuikov"
|
||||
public: yes
|
||||
|
||||
Project description TBD
|
|
@ -377,6 +377,20 @@ hbs2-git произойдет переиндексация и он будет с
|
|||
В настоящий момент hbs2-git доступен в виде исходных кодов или кэшированных
|
||||
артефактов и пакета для пакетного менеджера nix.
|
||||
|
||||
Исходные коды доступны по следующим адресам:
|
||||
|
||||
\begin{table}[h!]
|
||||
\centering
|
||||
\begin{tabular}{|l|l|}
|
||||
\hline
|
||||
HBS2 & \texttt{hbs2://BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP} \\ \hline
|
||||
HTTPS & \texttt{https://git.hbs2.net/BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP} \\ \hline
|
||||
GitHub & \texttt{https://github.com/voidlizard/hbs2.git} \\ \hline
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\pagebreak
|
||||
|
||||
В случае использования nix необходимо включить поддержку nix flakes и nix profile
|
||||
|
||||
\subsection{Установка при помощи nix profile}
|
||||
|
@ -715,8 +729,6 @@ cat keys | hbs2 groupkey from-keys
|
|||
|
||||
В stdin перечислить в виде строк (без кавычек) публичные ключи участников
|
||||
|
||||
\pagebreak
|
||||
|
||||
\paragraph{Способ 3 / из <<сигилов>>}
|
||||
|
||||
Файл с персональной информацией некоего агента назвается <<сигил>> (<<sigil>>).
|
||||
|
@ -756,6 +768,99 @@ hbs2 sigil check my.sigil
|
|||
|
||||
перечислив в командной строке список <<сигилов>>.
|
||||
|
||||
\subsubsection{Конфиг и состояние}
|
||||
|
||||
Конфиг и состояние hbs2-git находятся в каталоге .hbs2-git репозитория.
|
||||
|
||||
Конфиг по умолчанию создаётся автоматически. Текущие настройки:
|
||||
|
||||
\begin{verbatim}
|
||||
export include "ref-mask" # включать специфические ссылки
|
||||
export exclude "refs-mask" # исключать специфические ссылки
|
||||
export tags # экспортировать теги по умолчанию
|
||||
\end{verbatim}
|
||||
|
||||
\paragraph{Манифест}
|
||||
|
||||
Описание проекта (манифест) в виде небольшого (до 256Kb)
|
||||
текстового можно положить в файл \texttt{.hbs2-git/manifest}
|
||||
|
||||
Данный манифест будет учитываться при дальнейшем поиске и отображении проектов.
|
||||
|
||||
\paragraph{Пример конфига}
|
||||
|
||||
\begin{verbatim}
|
||||
export include "refs/heads/master"
|
||||
export include "refs/heads/main"
|
||||
export exclude "refs/heads/*"
|
||||
export tags
|
||||
\end{verbatim}
|
||||
|
||||
Означает, что каждая операция \texttt{git push} которая на деле является операцией EXPORT --
|
||||
экспортирует все объекты, перечисленные в конфигурации: бранч master, бранч main, бранч, на который
|
||||
указывает \texttt{HEAD} и бранчи, для которых выполняется \texttt{git push}.
|
||||
|
||||
Если указать, например,
|
||||
|
||||
\begin{verbatim}
|
||||
export exclude "refs/heads/*"
|
||||
\end{verbatim}
|
||||
|
||||
то поведение будет соответствовать поведению обычного \texttt{git push}, то есть будет
|
||||
экспортировано только то, для чего выполняется \texttt{git push} и текущий бранч \texttt{HEAD}, так
|
||||
как иначе \texttt{git clone} будет работать с проблемами.
|
||||
|
||||
Такое поведение по умолчанию (экспортировать несколько бранчей и теги) бывает удобно, когда мы хотим
|
||||
зеркалировать и сохранять репозиторий полностью или по большей его части.
|
||||
|
||||
\subsubsection{Интеграция с системами сборки}
|
||||
|
||||
Для некоторых система сборки и вообще любого ПО, которое по какой-то причине не может использовать
|
||||
механизмы \texttt{git-remote-helper} и использовать протокол \texttt{hbs2://}, можно использовать
|
||||
средство \texttt{hbs2-git-reposync}.
|
||||
|
||||
Данная утилита зеркалирует заданные репозитории, время от времени их синхронизируя. Кроме того, она
|
||||
умеет слушать обновления рефлогов от hbs2-peer и синхронизировать репозиторий по этому событию.
|
||||
|
||||
Пример настройки окружения с её использованием:
|
||||
|
||||
\paragraph{Конфигурационный файл}
|
||||
|
||||
|
||||
\begin{verbatim}
|
||||
$ cat ~/.config/hbs2-git-reposync/config
|
||||
|
||||
rpc unix "/tmp/hbs2-rpc.socket"
|
||||
|
||||
; http-port 4017
|
||||
|
||||
; по умолчанию
|
||||
; root "/home/user/.local/share/hbs2-git-reposync/repo"
|
||||
|
||||
;; single reflog
|
||||
|
||||
;; для старого hbs2-git-reposync
|
||||
;; для нового будет lwwref
|
||||
[ reflog "BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP"
|
||||
;; options may go here if any
|
||||
]
|
||||
|
||||
\end{verbatim}
|
||||
|
||||
Данная настройка добавит git bare репозиторий BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP
|
||||
|
||||
\texttt{\$root/BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP}
|
||||
|
||||
и будет его отдавать по \texttt{git-http-dumb-protocol}.
|
||||
|
||||
Также можно настроить любой вебсервер на отдачу этого каталога, либо же
|
||||
использовать любой вебсервер на порту 80 с проксированием запросов на порт hbs2-git-reposync,
|
||||
в данном случае -- это 4017.
|
||||
|
||||
После этого репозиторий станет доступен по протоколу \texttt{http://} или \texttt{git+http://}
|
||||
|
||||
и можно будет на него ссылаться, например, так:
|
||||
|
||||
\subsubsection{Подписка на репозиторий}
|
||||
|
||||
Подписаться на репозиторий, но не клонировать его:
|
||||
|
@ -1175,6 +1280,10 @@ hbs2-keyman не отображает секретные ключи, тольк
|
|||
|
||||
\pagebreak
|
||||
|
||||
\section{Поддержка возможностей git}
|
||||
|
||||
пока не поддерживаются подписанные теги. По крайней мере не тестировались.
|
||||
|
||||
\section{Разное}
|
||||
|
||||
В документации или где-то еще могут спорадически появляться префиксы hbs21 (hbs21://).
|
||||
|
|
|
@ -295,11 +295,11 @@
|
|||
"suckless-conf": "suckless-conf_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710642921,
|
||||
"narHash": "sha256-sI6oirrSetQs/1zjTBlwpUtzYwrNMjjZQs274H59/hA=",
|
||||
"lastModified": 1710646368,
|
||||
"narHash": "sha256-0ayUFjOSX4UqSRBbLJeqPMBAn+qSAlFRoICVABliF80=",
|
||||
"ref": "lwwrepo",
|
||||
"rev": "9546a440ea74f2664af9fe1255e88a7531065d1c",
|
||||
"revCount": 1001,
|
||||
"rev": "16b5b6220a4be96e30c65f34d631445c28676feb",
|
||||
"revCount": 1002,
|
||||
"type": "git",
|
||||
"url": "http://git.hbs2/BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP"
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue