通过Shell脚本将VSS项目批量创建并且提交迁移至Gitlab
脚本运行环境:Git Bash
系统环境:Windows 10 Pro 1709
VSS版本:Microsoft Visual SourceSafe 2005
我的VSS工作目录结构如下:
D:\work\
--vss
----project1
------src
------README.md
------ ......
----project2
------doc
------src
------README.md
------ ......
----project3
------ ......
脚本代码:
#!/bin/bash git config --global user.name "Allen"
git config --global user.email allen@domain.com # Init params
namespace=VssProjects # Group Name
namespaceId= # Group Id
rootPath=/d/work/vss # VSS work path
index=
folderList=[] # Each folders
cd $rootPath
for i in $(ls $rootPath)
do
echo $index $i
folderList[index]=$i
index=`expr $index + `
done # Print folders length
echo ${#folderList[@]} # Git Init
for dirName in ${folderList[*]}
do
workPath=$rootPath/$dirName #项目工作目录
projectName=$dirName # 项目名称
data='{"name":"replacement","visibility":"private","namespace_id":namespaceId,"path":"replacement"}' # 待提交的JSON数据
postData=${data//replacement/$projectName} # 全部替换
postData=${data/namespaceId/$namespaceId} # 只替换一次
echo $postData # Gitlab Create Projects
curl --header "Private-Token: your private token" \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-X POST \
-d $postData \
http://git.domain.com/api/v4/projects # Git repository init & push
cd $workPath
git init
git remote add origin http://username:password@domain.com/$namespace/$projectName.git
touch README.md
git add README.md
git add .
git commit -m "Init version"
git push -u origin master
done
通过Shell脚本将VSS项目批量创建并且提交迁移至Gitlab的更多相关文章
- shell脚本实例-while实现批量创建用户
#!/usr/bin/bash while read line #读取一行结果 do if [ ${#line} -eq 0 ];then #如果有空行的话就跳过这次循环 contiune fi us ...
- 编写shell脚本让springboot项目在CentOS中开机自启动
springboot项目部署在CentOS系统上时,如果遇到停电关机,公司的实施人员就得跑到甲方现场重新启动项目并测试,很是麻烦,这里探讨如何编写shell脚本控制springboot项目开机时自动启 ...
- 在shell脚本里使用sftp批量传送文件
转至:https://blog.csdn.net/istronger/article/details/52141530?utm_medium=distribute.pc_relevant.none-t ...
- 编写通用shell脚本启动java项目,适用于多数服务,只需修改服务名即可
文件名:service-user.sh 文件内容: ##shell脚本的头文件必须有#!/bin/sh ##再次配置java环境变量以防报其他错误## java env#jdk安装目录export J ...
- linux下使用shell脚本自动化部署项目
在Java开发项目时经常要把正在开发的项目发布到测试服务器中去测试,一般的话是要把项目先打成war包,然后把war包发布到服务器中,关闭服务器, 最后重新启动服务器,虽然这过程不是很繁琐,但如果是多个 ...
- 如何在shell脚本里使用sftp批量传送文件(二)
原文链接:http://bbs.chinaunix.net/archiver/tid-508290.html 主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对2.将其中的公钥分发到sftp ...
- Linux shell 脚本攻略之批量重命名
摘自:<Linux shell 脚本攻略>
- 利用shell脚本生成CHANGELOG.md(包含git提交规范)
前言 我们经常看到github上面有很多CHANGELOG.MD包含版本的更新信息,如果我们的git提交能遵循一定的规范,那么使用gitlog就能很方便的生成它 生成结果  shell脚本 http ...
- eclipse中maven多模块项目的创建、提交和检出
1.创建父项目:maven项目.创建完成后删除src目录:删除项目属性java builder中的src目录. 2.在父项目中创建maven module子项目. 3.修改pom文件,添加依赖,修改g ...
随机推荐
- [LeetCode] Soup Servings 供应汤
There are two types of soup: type A and type B. Initially we have N ml of each type of soup. There a ...
- laravel之模型操作
首先在App下创建模型,一个模型对应着一个表: 2.创建好模型之后,使用控制器来操作模型 先使用模型 创建方法来使用模型(记得要添加路由)
- 1、react-native中expo的真机测试字体不加载的坑
native-base的字体问题Roboto_medium 把native-base中的Fonts文件夹放到项目的根目录. import {Font,AppLoading} from 'expo'; ...
- iOS—使用picker View
iOS—使用picker View 一.实现效果 说明:点击随机按钮,能够自动选取,下方数据自动刷新. 二.实现思路 1.picker view的有默认高度为162,不可修改. 2.显示数据,需要设置 ...
- 输入URL地址到页面加载完成 过程
在浏览器的地址栏中输入URL地址"http://www.gacl.cn:8080/JavaWebDemo1/1.jsp"去访问服务器上的1.jsp这个web资源的过程 1.浏览器根 ...
- c#4.8-4.11学习总结
4.8讲的是static 关键字.它用于修饰类 ,字段 ,属性,方法和构造方法等.被它修饰的类称为静态类,成员称为静态成员. 先说静态字段,它是普通字段前面加个static,它不属于任何对象,只属于 ...
- 【转】tars源码漫谈第1篇------tc_loki.h (牛逼哄哄的loki库)
loki库是C++模板大牛Andrei写的, 里面大量运用模板的特性, 而tc_loki.h借用了loki库的部分代码, 形成了一个基本的文件tc_loki.h, 来看看: #ifndef __TC_ ...
- RuntimeError: implement_array_function method already has a docstring
根源:Numpy/Scipy/Pandas/Matplotlib/Scikit-learn 出现冲突 解决办法: pip uninstall scikit-learn pip uninstall ma ...
- mysql--表数据操作
查询: 简单查询 ####查询的字段必须在表中存在 #### 对查询出来的数据进行修改时,不会修改原来的数据,只是修改了可视化的,我们看到的数据. # 查一个数据 select 字段名 from 表名 ...
- less的使用(好文章)
好文章链接:30分钟学会less 自己总结一下这篇文章中的几个关键字:变量.混合.函数.嵌套.@import 下面贴上自己照着上面写的一些代码: <template> <div cl ...