1

今日、svn リポジトリを git にクローンしました。ただし、コミットされていない作業がいくつかあったので、svn commitそれらを調べてから、それらを git リポジトリにプルしました。

問題は、git が svn リポジトリについて混乱しているように見えることです。

まず、git remote何も表示されません!ただし、 と書くgit pull <tab>と、オートコンプリートされsvn-remote.svnます。それを試してみると、

fatal: 'svn-remote.svn' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

私はgit自身のファイルの中を見に行きました。設定ファイルは次のとおりです。

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[svn-remote "svn"]
        url = svn+ssh://myname@repository_address
        fetch = libskin/dev:refs/remotes/trunk
        branches = libskin/branch/*:refs/remotes/*

したがって、リモート実際にはそこにあります (奇妙なことに、ブランチはありません)。それで私はいろいろ試してみましgit pull svngit pull trunkが、それらはすべて同じメッセージで失敗しました。

構成ファイルに手動でブランチを追加してみました:

[branch "master"]
        remote = svn
        merge = refs/heads/master

しかし、問題は解決しません。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

6

Git と Subversion の両方を使用するには、使用するコマンドはgit-svnです。

git svn fetch
git svn rebase

通常の git コマンドで新しい svn をコミットすることはできません。ここでより多くのチュートリアルを読むことができます。

于 2012-05-07T13:53:42.093 に答える
0

GitとSubversionの両方を使用するには、リポジトリにSubGitをインストールするだけです。サーバー上でSVNリポジトリとGitリポジトリの同期を自動的に維持します。したがって、任意のSVNまたはGitクライアントを使用してリポジトリを操作できます。git-svnと比較すると、無視、EOL、タグなどのSVNの概念がはるかによく保持されます(.gitignore、.gitattributes、Gitタグなどに変換されます)。

クライアントのみのソリューションが必要な場合は、SmartGitを使用することをお勧めします。これらのSVNの概念もgit-svnよりもよく保存されます。。

于 2012-05-12T13:02:13.017 に答える