1

ブランチ間を行ったり来たりする git リポジトリでは、ルビで表示されるファイル変更時間mtime(またはオペレーティング システム ベースの変更時間の測定値、たとえばls -l) は、実際の時間ではなく、最後にブランチを変更した時間を示します。ファイルが変更されました。

Git がすべてのファイルのファイル変更時間を保存することは理解していますが、実際の変更日を表示するにはどうすればよいですか (たとえば、ルビー呼び出しから)。

たとえば、コマンドラインからこれを取得できることがわかりました。

git log -1 --format="%ad" -- path/to/file

しかし、これを行う最善のRubyの方法が何であるかはわかりません。

4

1 に答える 1

2

これは不可能だと思います。つまり、git は変更時間ではなく、コミット時間のみを保存します。ただし、このメタデータを別のファイルに保存する git への追加であるmetastoreをチェックアウトすることをお勧めします。

ただし、コミット時間は目的に十分であるため、コマンドを ruby​​ から直接実行できます。何かのようなもの:

%x(git log -1 --format='%ci' path/to/file)

または、ruby​​ git ライブラリのいずれかを使用できます。私はこれらのライブラリを自分で使用したことがないため、実際にそれらのいずれかを保証することはできません.

編集:OPの目的には十分だったので、コミット時間に関する部分を追加しました。

于 2013-02-26T22:26:05.280 に答える