VS|VS Code插件改善Tob项目的多版本维护流程
背景
所在团队主要维护ToB项目,每个项目都存在多版本同时维护的情况,比如项目A交付给不同客户使用后,后续的迭代是以版本的形式让客户付费升级的,客户也可以购买不同的版本,时间长了以后就会出现V1.0,V2.0,V3.0... ...这种多版本不同客户群使用的情况,常规开发流程中,某个feature或者bugfix在V1.0上开发完以后,如果要应用到2.0,3.0...等其它版本,就要逐个提交然后检出切换不同版本开发维护,版本相近的代码还好,cherry-pick可以直接应用这次commit,而版本跨度大业务代码差距大的时候,这种切换检出分支的动作必不可少。即使通过新建文件夹的形式clone多份代码,也需要开很多个vscode去来回切换。而更麻烦的是,如果要跑项目自测或者开发预览,还面临着频繁重装依赖等繁琐耗时的操作,肆意地消耗着我们的开发时间成本。
如何通过技术手段改善这种状况呢?或者如果有个工具或者插件能把所有版本的文件列出来就好了,这样不同版本间的文件就可以很方便的在当前编辑器面板来回穿梭修改或者跑服务。
基于这个想法,决定开发出一个vscode插件来实现检出多版本的工具。
解决方案
团队内使用的开发工具是vscode,可以通过开发插件方式解决上述问题,工具主要功能:
技术实现 项目版本或分支管理用git。
- 列出所有分支(即版本)供检出;
- 检出的分支与当前项目并列,方便实时开发;
- 添加终端打开功能;
实现分析:
列出分支 利用第三方库simple-git调用git命令查出所有分支:
- 列出分支:可以约定所有大版本都用递增分支名,如:v1.0.0, v2.0.0
- 版本检出:利用 git worktree
文章图片
版本检出 利用git-worktree:Git worktree是15年git推出的多仓库多工作区管理模式:一个git仓库可以支持多个工作树,分别对应不同的分支。我们在git中通过"git init"或"git clone"创建一个(主)工作区(树)(main working tree)。
具体资料:https://git-scm.com/docs/git-...
文章图片
插件介绍 【VS|VS Code插件改善Tob项目的多版本维护流程】依照上述实现方案,实现的vscode插件已经发布:version shuttle(版本穿梭)
插件地址:https://marketplace.visualstu...
文章图片
插件使用介绍 列出版本(分支)供检出:
检出要维护的版本:
这个插件的初衷是解决tob项目的多版本同时维护问题,多版本也意味着多分支,多分支同时维护的时候也可以用它来提效哦~
欢迎使用,拍砖指正,谢谢~
推荐阅读
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- leetcode|leetcode 92. 反转链表 II
- LintCode|LintCode 545 [Top k Largest Number II]
- jQuery插件
- VueX--VUE核心插件
- 二叉树路径节点关键值和等于目标值(LeetCode--112&LeetCode--113)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- LeetCode(03)Longest|LeetCode(03)Longest Substring Without Repeating Characters
- 用npm发布一个包的教程并编写一个vue的插件发布
- iOS,打Framework静态库