脚本运行环境: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的更多相关文章

  1. shell脚本实例-while实现批量创建用户

    #!/usr/bin/bash while read line #读取一行结果 do if [ ${#line} -eq 0 ];then #如果有空行的话就跳过这次循环 contiune fi us ...

  2. 编写shell脚本让springboot项目在CentOS中开机自启动

    springboot项目部署在CentOS系统上时,如果遇到停电关机,公司的实施人员就得跑到甲方现场重新启动项目并测试,很是麻烦,这里探讨如何编写shell脚本控制springboot项目开机时自动启 ...

  3. 在shell脚本里使用sftp批量传送文件

    转至:https://blog.csdn.net/istronger/article/details/52141530?utm_medium=distribute.pc_relevant.none-t ...

  4. 编写通用shell脚本启动java项目,适用于多数服务,只需修改服务名即可

    文件名:service-user.sh 文件内容: ##shell脚本的头文件必须有#!/bin/sh ##再次配置java环境变量以防报其他错误## java env#jdk安装目录export J ...

  5. linux下使用shell脚本自动化部署项目

    在Java开发项目时经常要把正在开发的项目发布到测试服务器中去测试,一般的话是要把项目先打成war包,然后把war包发布到服务器中,关闭服务器, 最后重新启动服务器,虽然这过程不是很繁琐,但如果是多个 ...

  6. 如何在shell脚本里使用sftp批量传送文件(二)

    原文链接:http://bbs.chinaunix.net/archiver/tid-508290.html 主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对2.将其中的公钥分发到sftp ...

  7. Linux shell 脚本攻略之批量重命名

    摘自:<Linux shell 脚本攻略>

  8. 利用shell脚本生成CHANGELOG.md(包含git提交规范)

    前言 我们经常看到github上面有很多CHANGELOG.MD包含版本的更新信息,如果我们的git提交能遵循一定的规范,那么使用gitlog就能很方便的生成它 生成结果  shell脚本 http ...

  9. eclipse中maven多模块项目的创建、提交和检出

    1.创建父项目:maven项目.创建完成后删除src目录:删除项目属性java builder中的src目录. 2.在父项目中创建maven module子项目. 3.修改pom文件,添加依赖,修改g ...

随机推荐

  1. codecademy quiz——JavaScript Promise

    Evernote Export What is the fulfilled value of Promise.all()?  A Promise     An object     An array ...

  2. vue菜鸟从业记:完成项目最后一公里之真机测试和打包上线

    最近我朋友王小闰他们公司的项目开发已经进入收尾阶段,前后端并行开发的差不多了,联调也调过了,上篇文章里也讲到了,所谓联调,就仿佛在说“我也不知道我的接口文档写的对不对,我们验证一下吧?我也不知道我的数 ...

  3. DAG---矩阵嵌套问题

    矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c, ...

  4. js基本概述

    js(javascript)是一门编程语言,用来实现与浏览器交互. 一 js的基本语法要求有以下几点 1严格区分大小写 2标识符起名要求与java一样,参考java. 3变量的概念,变量声明使用var ...

  5. 对SDE中空要素类插入要素,完成后显示的图层特别小

    原因是缺少图层Extent或者Extent发生变化,插入完成后需要对图层的Extent进行更新. 调用IFeatureClassManage. UpdateExtent更新范围 参考链接: https ...

  6. Ubuntu 安装YouCompleteMe

    目录 材料 1,安装clang 2,安装YCM 使用Vundle安装 手动安装: 3,编译YCM,支持 C-family languages: 4,编辑vimrc YCM git repo https ...

  7. AES加密的S盒和逆S盒的推导代码备份(C实现)

    摘取自https://www.cnblogs.com/Junbo20141201/p/9369860.html,感谢原作者的详细解读. #include <stdio.h> ][] = { ...

  8. VUE-008-通过路由 router.push 传递 query 参数(路由 path 识别,请求链接显示参数传递)

    在前端页面表单列表修改时,经常需要在页面切换的时候,传递需要修改的表单内容,通常可通过路由进行表单参数的传递. 首先,配置页面跳转路由.在 router/index.js 中配置相应的页面跳转路由,如 ...

  9. 发现了一个比较有意思的url参数

    今天登录阿里云发现需要二次验证了,手机号不是我的很麻烦,然后就看到有个手机app快捷登录的方式,点进去一看,链接地址是这样的http://qd.alibaba.com/onekey.htm?spm=0 ...

  10. 3.远程连接工具、JDK安装

    1.实现Centos和windows的文件传输,可以使用Xshell和Xftp(实验指导使用的是winscp). (1).可以使用Xshell远程登陆Linux,具体安装过程略. (2).登陆Cent ...