Это является просто озадачивающим меня теперь.
На работе, у нас есть пакет сотрудничества приложений, и память кончается. В то время как проблема, любой заставляют комплект приложений пойти 64-разрядный (и таким образом, быть в состоянии работать вне этих 2 Идут, ограничивает, у нас есть на нормальном Win32 ОС), и/или уменьшите наше использование памяти, эту проблему, "Как восстановиться с OOM", не выйдет из моей головы.
, Конечно, я не имею никакого решения, но все еще играю при поиске того для C++ (из-за RAII и исключений, главным образом).
, Возможно, процесс, который, как предполагают, восстановился корректно, должен сломать свою обработку в atomic/rollback-able задачах (т.е. использование только функции/методы, дающие strong/nothrow гарантия исключения) с "буфером/пулом памяти", зарезервированной для восстановления целей.
Должен один из сбоев задачи, C++ bad_alloc раскрутил бы стек, свободный некоторая память стека/"кучи" через RAII. Восстанавливающаяся функция тогда спасла бы как можно больше (сохраняющий исходные данные задачи на диске, для использования на более поздней попытке), и возможно зарегистрировала бы данные задачи для более поздней попытки.
я действительно полагаю, что использование C++ strong/nothrow guanrantees может помочь процессу выжить в условиях низкой доступной памяти, даже если это был бы сродни свопинг памяти (т.е. медленный, несколько неответ, и т.д.), но конечно, это - только теория. Я просто должен стать более умным на предмете прежде, чем попытаться моделировать это (т.е. создать программу C++ с пользовательским новым/удаленным средством выделения с ограниченной памятью, и затем попытаться сделать некоторую работу под теми напряженное условие).
Хорошо...
Вы не должны этого делать. Метаданные в .git / изменяются в течение времени существования репо, и эти изменения не обязательно означают «изменения в содержимом», которые должны быть зафиксированы: простой git repack
изменяет файлы в .git, но эти изменения не должны фиксироваться. Почему вы хотите это сделать?
Я не знаю, как сделать именно то, что вы предлагаете, но подмодули, вероятно, подходят близко (или настолько близко, насколько вы собираетесь получить). Вот достойное руководство:
Я ни в коем случае не профессионал в GIT, но думаю, вы имеете в виду подмодули git
git submodule --help
см. подмодуль git
Я никогда не использовал его, поэтому все, что я могу сделать, это опубликовать ссылку…