Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git svn部分子版本树_Git_Svn_Git Svn - Fatal编程技术网

git 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 遵循

我正在使用git在本地机器上开发当前项目。 存在一个subversion服务器,我必须根据我当前的主分支不时更新它

假设我在svn中的目录是:

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组合。我不想弄乱我的生产环境:)