git代码提交时自动同步到svn

背景

在代码提交时同时把代码提交到svn

可行性分析

git有提供原生的Git-SVN(原生工具),初步分析可行

操作

‌克隆SVN仓库到本地Git‌

git svn clone <SVN_URL> --authors-file=authors.txt --prefix=svn/

‌关联Git远程仓库(可选)‌

git remote add origin <GIT_REMOTE_URL>
git push -u origin master  # 若需同时保留Git仓库

配置自动同步机制

‌编写同步脚本‌(建议手动提交)
#!/bin/bash
cd /path/to/git-svn-repo
git svn rebase  # 拉取SVN最新提交并合并到本地分支‌:ml-citation{ref="1,5" data="citationList"}
git push origin master  # 推送至Git远程仓库(可选)
git svn dcommit  # 推送Git提交到SVN‌:ml-citation{ref="2,5" data="citationList"}

手动提交

最好使用git shell搞,分支、tag建议不要提交到SVN

# 进入命令
cd /path/to/git-svn-repo
# 更新SVN
git svn fetch
# 提交GIT
git commit -m "XXXXXXXXXXXXXXX"
# 提交SVN
git svn dcommit
‌设置Git钩子触发同步‌

在本地Git仓库的 .git/hooks/post-commit 中添加:/path/to/sync_git_to_svn.sh
注意:确保脚本有执行权限:chmod +x sync_git_to_svn.sh‌

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

生成用户列表的方法

在git的shell下执行,执行后需手动补充右侧的 Git 用户信

 svn log --xml | grep author | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = /' > authors.txt

在这里插入图片描述
需要配置权限

git config svn-remote.svn.username svn上的用户名

一个用户缺失的报错信息
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值