0

SubGit を使用して SVN から GIT にコードを移行しています。私の SVN リポジトリの一部は次のように構築されています。

SVN-Repo
    + Project1
        + trunk
        + branches
        + tags
    + Project2
        + trunk
        + branches
        + tags

SubGit の使用:

subgit import --svn-url <svn_server>/SVN-Repo/Project1 C:\GitRepos\SVN-Repo\Project1.git --username xxx --password xxx.

その後、ローカルリポジトリに複製します。

それで:

git clone <Git_server>/_git/GIT-Repo
git push -u origin --all

その結果、最後の GIT-Repo には、SVN の場合のように Project1 という名前のフォルダーがありません。調査の結果、この Proejct1 フォルダー GIT リポジトリを作成できるコマンドが見つかりませんでした。

助けていただけませんか?

前もって感謝します。

4

2 に答える 2

1

3つのオプションがあります

オプション 1.すでに行ったこと (最も妥当なオプション)。SVN の両方のプロジェクトを 2 つの個別の Git リポジトリに変換します。次に、GitLab、Atlassian Bitbucket Server、またはその他の Git サーバー ソフトウェアを使用してリポジトリへのアクセスをセットアップします。

オプション 2. SVN リポジトリ全体を単一のディレクトリとして扱います。

subgit configure --svn-url <svn_server>/SVN-Repo --layout directory C:\GitRepos\SVN-Repo\repo.git

subgit install C:\GitRepos\SVN-Repo\repo.git

その後、実行できます

subgit uninstall C:\GitRepos\SVN-Repo\repo.git

継続的な同期が必要ない場合。この場合、Git リポジトリは SVN-Repo をルートとします。

オプション 3.両方のプロジェクトからのブランチを持つ 1 つの Git リポジトリ。

subgit configure --svn-url <svn_server>/SVN-Repo C:\GitRepos\SVN-Repo\repo.git

次に、編集repo.git/subgit/configして設定します

trunk = Project1/trunk:refs/heads/project1-master
branches = Project2/trunk:refs/heads/project2-master
branches = Project1/branches/*:refs/heads/project1-*
branches = Project2/branches/*:refs/heads/project2-*
shelves = shelves/*:refs/shelves/*
tags = Project1/tags/*:refs/tags/project1-*
tags = Project2/tags/*:refs/tags/project2-*

次に実行します

subgit install C:\GitRepos\SVN-Repo\repo.git

その後、実行できます

subgit uninstall C:\GitRepos\SVN-Repo\repo.git

継続的な同期が必要ない場合。

project1-この場合、プロジェクトで始まり、プロジェクトにproject2-対応するブランチを持つ 1 つの Git リポジトリがあります。/の代わりにproject1-/project2-を使用することもできます。project1/project2/

したがって、必要なものに応じて、これらの 3 つのオプションのいずれかを選択できますが、最初のオプションが最適です。

于 2016-04-14T13:36:49.903 に答える
0

SVN から git への 1 回限りの変換には、svn2git の使用をお勧めします。この名前のツールはたくさんあります。おそらく、https://github.com/svn-all-fast-export/svn2gitにある KDE が最適です。svn2git の適切なルールを構築するために SVN リポジトリの履歴を事前に分析するには、次の場所から svneverever を使用できます: http://blog.hartwork.org/?p=763

私はすでにこれらを使用していくつかの SVN リポジトリを Git に変換しており、本当に素晴らしい仕事をしています。

prefixそして、そこでルールを使用して、必要なサブディレクトリを取得できます。

于 2016-04-14T12:15:05.013 に答える