С тех пор, как я начал работать с git, я приобрел привычку хранить исполняемые файлы других веток и тегов.Причина в том, что я не хочу беспокоиться о проверке ветки, создании исполняемого файла, а затем вынужден проверить мою рабочую ветку и перестроить все.На больших репозиториях это может занять довольно много времени (10 минут в моем текущем проекте).
Проблемы могут возникнуть, когда есть другие контролируемые версиями файлы, которые взаимодействуют с моим двоичным файлом.Мой текущий пример - это шейдеры openGL, которые читаются и компилируются во время выполнения.Несмотря на то, что у меня есть двоичный файл из рассматриваемой ветви, выполнение будет неправильным, потому что мои файлы шейдеров изменились.
Решение 1: извлеките исходную ветку, так как это изменит файлы шейдеров.
- Требуется принятие или сохранение в моей рабочей ветке.
- Когда я возвращаюсь в свою рабочую ветку, все мои файлы в репозитории были изменены, поэтому вызывается make вызывает полную перестройку.
Решение 2: извлеките только файлы шейдеров из рассматриваемой ветви, а затем запустите исполняемый файл.
- Требуется коммитили копирование в моей рабочей ветке.
- Высокий риск забыть файлы, которые были извлечены вручную.Я должен следить за ними сам, перед тем как продолжить работу, я должен вернуться к своей рабочей ветке.
Решение 3: сделать клон репо, просто чтобы сохранить исполняемый файл для этой конкретной ветви.
- каждый клон займет место (15 ГБ в моем случае).
- должен будет управлять всеми этими репозиториями при обновлении отдельных веток
Всего этого можно было бы избежать, если бы make работал по-другому.Если вместо меток времени операционной системы использовалось какое-то хэш-описание файлов.Однако, когда вы копируете файлы, есть способы сделать это, сохранив «дату изменения».Мне интересно, смогу ли я сделать это с помощью мерзавца.Если это так, я мог бы извлечь ветку, запустить исполняемый файл, а затем еще раз проверить мою рабочую ветку, не делая недействительными все файлы в моем репозитории, и, таким образом, make не приведет к полной перестройке