問題タブ [git-fast-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 大きな bzr リポジトリを git に変換していますが、どうなりますか?
古いバザールのリポジトリを git に変換しようとしています。
私の bazaar リポジトリは次のように構成されています。
- レポ
- トランク
- 製品
- 機能/機能-branchX
- 機能/機能-branchY
bzr と git の間の移行には、高速エクスポート/高速インポートの方法を使用しています。
最初に、次のように --export-marks を使用して「トランク」を移行します。
$1 は
次に、「レポ」ディレクトリ内の他のすべてのフォルダーを繰り返し、呼び出します
$nick は bzr のブランチ ニックネームで、$1/$b はブランチのディレクトリ名です。
私が言ったように、それはすべての予想されるディレクトリを処理しますが、完了後、私が
元の bazaar リポジトリには 80 以上あったブランチが 20 個しかないことを示しています。
ここで、git の「マスター」を見るだけで、すべて揃っているように見えます。欠落している 60 のブランチは、すでにトランクにマージされているブランチである可能性があります。しかし、高速エクスポート/高速インポート ツールが「ああ、これは必要ない」と言うほど賢いかどうかはわかりませんが、おそらくそうです。
誰もこれについて経験がありますか?
「マスター」と、 bzr から git に移行した後、コミットをマージ解除したブランチだけが残っているはずですか?
最後に、歴史のために、たとえ技術的に機能していなくても、すべてのブランチを強制的に変換する方法はありますか?
git - jgitで高速インポートを実装するには?
JGIT API は git fast-import をサポートしていますか?
現在、git fast-import cli コマンドを使用していますが、要件により、cli コマンドは使用しないでください。
純粋な JGIT API クラスを使用して高速インポート機能を実装する方法は?
git fast-import を実装するためのサンプルまたは手順を提供してください。
git fast-import 用の他の Java API はありますか?
git - 高速インポートを使用してファイルに高速エクスポートした一連のコミットをインポートするにはどうすればよいですか?
git fast-export
以下を使用して、一連のコミット (ブランチ) をエクスポートしました。
今、私はそれを再インポートしようとしています。私が得た最も近いものは次のとおりです。
編集:また試しました:
git-fast-import からは何の手がかりも得られません。どうすればよいですか?
私がよく理解できなかったいくつかのリンク:
mercurial - Mercurial への git-fast-import ストリームの増分インポート?
私は、いくつかの古いリポジトリを変換し、必要に応じてそれらをスプライシングおよびダイシングして、将来のリポジトリを 1 つ取得する作業を行っています。履歴の一部の傷組織 (ほとんどは以前の VCS のセマンティクスによるもの) も削除する必要がありましたが、全体として、変換はスムーズに行われたようです。
非常に時間がかかります。
背景:ストリームreposurgeon
に基づいて動作する を使用しています。git-fast-import
ターゲット形式は Mercurial です。
毎回完全な変換ルーチンを実行する必要がないように、古い VCS に導入されたコードの新しいインクリメントをまだ生きている間にインポートするにはどうすればよいですか?
git - タイムスタンプを保持しながら、既存のファイルを既存の Git リポジトリにコミットする
状況は次のとおりです。私は何年も前 (ソース管理をまったく使用していなかった頃) のファイルをたくさん持っており、それらを現代の Git リポジトリに置きたいと思っています。
これにはfile-fast-exportというツールが 1 つ見つかりました。既存のファイルを取得し、にフィードできるファイルを吐き出しますgit fast-import
。ここまでは順調です。
唯一の問題は、fast-import が入力形式について少しうるさいことと、file-fast-export が特に洗練されたプログラムではないことです。ファイルが新しいリポジトリにインポートされていることを前提としています。
私の使用例は次のとおりです。私は git リポジトリを持っています。以前に欠落していたサブディレクトリを発見しました。ファイルの変更時間があります。コミットのタイムスタンプが変更時間に対応するように、現在のリポジトリ履歴の上にこれらの各ファイルをコミットする必要があります。私が理解しているように、Git はコミットに時系列で連続したタイムスタンプを強制するのではなく、コミットが互いに続くだけです。git log xxxxx.txt
ファイルの履歴を表示するだけでよろしいです。
これを行うことができるツールがあると確信しています。これどうやってするの?
git - Git fast-import は行末を保持しませんでした
Git の高速インポート コマンドと StarTeam の SDK を使用して、StarTeam リポジトリを Git に移行しています。すべての作業は Windows 上で行われています。ほとんどのファイルは Windows 形式 (CRLF) でしたが、2 つは UNIX 形式 (LF) でした。私の最初の試みでは、これら 2 つのファイルの LF が CRLF に変換されていました。
問題は、core.autocrlf を true に設定していたことです。そのグローバル設定を削除してインポートを再実行すると、2 つのファイルは元の EOL 形式を保持していました。