Skip to main content

Subversion リポジトリをインポートする

これらの手順のようにするには、macOS または Linux システムを使い、次のツールをインストールする必要があります。

  1. に新しいリポジトリを作成します。 エラーが発生しないようにするには、新しいリポジトリの初期化に README、ライセンス、または gitignore ファイルを使わないでください。 これらのファイルは、プロジェクトが にプッシュされた後に追加できます。 詳しくは、「新しいリポジトリの作成」をご覧ください。1. お使いのコンピューターに Git がインストールされていることを確認するには、git --version. を実行します。

    出力は git version 2.40.0 のようになります。

  2. お使いのコンピューターで git svn を使用できることを確認するには、git svn --version を実行します。

    出力が git-svn version 2.40.0 (svn 1.14.2) のようになる必要があります。

    git は正常に実行できても、git svn を実行するとエラーが発生する場合は、git svn を個別にインストールすることが必要な場合があります。 Homebrew または Ubuntu パッケージ レジストリを使うことをお勧めします。これらには git-svn パッケージが含まれます。

  3. Git LFS がコンピューターにインストールされていることを確認するには、git lfs --version を実行します。

    出力は git-lfs/3.1.4 (; darwin arm64; go 1.18.1) のようになります。

  4. Subversion リポジトリをチェックアウトします。

    たとえば、Sourceforge から Logisim オープンソース プロジェクトをチェックアウトするには、svn checkout https://svn.code.sf.net/p/circuit/code/trunk を実行します。

  5. Subversion リポジトリのディレクトリに移動します。

  6. Subversion プロジェクトの作成者の一覧を取得して authors.txt にリストを格納するには、次のスクリプトを実行します。

    Shell
    svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2" = "$2 }' | sed -E 's/^ *//' | sort | uniq > authors.txt
    
  7. authors.txt ファイルを更新し、Subversion リポジトリで使われている作成者の名前を、Git リポジトリで使用する名前に、次の形式でマッピングします。

    octocat = The Octocat <[email protected]>
    
  8. Subversion リポジトリを Git リポジトリに変換するには、git svn を使います。

    • お使いの Subversion リポジトリが "trunk"、"branchs"、"tags" フォルダーを含む標準形式の場合は、git svn clone -s URL PATH/TO/DESTINATION --authors-file PATH/TO/AUTHORS.TXT を実行します。このとき、URL は Subversion リポジトリの URL、PATH/TO/DESTINATION はリポジトリのクローン先のディレクトリへのパス、PATH/TO/AUTHORS.TXTauthors.txt ファイルへのパスに、それぞれ置き換えます。

      たとえば、Sourceforge から logisim というディレクトリに Logisim プロジェクトをクローンするには、git svn clone -s https://svn.code.sf.net/p/circuit/code logisim --authors-file path/to/authors.txt を実行します。

    • Subversion リポジトリが標準ではない場合は、お使いのリポジトリを処理するように git svn カスタマイズできます。 詳しくは、Git のドキュメントで git-push についての説明をご覧ください。

  9. Git によって各 SVN リビジョンがチェックアウトされて、リビジョンが Git コミットに変換されます。 リポジトリに多数のファイルまたは多くの履歴がある場合、このプロセスには長い時間がかかります。

    大きなリポジトリの場合、コマンドがフリーズする可能性があります。 その場合は、Ctrl + C キーを押してコマンドを終了し、新しいディレクトリに移動してから git svn fetch を実行することで、終了した場所から開始できます。

  10. 新しく作成された Git リポジトリのディレクトリに移動します。1. リポジトリをリモートとして追加するには、URL を先程作成した リポジトリの URL (例: https://.com/octocat/example-repository.git) で置き換えて、git remote add origin URL を実行します。1. リポジトリを にプッシュするには、git push --mirror origin を実行します。

    リポジトリに のファイル サイズ制限を超えるファイルが含まれている場合、プッシュが失敗する可能性があります。 git lfs import を実行して、大きなファイルを Git LFS に移動してから、もう一度やり直してください。