在使用git-svn克隆整个SVN存储库后,我应该如何切换到trunk?

时间:2011-11-02 09:19:34

标签: git git-svn

我使用git-svn克隆了整个SVN存储库(包括所有分支)。问题是,如果我运行git branch我没有得到任何回报。如果我运行git branch -a,我会得到:

git-svn

我现在该怎么做才能开始使用SVN的trunk

编辑:回购按照标准布局进行组织,但是当我拉出时,我就是这样做的:

git svn clone http://server/repo ( without any other options )

而不喜欢

git svn clone http://server/repo/trunk

我的gitconfig看起来像这样:

[svn-remote "svn"]
    url = svn_url
    fetch = :refs/remotes/git-svn 

3 个答案:

答案 0 :(得分:2)

为避免完全重新停止,您只需使用以下内容更新.git/config文件:

[svn-remote "svn"]
url = http://server.org/svn
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/*
tags = tags/*:refs/remotes/tags/*

然后删除.git/svn/.metadata并再次运行git svn fetch

PS:这是我从Git-SVN with multiple branch locations?发现的,当我不得不处理一些非标准布局的回购时的灵感。

答案 1 :(得分:1)

克隆时必须使用-s(标准布局)开关:

git svn -s clone http://server/repo

此开关将告诉git-svn分别从^/branches中找到的目录^/tags创建分支和标记。 ^/trunk将映射到git的master分支。

我担心,您将不得不重新克隆您的svn存储库......

答案 2 :(得分:1)

您可以使用SmartGit克隆SVN存储库。它会检测您的主干/分支/标签配置并正确配置布局,因此您不必为此烦恼。