LINUX.ORG.RU

Простая VCS для бинарных файлов с GUI для хомячков

 


0

3

Имеем прогу, для внутреннего использования, которая «релизится» каждые 1-2 недели. Нужна возможность легкого отката к нужной версии. Сейчас, как обычно, хранится 100500 самодостаточных архивов, содержащих все файлы программы. Но 95% файлов не меняются от релиза к релизу, или меняются раз в пару месяцев (обновление ресурсов, библиотек). В основном меняются только исполняемые файлы.

Чем не подходит git (любая другая VCS):

  • Нужен примитивнейший GUI для хомячков, в котором они могут выбрать архив/папку, в котором хранятся версии и выбрать папку, в которую их «распаковать». В итоговой папке получаем готовую к запуску прогу(она у нас Portable) со всеми нужными файлами.
  • Никакого ветвления (на данный момент).
  • Хорошее «сжатие». То есть хранить как можно меньше данных между версиями. В самом примитивном случае - только изменившиеся файлы, в более сложном - bin diff.
  • Опционально: read-only хранилище, чтобы только автор/админ мог добавлять новые версии.

Собственно:

  1. Есть ли готовая прога (Win + Linux)?
  2. Проще написать свой, примитивный гуи к существующей VCS, который будет делать то, что нужно?
  3. Написать свой велосипед с нуля?

PS: Компилять из git по нужному тегу - не вариант, ибо дольше, и нужны те же версии библиотек, компилятора и прочее. То есть все сборочное окружение.

★★★★★

Ответ на: комментарий от RazrFalcon

Напишите простенький фронтенд на php для git, который по тегам (версиям) будет выдавать юзварю on-the-fly архив с нужными файлами.

В том же github есть под это дело releases (которые собственно так и работают).

Пример: https://github.com/mholt/caddy/releases

Так убьете сразу всех зайцев — и вам удобно (разрабатывать) и юзверь может себе нужную версию скачать. И по месту оно очень даже не плохо выходит.

В gogs / gitlab оно тоже есть, если не хотите github и хотите self-hosted.

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

Про вебморду не подумал даже. Локальный клиент сразу пришёл в голову.

github releases знаю, но хочется именно срезы, а не полные архивы. Чтобы мало места занимало.

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

Если основным критерием является простота, я бы предложил вариант с svn и клиентами, которые интегрируются в файловый менеджер (TortoiseSVN, RabbitVCS).

  • Интерфейс достаточно прост: к контекстному меню файлов добавляется несколько пунктов для работы с svn, есть браузер репозитория.
  • Ветвление можно не использовать.
  • Bin diff есть.
  • Права доступа настраиваются: «релизим» в trunk, копируем в tags, пользователям даем доступ только для чтения.
amm
()

Я так и не понял, почему не подходит гит? Гуевая морда есть. Метки ставить можно. Если 95% файлов не меняется, то и расти репозиторий сильно не будет.
А вообще есть jenkins. Который соберет релизный пакет по хуку и может пометить пакет для хранения.

andreyu ★★★★★
()

В контейнере компиляй нах.

anonymous
()

Почему бы просто не собирать несколько инсталяционных пакетов - с программой и с библиотеками?

imb ★★
()

Может какой-нибудь ownCloud или другой аналог дропбокса? Нужен сервер, конечно, зато есть клиенты и версии файлов.

anonymous
()
Ответ на: комментарий от RazrFalcon

В заголовке же написано: нужна примитивная морда.

А сколько это в процентах?

Существующие слишком сложные.

Сколько вы их видели?

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