2

git svn clone -s svn://xxx を使用して (centos 上の) svn リポジトリからコードを複製しようとしていますが、奇妙な問題で中断され、次のようなエラー メッセージが表示されます。

Following parent with do_switch
Successfully followed parent
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/SVN/Core.pm line 584.
Network connection closed unexpectedly:  at /usr/libexec/git-core/git-svn line 2693

次に、このクローンプロセスを続行します

    time git svn fetch -r HEAD

すべてがうまくいっているようで、ついにその svn リポジトリのクローンを作成することに成功しました:

W: -empty_dir: trunk/src/os/win32/ngx_gui.c
W: -empty_dir: trunk/src/os/win32/ngx_gui.h
W: -empty_dir: trunk/src/os/win32/ngx_gui_resources.h
W: -empty_dir: trunk/src/os/win32/ngx_shared.h
W: -empty_dir: trunk/src/os/win32/ngx_types.h
r4817 = 7b58fc00b5b8ebb0544053ecf63e53b28935f15b (refs/remotes/trunk)
Auto packing the repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 12449, done.
Compressing objects: 100% (12177/12177), done.
Writing objects: 100% (12449/12449), done.
Total 12449 (delta 9475), reused 0 (delta 0)
Checked out HEAD:
  svn://svn.nginx.org/nginx/trunk r4817

real    0m9.630s
user    0m6.015s
sys     0m1.870s

奇妙な問題は、svn リポジトリから複製されたローカル git リポジトリにタグがないことです。

[root@home nginx]# git branch
* master
[root@home nginx]# git tag   // no tags at all:(

[root@home nginx]# svn ls svn://svn.nginx.org/nginx/branches | wc -l
7
[root@home nginx]# svn ls svn://svn.nginx.org/nginx/tags | wc -l
388

実際、svn リポジトリには 388 個のタグがあるため、ローカルの .git リポジトリを修正するにはどうすればよいですか?

リモート svn サーバーから git clone を再起動する必要がありますか?

私は同じ問題で何度も試しました:(

4

1 に答える 1

2

基本的に git-svn はタグを Git タグとしてサポートしていません。SVN タグを Git タグに変換するには、次を使用できます。

  • SubGit (+ SVN リポジトリのあるサーバーにアクセスできない場合はsvnsyncかもしれません)
  • git-svn + 参照更新のコマンド: "git update-ref refs/tags/TAGNAME refs/remotes/tags/TAGNAME"
  • SmartGit、UIが必要でスクリプトを作成しない場合

ただし、注意: タグをサーバーにプッシュして SVN タグに変換できるのは、1 番目と 3 番目のソリューションのみです。git-svn では、追加の「git svn branch」コマンドを使用する必要があります。

于 2012-08-17T10:46:58.010 に答える