Выполнение этого на хосте виртуального окна должно выполнить трюк
VBoxManage controlvm (vmname) reset / poweroff
Сброс VBoxManage controlvm (vmname) оказывает такое же влияние на виртуальную машину, нажимая кнопку «Сброс» на реальном компьютере: холодная перезагрузка виртуальной машины, которая будет немедленно перезагружаться и загружать гостевую операционную систему. Состояние виртуальной машины не сохраняется заранее, и данные могут быть потеряны. (Это эквивалентно выбору пункта «Сброс» в меню «Машина» графического интерфейса пользователя.)
Управление VBoxManage controlvm (vmname) имеет тот же эффект на виртуальной машине, что и вытягивание кабеля питания на реальный компьютер. Опять же, состояние виртуальной машины не сохраняется заранее, и данные могут быть потеряны. (Это эквивалентно выбору пункта «Закрыть» в меню «Машина» графического интерфейса пользователя или нажатии кнопки закрытия окна, а затем выберите «Выключить машину» в диалоговом окне.)
blockquote>
С git, формат репозитория это довольно фундаментальная часть того, как все работает. Чтобы это изменить, придется потрудиться.
Я не читал ни одного источника Mercurial, но полагаю, что ситуация не сильно отличается.
Как я уже сказал в своем комментарии, я не совсем уверен, зачем вам это нужно. Чтобы git по-прежнему мог пользоваться всеми своими преимуществами, вам нужно будет хранить объекты git в своей базе данных sqlite. Вам все равно понадобятся все низкоуровневые инструменты git для доступа к ним и управления ими - вы не собираетесь просто искать капли и деревья по их SHA1 и выполнять всю остальную работу самостоятельно. (И даже если по какой-то причине вы захотите, вы можете сделать это так же легко, заглянув в каталог объектов git.)
Я бы посоветовал, если вы обнаружите, что некоторые операции, которые вы хотите выполнить в git, не поддерживаются, вы ознакомились с некоторыми командами сантехники и выяснили, как их записывать в виде сценариев. Git действительно предоставляет самый низкий уровень операций, который вам может понадобиться.
П.С. Если вы обнаружите определенную неподдерживаемую операцию, которую хотите выполнить, и у вас возникнут проблемы с поиском сантехники, необходимой для ее выполнения, или со сценарием, необходимым для ее реализации, задайте вопрос здесь! Нет причин застревать только потому, что вы не можете использовать sql.
Как пишет Джефроми, Mercurial также использует специальный формат для достижения высокого сжатие и быстрый доступ к любой ревизии. Это формат журнала изменений , который представляет собой структуру данных только для добавления, которая использует неизменность наборов изменений в Mercurial.
Однако, конечно, можно заменить этот формат хранения другим, если хотите. Google сделал это, когда поместил Mercurial в Bigtable для code.google.com. Одним забавным последствием использования ими собственного внутреннего формата является то, что вы не видите никаких номеров ревизий в их веб-интерфейсе. В обычном Mercurial номера ревизий (локальное целое число, которое вы можете использовать вместо полного хэша ревизии) являются индексом ревизий в журнале изменений. Когда наборы изменений не хранятся в журналах изменений, естественный индекс отсутствует, и поэтому Google не показывает номера редакций.