2011-09-18 87 views
1

我使用git在本地机器上开发当前项目。 存在一个颠覆服务器,我必须不时更新,基于我当前的主分支。git svn部分颠覆树

比方说我在SVN目录是:

project/module/ 

在这个目录下有一个总目录,我的svn结构

project/module/aDirectory 
project/module/myGitDirectory/trunk 
project/module/myGitDirectory/branches 
project/module/myGitDirectory/tags 

继混帐svn的设置我的git使用目录作为上游:

[svn-remote "svn"] 
     url = https://mygit.test.com/project 
     fetch = module/myGitDirectory/trunk:refs/remotes/trunk 
     branches = module/myGitDirectory/branches/*:refs/remotes/* 
     tags = module/myGitDirectory/tags/*:refs/remotes/tags/* 

我在git中正常工作,并提交我的更改j UST与

git svn dcommit 

到局部SVN树

这个工作相当精细,等到有人在

project/module/aDirectory 

这是不是在我的本地混帐回购协议承诺。

的失败为git svn dcommit是:

Unable to determine upstream SVN information from HEAD history. 

我用Google搜索这个问题,并因此在这里找到了一些解决方案,但方案并没有真正帮助我。要么它根本没有工作,要么我不得不手动几十个文件,这是我不想要的。 我目前的解决方法是签出完整的svn,将副本从git复制到svn repo并提交它们。

所以我的问题是,是否有可能使用这样的混帐SVN内的部分SVN树,我的方式? 通过为git-svn指定错误的目录,我犯了什么错误? 或者是git-svn不适合我的场景。

,如果我能做到这一点,我开始的方式,有什么用SVN发生承诺未在我的本地git的跟踪文件?

我使用SVN和Git的组合,在其他一些项目中,从来没有遇到任何麻烦,但整个SVN树在Git中进行管理。所以每个提交给svn在我的git repo中都有一个合适的位置:)

回答

0

这很奇怪。但是你可以克隆一个目录来混帐。刚刚从SVN

git svn fetch svn-extra 

添加该到配置

[svn-remote "svn-extra"] 
     url = https://mygit.test.com/project 
     fetch = aGitDirectory:refs/remotes/aDirectory 

这个克隆a目录后,并试图让前一个新的一个已经在你的回购

git svn fetch --fetch-all 

也许这可以帮助git-svn理解这种非典型的提交。

+0

我会试试看。我必须设置一个svn + git组合进行测试。我不想搞乱我的制作环境:) – evildead