美文网首页
如何在 SVN 工程中配合使用自己的 GIT 版本库

如何在 SVN 工程中配合使用自己的 GIT 版本库

作者: 暴走TA | 来源:发表于2024-08-05 11:34 被阅读0次

简介: 项目用的是 SVN 来做版本管理,但是用过 GIT 的我,实在是无法再次用回SVN,因为有一些使用习惯和代码安全感觉还是 GIT 更舒服,当然也可能是本人工作流程有问题
系统: Windows

诟病

在长时间使用 git 之后已经习惯了,已经习惯了随手 commit 代码的习惯,这样可做到尽可能多的保留代码版本,便于一些误操作,导致的代码丢失问题。
svn 使用简单,选择文件然后提交即可保存版本,但是简单也带来了一些弊端,举几个使用中遇到的比较难受的地方。当然也可能是作者不会使用svn的高阶功能导致的,如有读者知道更好地使用方法,也欢迎留言指导。

诟病点

  1. 分支的拆分
    svn 分支需要将整个目录复制一份,就是说分支的文件是工程的副本,当工程大的时候,拆一次分支也是需要划分很多的时间来 copy 文件的。
    git 拆分支,几秒钟,稍微慢一点,电脑卡一点,也就一分多钟,因为 git 不需要 copy 文件。所以,git 可以方便拆出很多版本分支,基本无额外消耗
  2. 分支的合并
    svn 合并分支,我是用的项目提供的合并工具,然后输入单号,再根据单号查找对应的提交,然后进行合并。也容易漏,
    git 合并分支,基本上在 gitlab 这样的管理工具里,没有冲突的情况下也是秒合,而且由于 git 拆分的便利性,所有的开发都可以按功能点拆分支,大家都在上面开发就行,到时候无需找单号,直接把功能分支合并过去即可,而且后期在功能分支上改了bug可以继续合并到主干。
  3. 分支长时间和主干分离
    svn 由于合并的时候还是麻烦一些,所以主干不会经常合并到分支,这就容易导致分支的开发,在和主干合并时大概率出现冲突,那解决起来叫一个酸爽,PM 最近开会说我们这次合并分支用了两天时间,效率还是可以的,以后就走这个流程。 我已哭晕~~~。
    git 由于和分支的便利性,可以随时将主干的变更合并到分支,分支开发者及时拉取变更,可以大幅度减少冲突的发生。基本上我之前的项目发四五个渠道,同时管理一大堆分支,和分支也就是几分钟的事情,遇到麻烦的情况也就小半天。
  4. jenkins 集成打包
    由于svn的分支模式,导致我们要给不同的分支打包,就需要checkout不同的分支项目,然后打包,配置一堆的 jenkins 打包文件,那看上去叫一个专业啊。
    然后每个分支再分几个平台的项目,酸爽。如果你想测的功能,提交上去打包还容易影响别人
    git的分支模式,使其只需要保留平台项目即可,打包时,通过设置可以自动切换分支,进行打包,就是可以在一个工程里打不同分支的包,这对于开发测试一些功能还是很有用的。
  5. 个人使用
    在开发中难免会出现一些紧急任务,必须停下手里的代码,但是代码写到一半
    svn 你不可能提交半成品的代码到svn,可能连编译也过不了,再整理,暂存或则存到别的地方,很是麻烦,而且有时候一不小心再删错了文件,还得重新写,老恶心了。
    git 直接在当前工作分支切出一个分支保存当前所有工作成果,然后返回正常分支,处理问题,然后回来继续工作
    主要是 git 你在本地无论提交多少次,只要不push,那么对其他人员是没有任何影响的,但是你却保留了自己开发记录。做测试代码,也可以切个分支出来,打包测完,能用就合并,不能用直接抛弃即可。

处理方案

由于以上种种原因,我想就算是工程用的SVN ,我也要用git来做一下本地版本记录,也便于自己的测试,和工作记录保留。
我的方案是,在工程外的其它位置创建一个空的git目录,通过文件夹链接的方式,将需要使用本地版本记录的文件夹添加到git目录里,然后在git目录进行本地版本记录,最终要提交时,再到 svn 目录进行提交。这样即增强了本地版本记录,也使得 svn 的提交更干净。

操作

我的工作项目目录在 C 盘,路径如:C:\MyProject
我的本地版本记录在 F 盘,路径如:F:\GITBake
然后windows下的目录链接指令时 mklink /j newPath srcPath

  1. 使用git小乌龟在空的 GITBake 文件夹创建一个 git 目录,我们的所有本地版本记录都会保存在 .git 文件夹下,如果有 gitlab 你还可以将其推送到gitlab进行一个线上备份
  2. 使用 mklink /j F:\GITBake\Assets C:\MyProject\Assets 命令,为C 盘工程内的 Assets 目录在 F 的备份目录内创建一个 Assets 链接
  3. 在 F 的备份目录内使用 git 的提交命令提交变更。

大功告成!!

相关文章

  • centos7安装并配置svn

    一、安装 通过 来安装 查看svn版本 使用: 创建svn版本库使用命令: 配置svn信息进入版本库中的配置目...

  • svn与git的区别

    svn与git的区别 git是分布式的,svn不是。git跟svn一样有自己的集中式版本库或服务器。但git更倾向...

  • SVN版本控制

    前言 Git和SVN是目前比较常用的版本控制工具,工作需要,我这里只对SVN做一个总结。以后使用 SVN的过程中如...

  • git笔记

    git分布式系统,svn集中式区别就在于svn是将版本库集中放在中央服务器上,git是版本库就在自己电脑上,只是把...

  • 数据库的版本控制:SQLAlchemy-Alembic

    开发过程中我们一般使用git或svn等版本控制工具进行合作,版本管理控制等,但是数据库的版本并不能够被git记录下...

  • SVN迁移Git

    SVN迁移Git ①本地SVN库转本地Git库 情况一:不想保留svn提交记录 删除svn目录文件中的.svn文件...

  • AD 使用 Git 的注意事项

    使用 Git 管理项目 Altium Designer 支持使用 Git/SVN 用以版本控制。如果使用 Git,...

  • Git的使用

    一、Git概述 1.定义 git是分布式版本控制系统 2.git与svn的比较 版本库:版本库(仓库)可以简单理解...

  • CocoaPods与SVN的配合使用(二)

    在上篇文章CocoaPods与SVN的配合使用(一)中我们使用CocoaPods制作了基于SVN地址的开发库,然后...

  • Git

    1. Git概述 1. 1 Git与SVN对比 SVN SVN是集中式版本控制系统,版本库是集中放在中央服务器的,...

网友评论

      本文标题:如何在 SVN 工程中配合使用自己的 GIT 版本库

      本文链接:https://www.haomeiwen.com/subject/qsyxkjtx.html