Я соглашаюсь, что блокировка двоичных файлов является необходимой функцией некоторых сред. У меня просто была мысль о том, как реализовать это, хотя:
git-lock
связалась бы с центральным сервером блокировки, работающим где-нибудь для выяснения у разрешения заблокировать. git-add
сообщил бы серверу блокировки хеша содержания заблокированного файла. Это - в значительной степени непродуманная идея и везде существуют потенциальные ямы. Это также идет вразрез с духом мерзавца, все же это может, конечно, быть полезно в некоторых контекстах.
В конкретной организации, этот вид вещи мог, возможно, быть создан с помощью подходящей комбинации оберток сценария и рычагов фиксации.
Per the comp.lang.c FAQ:
There is no good way for a compiler осуществить сравнение структур (т.е. для поддержки оператора == для структур), что соответствует Низкоуровневый вкус C. Простой побайтовое сравнение может привести к на случайных битах, присутствующих в неиспользуемых "дыры" в конструкции (такие отступы используются для сохранения выравнивания из более поздних полей правильные). Для сравнения полей может потребоваться неприемлемое количество повторяющийся код для больших структур. Любое сравнение, созданное компилятором нельзя было ожидать сравнения соответствующие поля указателя во всех случаи: например, часто подходит для сравнения полей char * с strcmp вместо ==.
Если вам нужно сравнить две структуры, вам нужно будет написать свою собственную функцию to do so, field by field.