使用git-svn管理svn仓库

作者:matrix 发布时间:2021年8月24日 分类:兼容并蓄

git-svn工具是git对比较老的svn的兼容性支持,可以直接对svn仓库进行管理。git-svn内部其实是使用perl脚本处理svn命令,没有的话要重新安装git。之后就可以任意使用git的功能了,比如stash。

mac环境下直接输入命令git svn --version检查是否可用。

出现问题最好是重新安装svn和git:

$ brew reinstall subversion
$ brew reinstall git

clone项目

$ git svn clone svn://username@svn.hhtjim.com/repos

修改&提交

这里和git仓库操作一致

$ git add .
$ git commit -m "first commmit"

推送到远程仓库

使用git svn dcommit代替git push命令

$ git svn dcommit

查看本地仓库的svn地址信息

$ git svn info

参考:

https://www.jianshu.com/p/6a3afcb59fa9

Git-Svn保存密码凭证免输入

作者:matrix 发布时间:2021年8月12日 分类:兼容并蓄

使用git-svn管理svn项目每次操作都要输入密码 😳

之前尝试过 echo password | git svn rebase来自动输入,还有删除~/.subversion/auth目录的方法都还是失败,不能达到免输入密码的效果。

办法

以mac为例,打开应用钥匙串访问,删除掉对应svn项目地址的钥匙串<svn://svn.XXXX:3690>密码。
之后马上使用git svn命令操作,系统会自动保存新的密钥在钥匙串中。

图片5344-Git-Svn保存密码凭证

这样在任何程序操作之前去保存密码就可行。git-svn是读取系统保存的密钥,之所以有问题因为密钥是之前的程序授权的,现在使用git-svn也就无法读取。

这样操作之后我这里其他程序没有影响,如果有问题的话可以自行到svn项目目录执行缓存密码凭证操作。

$ svn update --username 'user' --password 'password'

参考:

https://newbedev.com/does-git-svn-store-svn-passwords