После перезаписи истории поддерева из репозитория с помощью моего скрипта я сравнил его с тем, что будет делать git filter-branch ...
] на том же поддереве. Я вижу, что исходные коммиты имеют разные sha1, хотя я ожидал, что они будут идентичными (следствием этого является то, что все коммиты из обеих историй имеют разные sha1).
Выполнение git show --format = raw
на char *
, чтобы передать его в функцию C, и, похоже, есть несколько предостережений в отношении этого. Следует остерегаться непрерывности строки и многих других вещей. Дело в том, что я никогда не понимал всех моментов, о которых нужно знать, и почему ?
Мне было интересно, может ли кто-нибудь подвести итог предостережений и недостатков, связанных с преобразованием std :: string
в char *
, которое необходимо для перехода к функции C?
Это когда std :: string
является ссылкой const
и когда это просто неконстантная ссылка, и когда функция C изменяет char *
и ни когда его не переделывать.