3

職場のインフラストラクチャを svn の代わりに git を使用するように変換しています。全体的な移行は順調に進んでいますが、SQL スキーマの移行を行うために開発したツールがあります。

個々のスキーマ変更の依存関係に対処するために、移行スクリプトは subversion キーワード置換を使用して、最後に変更されたリビジョン番号をスキーマに入れました。git では、改訂履歴が非線形であるため、同じ考え方を使用することはできません (そして、分岐機能を完全に利用するつもりです)。

したがって、コミット ID のトポロジ的にソートされたリストを git から取得するにはどうすればよいですか? それを除けば、この問題を処理する方法について誰かがより良いアイデアを持っていますか?

4

2 に答える 2

1
git rev-list old-revision..new-revision

それは最新のものを示しています。古いものから順にしたい場合は、追加します--reverse

于 2010-02-10T19:26:31.943 に答える
0

ソースコードリポジトリ内のファイルがどこから来たのかを追跡する方法が必要な場合は、作業にタグを付けて、ファイルに元のタグを付ける方法を見つけることをお勧めします。これのいくつかは実際のデプロイメントプロセスに依存しますが、私の簡単な答えは、svnキーワードをタグベースのメカニズムに置き換えることです。(実際には、svnでずっとやるべきだったかもしれません。)

このあたりで「スマッジフィルター」という話を聞いたことがありますが、自分で使ったことがないので、ここにどのように収まるのか推測できません。

于 2010-02-10T19:45:04.107 に答える