Можно ли использовать Git для обновления программного обеспечения на клиентских компьютерах?

Так что у меня была идея, и мне нужно второе мнение, потому что я волнуюсь, что могу потерять равновесие. Может ли локальное программное обеспечение (например, видеоигра или текстовый процессор) быть обновлено на стороне клиента с помощью Git? Например, каждый раз, когда запускается клиентская программа запускается git pull, Затем извлекает из главного репозитория, содержащего полную установку клиента.

Это хорошая идея? Что может пойти не так? На это смотрят свысока?

Библиотеки уже существуют, такие как libgit2, которые позволяют интегрировать git в приложение, так почему бы не использовать это для исправлений программного обеспечения?

2 ответа

Решение

Да, на самом деле некоторые программы уже делают это. Например, я использую zsh с oh-my-zsh расширение, которое просит меня делать обновления каждый раз, когда запускается новый терминал (и git pull запускается, когда пользователь принимает).

Этот метод лучше всего работает для интерпретируемых языков (в отличие от компилируемых языков), поскольку для git гораздо эффективнее работать с текстом, однако двоичные файлы будут работать.

Обратите внимание, что git "злоупотребляет" и другими вещами - например, популярный домашний менеджер пакетов OS X использует git для обновления своей базы данных доступных пакетов.

Это хорошая идея?

Это субъективный вопрос, поэтому у меня нет ответа для вас. Но это, безусловно, интересная идея. Проверьте это из документации Git:

Во-первых, если это еще не ясно, Git по сути является файловой системой с адресным содержимым, поверх которой написан пользовательский интерфейс VCS. (выделение добавлено)

Git описывается в терминах сантехники и фарфора. Сантехника - это серверная часть, которая на самом деле является просто файловой системой. Фарфор - это то, к чему вы привыкли, когда вы взаимодействуете с Git, и он очень сильно ориентирован на контроль источников.

Что может пойти не так?

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

Существует также много недоразумений относительно того, что Git плохо обрабатывает двоичные файлы. Я не могу найти какой-либо исходный материал, подтверждающий это, но мой собственный опыт показывает, что он прекрасно с ними справляется. Очевидно, что вы не можете объединить двоичные файлы, но я сомневаюсь, что вы все равно это сделаете для того, что вы описали.

Многие другие вещи могут пойти не так, потому что Git позволит вам довольно счастливо выстрелить себе в ногу, но это (IMO) одна из его самых сильных сторон.

На это смотрят свысока?

За каждую хорошую идею вы найдете множество ненавистников. За каждую плохую идею вы найдете множество дураков.

Другие вопросы по тегам