LINUX.ORG.RU

Вообще-то git такой и есть. Никто тебя не заставляет синкаться с центнральным hub'ом. Можешь себе спокойно, федереративно синкаться со всеми своими контрибюрерами. Только вот сложность синхронизации при таком раскладе растёт, как O(n!), вместо O(n), как при цернтральном hub'е.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 5)

В zeronet нечто подобное есть. Git Center называется.

Git Center is a decentralized hosting platform for Git repositories. We provide several collaboration features such as bug tracking for every project, and private and public repositories for free. Join us by creating a new repository.

xaizek ★★★★★
()
Ответ на: комментарий от beastie

Можешь себе спокойно, федереративно синкаться со всеми своими контрибюрерам.

А что будет, если выбранная мной копия репозитория оказалась битой? Мне писать скрипт на bash, который будет искать среди контрибьюторов альтернативу?

pacify ★★★★★
() автор топика

По типу торрентов.

А ты пробовал гуглить «git torrent»?

i-rinat ★★★★★
()
Ответ на: комментарий от pacify

А что будет, если выбранная мной копия репозитория оказалась битой?

Ну, ты же это хочешь. От того и появились всякие hub'ы, чтобы была единая «правда». Иначе разброд и шатания.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

hub'ы, чтобы была единственная «правда». Иначе разброд и шатания.

Где-то на периферии «замаячила» идея некоего мета-хаба. Который бы мог быть мульти-версионным. То есть, допускать «лживых» сидеров.

Но это чисто гипотеза.

Вопрос остаётся прежним: «А судьи - кто?»

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

код нужен разработчикам, только они его модифицируют, вот пусть исключительно у разработчиков и хранится, всякие левые сидеры не нужны

Harald ★★★★★
()
Ответ на: комментарий от pacify

Где-то на периферии «замаячила» идея

Как напишешь PoC, не забудь заявку на Новелевскую подать. Премия за P vs NP тебе обеспечена.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от Singularity

Понятненько. Ну, хоть кто-то решился пилить. Правда, я думал, будет всё-таки наподобие torrent-ов.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

А что будет, если выбранная мной копия репозитория оказалась битой?

git fsck

KennyMinigun ★★★★★
()

cast KRoN73

Про Git Center в ZeroNet выше уже написали:

http://127.0.0.1:43110/1GitLiXB6t5r8vuU2zC6a8GYj9ME6HMQ4t/index/

Реально на практике используется народом:

https://mastodon.wrk.ru/@balancer/100195362497661994

Сейчас начали пилить некий GitPub, но это не децентрализация, а федерация: https://opennet.ru/opennews/art.shtml?num=48763

KRoN73 ★★★★★
()
Ответ на: комментарий от beastie

Вообще-то git такой и есть

Такой, да не такой. Git'у нужно где-то держать сервер. И «Git» это уже давно не только репа, но, как минимум, ещё и обмен Issues, пулл-реквесты и т.п. :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Git'у нужно где-то держать сервер.

Что ты пил? Гиту не нужен сервер, сервер нужен в первую очередь для нормальной разработки с распределением прав.

И «Git» это уже давно не только репа, но, как минимум, ещё и обмен Issues, пулл-реквесты и т.п.

Скажем спасибо гейхабу. Иссуи — это не Git, PR — это надстройка над Git.

У меня на локалхосте мои репы гуляют по файловой системе без сервера, и ты вряд ли сможешь выяснить, кто из них origin.

r3lgar ★★★★★
()
Ответ на: комментарий от beastie

Фантазирую на ходу:
Каждый хост имеет свой приватный ключ. Проект, при создании, подписывается ключом создателя. Этот ключ становится авторизованным для этого проекта, также как и любой ключ подписанный ранее авторизованными ключами. Частью проекта считаются только изменения подписанные авторизованными ключами. Публичный ключ создателя проекта является частью указателя на проект (того что нужно написать после условного git clone чтобы получить сырцы). Склонировав проект и внеся в него изменение подписанное не авторизованным ключом мы создаём новый, дочерний, проект. Ну и должен быть какой-то механизм с помощью которого владелей авторизованного ключа может включить в проект изменения из другого (дочернего) проекта.

