Как изменить исходный код minix в локальном репозитории

Мне было интересно, как решить следующую проблему. В настоящее время я изучаю, как изменить исходный код ОС по своему вкусу, рабочим примером является minix А.С.Таненбаума.

Скажем, я запускаю minix с qemu и перенаправляю порт ssh на localhost:10022 (используя -net user,hostfwd=tcp::10022-:22), чтобы я мог ssh -p 10022 user@localhost подключиться к системе, работающей на qemu.

Теперь исходный код minix находится в /usr/src. Я хочу иметь этот код локально на своей машине — лучше всего в репозитории git — и иметь возможность изменять его, а затем отправлять и создавать на виртуальной машине.

Подводя итог, я хочу:

  • Чтобы иметь копию /usr/src minix на моей машине, в репозитории git
  • Чтобы иметь возможность git push его с моей машины (или что-то в этом роде), чтобы, если мои изменения полностью сломают систему, я мог начать заново с моего базового образа minix

Я попытался превратить /usr/src в репозиторий git, который я могу клонировать на свою локальную машину. Тем не менее, по-видимому, нецелесообразно использовать не-голый репозиторий, а голый репозиторий git, который не содержит незафиксированных файлов, не кажется подходящим вариантом.

Кроме того, я бы предпочел не перебирать его, просто нажимая/вытягивая на другой пульт.

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


person Jytug    schedule 24.04.2018    source источник


Ответы (1)


Хост: всего один не голый репозиторий (+ бэкапы).

ВМ: один голый и один не голый репозиторий в /usr/src.

Первоначальная настройка: создайте не голый репозиторий в /usr/src на виртуальной машине. Добавить и зафиксировать все. Клонируйте не-голый репозиторий в голый репозиторий где-нибудь. Клонируйте голое репо на виртуальной машине, чтобы оно не было на хосте.

Рабочий процесс: редактируйте исходники на хосте, добавляйте и фиксируйте. Нажмите с хоста на голое репо на виртуальной машине. Перетащите с голого на не-голый на VM и скомпилируйте.

Вытягивание из голого состояния в не голое может быть выполнено автоматически с помощью хука "remote deploy" (после получения или после обновления). .

person phd    schedule 24.04.2018