脚本运行环境: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. 构建Maven父子工程

    IDEA构建maven父子工程:  1.打开IDEA,Create New Project 如图:   如果没有弹出新建界面,可以先 file-->Close Project 如图: 2.创建父 ...

  2. 九、JSP入门(2)

    day12 JSP指令 1 JSP指令概述 JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的. JSP中 ...

  3. Python练手例子(7)

    37.对10个数进行排序. 程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换. #python 3.7 if __n ...

  4. oo第三次总结

    一.(1)规格化设计的大致发展历史 20世纪60年代,随着大容量.高速度的计算机出现,以及大量语言的新增和软件的不可靠,爆发了所谓的“软件危机”.而针对这个问题,人们提出了规格化设计的解决方法.通过把 ...

  5. [strongswan] strongswan是如何实现与xfrm之间的trap机制的

    目录 strongswan与xfrm之间的trap机制 0. 1. 前言 2. 描述 2.1 none 2.2 trap 3. 实验与过程 3.1 trap实验 3.2 none实验 4 背景知识 5 ...

  6. Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0

    原因:JDK版本不兼容.运行的Java Class文件采用高版本的JDK编译,然后在低版本的JRE环境中运行,有时会报此错误. 解决:1)升级JDK 2)调整Eclipse中Java Compiler ...

  7. [vue开发记录]全局loading组件

    上图不上种,菊花万人捅: loading.js: import './loading.css' let Loading = {} // 避免重复install,设立flag Loading.insta ...

  8. mysql实现开窗函数

    mysql实现开窗函数 http://blog.itpub.net/29989552/viewspace-2123077/ 学习过oracle的应该知道,oracle中的分析函数功能十分强大,包括ms ...

  9. http类中的download方法 下载汉字文件名 汉字消失的问题

    将文件名用urlencode转码即可 $http = new \Org\Net\Http; $http->download($fileName, urlencode($showName));

  10. nginx隐藏tp路由index.php

    ---------------------------------------------- 也可以找到vhosts.conf文件修改, 重启nginx,service nginx restart