git svn部分子版本树
我正在使用git在本地机器上开发当前项目。 存在一个subversion服务器,我必须根据我当前的主分支不时更新它 假设我在svn中的目录是:git svn部分子版本树,git,svn,git-svn,Git,Svn,Git Svn,我正在使用git在本地机器上开发当前项目。 存在一个subversion服务器,我必须根据我当前的主分支不时更新它 假设我在svn中的目录是: project/module/ 在这个目录中有一个通用目录和我的svn结构 project/module/aDirectory project/module/myGitDirectory/trunk project/module/myGitDirectory/branches project/module/myGitDirectory/tags 遵循
project/module/
在这个目录中有一个通用目录和我的svn结构
project/module/aDirectory
project/module/myGitDirectory/trunk
project/module/myGitDirectory/branches
project/module/myGitDirectory/tags
遵循git 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中正常工作,只需使用
git svn dcommit
到部分svn树
这很管用,直到有人参与进来
project/module/aDirectory
这不在我的本地git回购协议中
git svn dcommit
的失败是:
Unable to determine upstream SVN information from HEAD history.
我在谷歌上搜索了这个问题,并在这里找到了一些解决方案,但这些解决方案并没有真正帮助我。要么根本不起作用,要么我不得不手工合并几十个文件,这是我不想要的。
我目前的解决方法是签出完整的svn,将更改从git复制到svn repo,然后提交
所以我的问题是,有没有可能像我这样在git svn中使用这样的部分svn树?
我为git svn指定了错误的目录,是否犯了错误?
或者git svn不是适合我的场景的解决方案
如果我可以按照我开始的方式来做,那么svn提交到本地git中没有跟踪的文件会发生什么
我在其他一些项目中使用了svn和git的组合,从未遇到任何问题,但是整个svn树也是在git中管理的。因此,每个对svn的承诺在我的git回购中都有一个适当的位置:)这很奇怪。但您也可以将一个目录克隆到git。只需将其添加到配置中
[svn-remote "svn-extra"]
url = https://mygit.test.com/project
fetch = aGitDirectory:refs/remotes/aDirectory
在此之后,从svn克隆一个目录
git svn fetch svn-extra
并尝试在回购协议中使用新的回购协议获取前一个回购协议
git svn fetch --fetch-all
这可能有助于git svn理解这种非典型提交。我将尝试一下。我必须为测试设置一个svn+git组合。我不想弄乱我的生产环境:)