是否有使用`svn`语法的`git svn`包装器?
这在多大程度上是可能的?有没有这样的包装器(或者前端是更合适的名称) 例如,这将如何工作。使用是否有使用`svn`语法的`git svn`包装器?,git,svn,frontend,Git,Svn,Frontend,这在多大程度上是可能的?有没有这样的包装器(或者前端是更合适的名称) 例如,这将如何工作。使用git-svn时,您将使用git-svn-clone而不是svn-co(IIRC),因此当执行svn-co时,包装器将翻译此内容,并在实际中执行git-svn-clone 也许这是个坏主意,因为可能有无法处理的重要案例(因此是第一个问题)。也许这是个好主意(因此是第二个问题) (另一个问题是,在某种合理的设置下,基于git是否可以做类似的事情-这是一个包装器,它可以让svn用户在实际操作git服务器时能
git-svn
时,您将使用git-svn-clone
而不是svn-co
(IIRC),因此当执行svn-co
时,包装器将翻译此内容,并在实际中执行git-svn-clone
也许这是个坏主意,因为可能有无法处理的重要案例(因此是第一个问题)。也许这是个好主意(因此是第二个问题)
(另一个问题是,在某种合理的设置下,基于git
是否可以做类似的事情-这是一个包装器,它可以让svn
用户在实际操作git
服务器时能够使用他们习惯的命令)
背景是我们目前使用的是svn
,还有一些脚本(或makefile)使用svn
命令。我担心的是,这一事实会使它不适合使用git svn
(从那时起,脚本和makefile将不再像预期的那样工作)
(如果有可能继续使用svn
命令,奖金问题可以被视为切换到git
的论点的一部分,相反的论点是人们必须学习git
不会那么强。)的目的是促进从svn
到git
的转换
它通过提供以下内容来实现这一目标:
- 将
存储库导入本地Svn
存储库的方法李>Git
- 将提交从本地
存储库发送回中央Git
存储库的有限方式;它是有限的,因为Svn
只提供了Svn
功能的有限子集,并且有Git
功能不是由Svn
提供的;另外,Git
团队努力使Git
成为一个完整的Git svn
客户机是没有意义的,因为正如我前面所说,它的目的是帮助svn
用户进行转换李>svn
- 与Git的命令行类似的命令行,带有特定的附加项
git svn
一段时间后,您会发现您已经学会了最常用的git
命令
事实上,在现有脚本中使用
svn
是希望为git svn
创建一个前端的正当理由,该前端模仿svn
的命令行
您有两个选择:
svn
选项接受命令行,并将其转换为git svn
命令行git svn
而不是svn
git
,而git svn
只是一个适应阶段(应该是这样的),那么您必须修改脚本以使用git
而不是svn
,以完成迁移
将svn
命令转换为git svn
命令的简单bash
脚本如下所示:
#!/bin/bash
SVN_CMD=$1
shift
# If $1 is empty then display some help
# ... not provided here ...
case "$SVN_CMD" in
"checkout" )
git svn clone "$@"
;;
"update" )
git svn fetch "$@"
;;
"add" )
git add "$@"
;;
"commit" )
git svn dcommit "$@"
;;
esac
对于其中一些命令,您可能需要添加额外的选项以匹配当前的设置和工作流。其中一些可能不需要“$@”
部分这不是一个经过测试的脚本,它只是我现在想象的一个草图。
我认为,更好的选择是让脚本使用
svn
和它们自己的代码工作副本(作为svn
工作副本),直到中央存储库迁移到Git
。开发人员可以使用git svn
和本地git
存储库,直到他们决定是时候完全切换到git
三年前我们就是这样做的。一些开发人员需要一段适应时间,他们使用gitsvn
来缩小差距;其他开发人员直接跳到Git
命令行或各种Git
GUI界面,隐藏技术细节(例如命令行),让您专注于代码。一个好的Git
GUI客户机是许多其他客户机之外的
当我们最终决定完全切换到
Git
时,脚本很容易转换和测试。关于存储库,我建议您尝试进行转换。它比git svn做得更好。你反对学习git命令行工具吗?SVN和Git之间完全没有1:1的映射关系@VonC可能还有别的话要说。@TimBiegeleisen不,实际上我更喜欢git。否则,使用git svn就没有意义了,是吗?我当然意识到他们没有1:1的地图,这就是为什么我问在多大程度上这是可能的。