📚
Hoa Framework
  • 一、框架指南
  • 二、功能特性
  • 三、源码结构
  • 四、代码规范
  • 五、入门指南
  • 六、依赖注入/控制反转
  • 七、控制器和服务
  • 八、对象映射指南
  • 九、数据库操作指南
    • 9.1、正向工程(Code First)
    • 9.2、逆向工程(Database First)
    • 9.3、关于仓储(IRepository)
    • 9.4、增删改操作
    • 9.5、查询操作
    • 9.6、DataSet、DataTable 操作
    • 9.7、查询结果集映射
    • 9.8、批量增删改操作
    • 9.9、存储过程、视图、函数操作
    • 9.10、工作单元和事务
    • 9.11、多上下文、读写分离
    • 9.12、切面上下文(TangentDbContext)
    • 9.13、其他操作
    • 9.14、EF Core 高性能
    • 9.15、常见错误
  • 十、开放接口指南
    • 10.1、RESTFul 和 Swagger
    • 10.2、规范化返回值
  • 十一、数据校验
  • 十二、安全授权
  • 十三、异常处理
  • 十四、日志管理
  • 十五、配置管理
  • 十六、缓存管理
  • 十七、内置工具类
    • 17.1、数据加解密
  • 十八、跨域处理
  • 十九、筛选拦截器(未)
  • 二十、进程服务(Daemon)
  • 二十一、编写测试
    • 20.1、单元测试
    • 20.2、基准测试
    • 20.3、性能测试
  • 二十二、托管部署
    • 22.1、IIS 托管部署
    • 22.2、Nginx 托管部署
    • 22.3、Docker 容器部署
  • 二十三、性能分析(MiniProfiler)
  • 二十四、其他功能
    • 23.1、第三方包管理
    • 23.2、文件上传下载
    • 23.3、Razor 视图引擎
    • 23.4、生成客户端请求代码
    • 23.5、快捷操作
  • 二十五、Docker 容器化
    • 25.1、Docker 介绍
    • 25.2、Docker 安装
    • 25.3、Docker 安装服务
    • 25.4、Docker 常用命令
    • 25.6、Docker run 常用命令
    • 25.7、Docker-Compose 介绍
    • 25.8、docker-compose.yml
    • 25.9、Docker-Compose 常用命令
    • 25.10、Docker-Compose 转换 docker run
    • 25.11、Docker 构建自己的镜像
    • 25.12、Dockerfile指南
    • 25.13、Dockerfile 常用命令
    • 25.14、Dockerfile 打包、上传、分享
    • 25.15、Docker 数据卷
    • 25.16、Docker 域网络
    • 25.17、Docker + Nginx 实现分布式集群、负载均衡
  • 二十六、DevOps 持续部署集成
    • 26.1、DevOps 介绍
    • 26.2、持续集成、交付、部署
    • 26.3、Jenkins 介绍
    • 26.4、Jenkins 安装
    • 26.5、Jenkins 初始化
    • 26.6、Jenkins 实战演练
    • 26.7、Jenkis 项目配置
    • 26.8、Jenkins 插件
  • 二十七、OpenXml/Excel 操作
  • 二十八、SaaS 多租户
  • 二十九、Git 代码管理
    • 29.1、Git 介绍
    • 29.2、Git 安装
    • 29.3、Git 基础配置
    • 29.4、Git 工作流程
    • 29.5、Git 重要概念
    • 29.6、Git 创建仓库
    • 29.7、Git 基本操作
    • 29.8、Git 分支管理
    • 29.9、Git 查看提交历史
    • 29.10、Git 标签
    • 29.11、Git 拉取/获取/推送
    • 28.12、Git GUI工具
    • 29.13、Git 私有化部署
    • 29.14、Git 推荐开发模式
    • 29.15、Svn 转 Git
  • 贡献代码
  • 更新日志
由 GitBook 提供支持
在本页
  • 可使用框架提供的自动化脚本
  • 使用说明
  • 自己手动操作(不推荐)
  • 首次将Svn转Git
  • 后续继续同步SVN到Git
  • 常见错误