Поставщиком единой правды в таком варианте является приватный ключ владельца проекта.

MrClon ★★★★★
()
Ответ на: комментарий от r3lgar

Что ты пил? Гиту не нужен сервер

Ну да. Давай, скачай мою репу /var/www/repos/b2f-router-fastroute — ась?

Иссуи — это не Git

Это не Git. Но это давно уже необходимый инструмент разработки.

У меня на локалхосте мои репы гуляют по файловой системе без сервера

И как я их смогу у тебя скачать без сервера?

KRoN73 ★★★★★
()
Ответ на: комментарий от MrClon

Каждый хост имеет свой приватный ключ …

По-моему, ты сейчас GitCenter в ZeroNet и описал :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Давай, скачай мою репу /var/www/repos/b2f-router-fastroute — ась?

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

Но это давно уже необходимый инструмент разработки.

Никто не мешает поднять что-нибудь отдельное. Для Git даже веб-морда не нужна.

И как я их смогу у тебя скачать без сервера?

Я говорю о локальной работе на один локалхост. Если нужна небольшая локальная сеть, то можно поднять сервер, причём даже на каждом клиенте. (%

// Да, я упорот.

r3lgar ★★★★★
()

Конечно же нет, но вот проходит ICO для децентрализованного github с VR и понями, и деньги можно отгружать <сюда>

michwill ★★★★★
()
Ответ на: комментарий от r3lgar

Дальше одного хоста сервер нужен

Ну так о чём я и говорю :)

но он не обязательно должен быть централизован

Вот об этом и топик.

можно поднять каждому клиенту свой сервер и спокойно работать

Угу. Только придётся как-то решать вопрос взаимодействия этих серверов при коллективной разработке. И в конце решения этой задачи единообразно и автоматизированно, мы и получим то, что ищется в теме. Или что-то типа GitCenter.

Я говорю о локальной работе на один локалхост

Это совсем другие задачи, чем те, что породили данный топик.

KRoN73 ★★★★★
()

Были ли попытки создания системы децентрализованного хранения opensource-кода? По типу торрентов.

К стати годная идея

Siado ★★★★★
()
Ответ на: комментарий от KRoN73

Только придётся как-то решать вопрос взаимодействия этих серверов при коллективной разработке.

В пределах одной подсети это решается элементарно. Чем шире «сеть» таких серверов, тем больше придётся потеть над решением вопроса.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

В пределах одной подсети это решается элементарно

Угу. Но у нас в топике задача изначально шире :)

KRoN73 ★★★★★
()
Ответ на: комментарий от r3lgar

У меня нет никакой задачи, это толксы.

Тогда лучше сухое вино.

KRoN73 ★★★★★
()

А зачем, все настолько нищие что не могут купить VDS за 100 рублей ради gitea? Или платных возможностей где-нибудь на bitbucket? Для совсем-совсем нищих или ленивых полно бесплатных хостингов, в случае чего можно мигрировать.

Чисто теоретически идея интересная. Но на неё нет большого спроса, чтобы родилась хорошая и удобная реализация. А для фанатиков, как уже было сказано, есть ZeroNet с его zero-плюшками.

InterVi ★★★★★
()
Ответ на: комментарий от InterVi

А зачем

Мотивацию и цели разложить я могу. Но у каждого они - свои.

Про пользу видового разнообразия говорил ещё Чарьз Дарвин в своей работе «Происхождение видов».

pacify ★★★★★
() автор топика
Ответ на: комментарий от InterVi

Затем чтоб твой VDS не превратился однажды в тыкву, в ZeroNet твоя репа будет жить до последнего пользователя

Morin ★★★★★
()
Ответ на: комментарий от Morin

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

