Наложение частичного упорядочения на идентификаторы Git Commit - PullRequest
3 голосов
/ 10 февраля 2010

Я конвертирую инфраструктуру на своем рабочем месте, чтобы использовать git вместо svn. Общая миграция идет хорошо, но у нас есть инструмент, который я разработал для выполнения наших миграций схемы SQL.

Чтобы справиться с отдельными зависимостями изменения схемы, сценарий миграции использовал замену ключевого слова subversion, чтобы поместить номер последней измененной версии в схему. С git мы не можем использовать ту же идею, так как история ревизий нелинейна (и мы полностью намерены использовать функции ветвления).

Следовательно, как я могу получить топологически отсортированный список идентификаторов коммитов из git? За исключением этого, у кого-нибудь есть лучшая идея, как справиться с этой проблемой?

Ответы [ 2 ]

1 голос
/ 10 февраля 2010
git rev-list old-revision..new-revision

Это показывает, что самое новое в первую очередь. Если вы хотите в первую очередь, добавьте --reverse

0 голосов
/ 10 февраля 2010

Если вы хотите иметь способ отследить, откуда файл появился в вашем хранилище исходного кода, вы можете изучить тегирование вашей работы и найти способ пометить файл тегом пришли из. Отчасти это зависит от вашего фактического процесса развертывания, но мой краткий ответ будет состоять в том, чтобы заменить ключевые слова svn механизмом на основе тегов. (На самом деле, возможно, именно этим вы и следовало заниматься в SVN.)

Я слышал, что здесь упоминались "грязные фильтры", но я сам ими не пользовался, поэтому не могу предположить, как они здесь вписываются.

...