2

状況は次のとおりです。私は何年も前 (ソース管理をまったく使用していなかった頃) のファイルをたくさん持っており、それらを現代の Git リポジトリに置きたいと思っています。

これにはfile-fast-exportというツールが 1 つ見つかりました。既存のファイルを取得し、にフィードできるファイルを吐き出しますgit fast-import。ここまでは順調です。

唯一の問題は、fast-import が入力形式について少しうるさいことと、file-fast-export が特に洗練されたプログラムではないことです。ファイルが新しいリポジトリにインポートされていることを前提としています。

私の使用例は次のとおりです。私は git リポジトリを持っています。以前に欠落していたサブディレクトリを発見しました。ファイルの変更時間があります。コミットのタイムスタンプが変更時間に対応するように、現在のリポジトリ履歴の上にこれらの各ファイルをコミットする必要があります。私が理解しているように、Git はコミットに時系列で連続したタイムスタンプを強制するのではなく、コミットが互いに続くだけです。git log xxxxx.txtファイルの履歴を表示するだけでよろしいです。

これを行うことができるツールがあると確信しています。これどうやってするの?

4

1 に答える 1

0

唯一の問題は、高速インポートが入力形式について少しうるさいことです

rails.git実際... Git 2.28 (2020 年第 3 四半期) では、野生の一部のリポジトリには、ナンセンスなコミッターのタイムゾーン (例: )を記録するコミットがあります。" git fast-import" は、既存のリポジトリをそのまま再作成できるように、これらの無意味なタイムスタンプをそのまま渡すオプションを学習しました。

それはあなたの場合に役立つかもしれません。

Elijah Newren ( )によるコミット d42a2fb (2020 年 5 月 30 日)を参照してください。( 2020 年 6 月2 日コミット 5404183Junio C Hamanoによってマージされました)newren
gitster

fast-import--date-format=raw-permissive: 新しいフォーマットを追加

署名者: Elijah Newren

ランダムで無効なタイムゾーンを持つリポジトリが複数あります。

最も顕著なのはrails.git、タイムゾーンが "+051800" のコミットです。

いくつかの検索では、同じ無効なタイムゾーンを持つ他のリポジトリも見つかります。

さらに、Peff は、GitHub がfsck2011 年 8 月にチェックを緩和して、任意のタイムゾーン値を受け入れるようにしたことを報告しておりfilter-repofast-import 既存のリポジトリに "-[7349423]" や "- [43455309]」 .

内部のタイムゾーン値の既存のチェックはfast-import、手動または新しいスクリプトを使用して高速インポート入力を作成している人々にとって役立つ場合があります。

このチェックは、誤って無効な日付を記録することを避けるのに役立ちます。

(このチェックはかなり単純化されており、高速インポートがチェックしない無効な日付の形式がまだいくつかあることに注意してください: 将来の日付、15 で割り切れない分のタイムゾーン値、および 60 の分を含むタイムゾーン値この単純な
チェックはそれらのユーザーにとっては価値があるかもしれませんが、他のユーザーやツールは既存のリポジトリをそのままインポートすることを望んでいます。このような既存のリポジトリをインポートできるように、これらの無効なタイムゾーンでエラーが発生しない形式を
提供します。--date-format=raw-permissive

于 2020-06-07T00:55:44.127 に答える