grem ★★★★★
()

В рамках проекта GitPub началась подготовка спецификации, расширяющей протокол ActivityPub средствами для объединения Git-сервисов в общую федеративную сеть. Изначально ActivityPub рассчитан на распространение контента, управление подписками и доставку уведомлений в децентрализованных социальных сетях (позволяет объединять контент социальных сетей на основе отличающихся платформ), но протокол создан с возможностью расширения и может быть легко адаптирован для организации взаимодействия между сервисами совместной разработки.

Первый черновой вариант спецификации GitPub определяет API для трансляции между серверами pull-запросов и операций создания форков, а также оформления подписки на репозитории, предоставляемые web-сервисами наподобие GitHub, GitLab, RhodeCode, GitPrep, Kallithea, GitBucket, Gogs и Gitea. Спецификация поставляется под лицензией W3C Document License, а примеры кода под лицензией MIT.

GitPub охватывает только аспекты взаимодействия между серверами (server-to-server), не углубляясь в низкоуровневые git-операции и не привязываясь к конкретным реализациям серверов. В отличие от API Apache GitPubSub, GitPub фокусирует внимание на обеспечение выполнения операций, охватывающих разные репозитории (форки, pull-запросы), в то время как GitPubSub рассчитан на передачу сведений на уровне отдельных коммитов в конкретном репозитории.


https://www.opennet.ru/opennews/art.shtml?num=48763

MrClon ★★★★★
()

Давайте определимся. Какую проблему вы хотите решить, из тех, что не решается git'ом?

Git децентрализован. В том смысле, что нет «центрального» узла, выход из строя которого затруднит или сделает невозможной работу остальных.

Git позволяет делать синхронизацию.
От них ко мне командой fetch (pull - это fetch+merge).
От меня к ним командой push, или выполнением fetch/pull с их стороны, откуда и название pull request.
Есть механизм хранения списка нод - remotes.
Хочется автоматической синхронизации - поставьте на cron команду fetch со всех нод.

Так чего вам не хватает?

German_1984 ★★
()
Ответ на: комментарий от KRoN73

Дальше одного хоста сервер нужен

Ну так о чём я и говорю

Кэп?

Для любого сетевого взаимодействия нужен сервер.

Но git'у (в отличии от, например, svn) сервер нужен только для синхронизации нод, при этом сервером является одна их них. Все остальные действия, касающиеся непосредственно работы, прекоасно обходятся без него. И любая нода в любой момент может стать сервером.

Есть разница между сервером TCP/IP взаимодействия и выделенным сервером.

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

И у torrent, внезапно, каждый качающий тоже сервер.

German_1984 ★★
()
Ответ на: комментарий от German_1984

Кэп?
Для любого сетевого взаимодействия нужен сервер.

Мы уже ушли очень далеко от исходного предмета спора. Было утверждение, что Git'у не нужна децентрализованная система, поскольку он итак уже децентрализованный. На что и было возражение, что сам по себе Git, пусть и будучи децентрализованной системой хранения, не является децентрализованной системой обмена репозиториями. И для реализации нормального p2p ему нужна ещё какая-то обвязка. Из-за чего был открыт топик. И возражения «Git'у это не нужно, поскольку он итак это умеет» абсолютно некорректны :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

И вы и тс ссылаетесь на какой-то предыдущий разговор, породивший данный. Было бы неплохо, если бы вы дали ссылку, тем самым позволив остальным понят, что вы подразумеваете, но не озвучиваете.

возражения «Git'у это не нужно, поскольку он итак это умеет» абсолютно некорректны

Они корректны. Но могут быть ложны.

German_1984 ★★
()
Ответ на: комментарий от German_1984

И вы и тс ссылаетесь на какой-то предыдущий разговор

Э... Я не ссылаюсь, вроде :) Только в контексте топикстарта.

Они корректны

Некорректны. Git без обвязки не умеет p2p.

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.