相关疑难解决方法(0)

使用Git-Svn克隆非标准Svn存储库

我对Git比较陌生,但我发现在家工作很容易,我想在我们的项目存储在Svn存储库中的工作中使用它.不幸的是,存储库略微不标准,我无法克隆它们.当然,它们都有trunk,branches /和tags /,但是在命中实际项目目录之前,branch /和tags /都有子目录:

trunk/
branches/maintenance/release1
branches/maintenance/release2
...
branches/development/feature1
branches/development/feature2
...
tags/build/build1
tags/build/build2
...
tags/release/release1
tags/release/release2
Run Code Online (Sandbox Code Playgroud)

克隆后:

$ git svn clone -s --prefix=svn/ https://mydomain.com/svnproject
$ git branch -r
  development
  development@1340
  maintenance
  maintenance@1340
  tags/build
  tags/build@1340
  tags/release
  tags/release@1340
  trunk
  trunk@1340 
Run Code Online (Sandbox Code Playgroud)

我没有得到任何实际的项目分支或标签.我实际上需要能够在主干,一个维护分支和一个开发分支上工作.我已经尝试过这种方法,除了修改配置的几个黑客,但没有什么对我有用.

有什么方法可以将我的非标准Svn项目的关键组件放到本地git存储库中,以便我可以轻松地在它们之间移动?

非常感谢.

更新:我应该补充一点,我不能批量切换到Git(尚).还有其他团队成员参与和国际存在.转型的后勤工作比我更愿意承担,直到我对Git更加满意; 正如我所提到的,我还是很新的.我几乎没有触及其功能的表面.

svn git clone git-svn

37
推荐指数
3
解决办法
2万
查看次数

git svn如何确定dcommit确定提交的位置?

我正在使用git-svn来跟踪同一个svn存储库中的多个分支.通常情况下这很好,但今天我已经完成了一些重置和重新设置,突然我的分支机构不会再向正确的远程分支发送:

$ git branch
* master
  a
  b

$ git svn dcommit -n
Committing to svn://server/repo/trunk ...

$ git checkout a
$ git svn dcommit -n
Committing to svn://server/repo/branches/a ...

$ git checkout b
$ git svn dcommit -n
Committing to svn://server/repo/branches/a ...
Run Code Online (Sandbox Code Playgroud)

所以分支b将提交到branches/a目录而不是branches/b目录.

我试过更改跟踪的分支:

$ git branch --set-upstream b remotes/b
Run Code Online (Sandbox Code Playgroud)

和其他东西,但唯一有效的解决方案是删除分支b并重新创建它:

$ git branch -D b
$ git branch b remotes/b
$ git svn dcommit -n
Committing to svn://server/repo/branches/b ...
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:git svn如何确定要提交的目录?我该如何修改这个目录?

谢谢,
乔纳斯

svn git branch

9
推荐指数
1
解决办法
2942
查看次数

标签 统计

git ×2

svn ×2

branch ×1

clone ×1

git-svn ×1