Вот что происходит.
Предположим, что вы только измените файл в подпункте.Это поможет с объяснением.
Единственное отношение, которое имеет родительский репозиторий и вложенный репозиторий, состоит в том, что родительский репозиторий знает, что у него есть папка с вложенным репозиторием, и знает набор изменений, который предполагается использовать для этого субпредставлениябыть.Эта информация отслеживается, что означает, что разные версии родительского репозитория могут иметь разные подпункты или ссылаться на разные наборы изменений в этом подпункте.
Поскольку эта информация хранится в обычных файлах, все обычные правила, касающиеся обнаружения изменений и тому подобноеприменять.Если содержимое файла совпадает с родительским набором изменений рабочей папки, эти файлы не изменяются.
Этот механизм позволяет вам вернуться к старому набору изменений в родительском репозитории и получить его рекурсивнообновите (и добавьте или удалите) повторные ссылки на их соответствующие наборы изменений, как они были в то время, когда набор изменений в родительском репозитории был зафиксирован.Это можно сделать, просто просмотрев файлы, которые отслеживают эту информацию, и рекурсивно применив эти знания к подпунктам.
Итак, вы изменили файл в подпункте и попросили родительский репозиторий зафиксировать.Однако вы не изменили список вложенных элементов и не изменили набор изменений, на который в данный момент ссылается данный вложенный отчет.Изменения в рабочей папке подпункта не учитываются.
Таким образом, родительский репозиторий не имеет изменений, и поэтому вы не можете зафиксировать.
Если, с другой стороны, вы фиксируетесначала в подпредставлении, затем этот репозиторий теперь ссылается на новый набор изменений в качестве родительского для рабочей папки.
И затем, если вы фиксируете в родительском репозитории, код отслеживания подрепредставлений увидит этот новый набор изменений вsubrepo, обновите файлы, которые отслеживают эту информацию в родительском репозитории, и , тогда у вас есть изменения для фиксации .