这有帮助吗?

  1. 二十九、Git 代码管理

29.15、Svn 转 Git

本章节讲说明如何将 Svn 完整的 转到 Git中

可使用框架提供的自动化脚本

$SoucePath = Read-Host "请输入仓库目录,可空";
$SvnAddress = Read-Host "请输入Svn地址,可空";
$GitAddress = Read-Host "请输入Git地址,可空";

# 记录当前脚本目录
$pspath=pwd;

if($SvnAddress -eq $null -or $SvnAddress -eq "" -or $GitAddress -eq $null -or $GitAddress -eq "")
{
    echo "sync svn to git.";

    if($SoucePath -eq $null -or $SoucePath -eq "")
    {
        throw "[-SoucePath] can not be empty.";
    }

    # 进入源码目录
    pushd $SoucePath;

    # 如果 local-git-svn 分支存在才执行这条命令
    git branch -d local-git-svn;

    # 创建分支并切换到 local-git-svn
    git checkout -b local-git-svn  refs/remotes/git-svn;

    # 拉取SVN最新修改代码
    git svn fetch;

    # 切换回主分支
    git checkout master;

    # 再删除分支 local-git-svn
    git branch -d local-git-svn;

    # 再重写创建分支并切换到 local-git-svn
    git checkout -b local-git-svn  refs/remotes/git-svn;

    # 切换回主分支
    git checkout master;

    # 合并最新代码到 master 分支
    git merge local-git-svn;

    # 推送到远程
    git push -u origin master;
}
else
{
    write-warning "The first time sync svn to git.";

    if($SvnAddress -eq $null -or $SvnAddress -eq "")
    {
        throw "[-SvnAddress] can not be empty.";
    }

    if($GitAddress -eq $null -or $GitAddress -eq "")
    {
        throw "[-GitAddress] can not be empty.";
    }

    # 克隆svn项目
    git svn clone $SvnAddress --no-metadata --no-minimize-url  --no-minimize-url;

    # 添加远程git地址
    git remote add origin $GitAddress;

    # 提交到git
    git push -u origin master -f;
}


# 回到脚本目录
pushd $pspath;

使用说明

保存这个脚本为:svntogit.ps1

然后打开 PowerShell 运行这个脚本

& "./svntogit.ps1"

如果你是首次运行,需要提供 Svn 和 Git 地址

如果已经同步过了,只需要提供 Git 本地目录地址即可,其他的为空。

自己手动操作(不推荐)

首次将Svn转Git

git svn clone 远程SVN地址 --no-metadata --no-minimize-url  --no-minimize-url  项目名称
git remote add origin http://dev.alliantplans.com:3000/hoa/MemberPortal.git
git push -u origin master -f

特别注意,只有首次才会执行上述命令!!!!!!

后续继续同步SVN到Git

# 如果 local-git-svn 分支存在才执行这条命令
git branch -d local-git-svn

# 创建分支并切换到 local-git-svn
git checkout -b local-git-svn  refs/remotes/git-svn

# 拉取SVN最新修改代码
git svn fetch

# 切换回主分支
git checkout master

# 再删除分支 local-git-svn
git branch -d local-git-svn

# 再重写创建分支并切换到 local-git-svn
git checkout -b local-git-svn  refs/remotes/git-svn

# 切换回主分支
git checkout master

# 合并最新代码到 master 分支
git merge local-git-svn

# 推送到远程
git push -u origin master

常见错误

svn: E235000: In file 'subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_p
l.c' line 1666: assertion failed (get_current_pool_cb != NULL)
      0 [main] perl 1921 cygwin_exception::open_stackdumpfile: Dumping stack tra
ce to perl.exe.stackdump

上一页29.14、Git 推荐开发模式下一页贡献代码

最后更新于4年前

这有帮助吗?

这是 Git 2.27.0 版本才有的,解决只需要下载 前一个版本即可:

https://github.com/git-for-windows/git/releases/download/v2.26.0.windows.1/Git-2.26.0-64-bit.exe