по-видимому, одни и те же коммиты дают разные sha1, почему?

После перезаписи истории поддерева из репозитория с помощью моего скрипта я сравнил его с тем, что будет делать git filter-branch ... ] на том же поддереве. Я вижу, что исходные коммиты имеют разные sha1, хотя я ожидал, что они будут идентичными (следствием этого является то, что все коммиты из обеих историй имеют разные sha1).

Выполнение git show --format = raw на char * , чтобы передать его в функцию C, и, похоже, есть несколько предостережений в отношении этого. Следует остерегаться непрерывности строки и многих других вещей. Дело в том, что я никогда не понимал всех моментов, о которых нужно знать, и почему ?

Мне было интересно, может ли кто-нибудь подвести итог предостережений и недостатков, связанных с преобразованием std :: string в char * , которое необходимо для перехода к функции C?

Это когда std :: string является ссылкой const и когда это просто неконстантная ссылка, и когда функция C изменяет char * и ни когда его не переделывать.

12
задан sbi 14 April 2011 в 18:29
поделиться