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 доступен в виде исходных кодов или кэшированных
|
В настоящий момент hbs2-git доступен в виде исходных кодов или кэшированных
|
||||||
артефактов и пакета для пакетного менеджера nix.
|
артефактов и пакета для пакетного менеджера 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
|
В случае использования nix необходимо включить поддержку nix flakes и nix profile
|
||||||
|
|
||||||
\subsection{Установка при помощи nix profile}
|
\subsection{Установка при помощи nix profile}
|
||||||
|
@ -715,8 +729,6 @@ cat keys | hbs2 groupkey from-keys
|
||||||
|
|
||||||
В stdin перечислить в виде строк (без кавычек) публичные ключи участников
|
В stdin перечислить в виде строк (без кавычек) публичные ключи участников
|
||||||
|
|
||||||
\pagebreak
|
|
||||||
|
|
||||||
\paragraph{Способ 3 / из <<сигилов>>}
|
\paragraph{Способ 3 / из <<сигилов>>}
|
||||||
|
|
||||||
Файл с персональной информацией некоего агента назвается <<сигил>> (<<sigil>>).
|
Файл с персональной информацией некоего агента назвается <<сигил>> (<<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{Подписка на репозиторий}
|
\subsubsection{Подписка на репозиторий}
|
||||||
|
|
||||||
Подписаться на репозиторий, но не клонировать его:
|
Подписаться на репозиторий, но не клонировать его:
|
||||||
|
@ -1175,6 +1280,10 @@ hbs2-keyman не отображает секретные ключи, тольк
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
|
\section{Поддержка возможностей git}
|
||||||
|
|
||||||
|
пока не поддерживаются подписанные теги. По крайней мере не тестировались.
|
||||||
|
|
||||||
\section{Разное}
|
\section{Разное}
|
||||||
|
|
||||||
В документации или где-то еще могут спорадически появляться префиксы hbs21 (hbs21://).
|
В документации или где-то еще могут спорадически появляться префиксы hbs21 (hbs21://).
|
||||||
|
|
|
@ -295,11 +295,11 @@
|
||||||
"suckless-conf": "suckless-conf_2"
|
"suckless-conf": "suckless-conf_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710642921,
|
"lastModified": 1710646368,
|
||||||
"narHash": "sha256-sI6oirrSetQs/1zjTBlwpUtzYwrNMjjZQs274H59/hA=",
|
"narHash": "sha256-0ayUFjOSX4UqSRBbLJeqPMBAn+qSAlFRoICVABliF80=",
|
||||||
"ref": "lwwrepo",
|
"ref": "lwwrepo",
|
||||||
"rev": "9546a440ea74f2664af9fe1255e88a7531065d1c",
|
"rev": "16b5b6220a4be96e30c65f34d631445c28676feb",
|
||||||
"revCount": 1001,
|
"revCount": 1002,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "http://git.hbs2/BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP"
|
"url": "http://git.hbs2/BTThPdHKF8XnEq4m6wzbKHKA6geLFK4ydYhBXAqBdHSP"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue