脚本运行环境: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

------ ......

脚本代码:

 1 #!/bin/bash
 2
 3 git config --global user.name "Allen"
 4 git config --global user.email allen@domain.com
 5
 6 # Init params
 7 namespace=VssProjects # Group Name
 8 namespaceId=10 # Group Id
 9 rootPath=/d/work/vss # VSS work path
10 index=0
11 folderList=[]
12
13 # Each folders
14 cd $rootPath
15 for i in $(ls $rootPath)
16 do
17   echo $index $i
18   folderList[index]=$i
19   index=`expr $index + 1`
20 done
21
22 # Print folders length
23 echo ${#folderList[@]}
24
25 # Git Init
26 for dirName in ${folderList[*]}
27 do
28   workPath=$rootPath/$dirName #项目工作目录
29   projectName=$dirName # 项目名称
30   data='{"name":"replacement","visibility":"private","namespace_id":namespaceId,"path":"replacement"}' # 待提交的JSON数据
31   postData=${data//replacement/$projectName} # 全部替换
32   postData=${data/namespaceId/$namespaceId} # 只替换一次
33   echo $postData
34
35   # Gitlab Create Projects
36   curl --header "Private-Token: your private token" \
37   -H "Accept: application/json" \
38   -H "Content-type: application/json" \
39   -X POST \
40   -d $postData \
41   http://git.domain.com/api/v4/projects
42
43   # Git repository init & push
44   cd $workPath
45   git init
46   git remote add origin http://username:password@domain.com/$namespace/$projectName.git
47   touch README.md
48   git add README.md
49   git add .
50   git commit -m "Init version"
51   git push -u origin master
52 done

转载于:https://www.cnblogs.com/VAllen/p/Use-Shell-script-to-migrate-VSS-to-Gitlab-in-Git-Bash.html

通过Shell脚本将VSS项目批量创建并且提交迁移至Gitlab相关推荐

  1. Shell脚本实战之文件批量创建和修改

    Shell脚本实战之文件批量创建和修改 一.脚本要求 二.脚本内容 三.脚本运行结果 一.脚本要求 1.所有操作在/python下 2.批量创建12个以py后缀结尾的文件,文件名中必须包含_hcip, ...

  2. shell脚本及举例:依次创建10个目录在相应目录下创建10个文件,在相应文件下添加内容

    shell脚本 如果我们的命令或者应用程序不在命令行直接执行,而是通过一个程序文件来执行时,这个程序就被称之为shell脚本.Shell脚本里面通常内置了多条命令,有的还包含控制语句,比如if和els ...

  3. shell脚本(一)批量修改图片名称

    shell脚本(一)批量修改图片名称 近期刚刚接触linux操作系统以及caffe,在这个过程中需要编写一些shell脚本实现一定的功能,在此记录自己的学习以及实践过程. 利用caffe自带的mnis ...

  4. docker $PWD路径_Docker安装Jenkins+Shell脚本自动化部署项目

    本文同名博客老炮说Java:https://www.laopaojava.com/,每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料 Sentinel+Nacos 是 ...

  5. linux 批量删除任务,Linux-Shell脚本学习心得之批量创建、删除用户

    继上次博文,继续为大家分享脚本实例:批量创建.删除用户 说到,用户的管理,大家都不会陌生,就是创建.删除.禁用等等的管理,但,大多都是管 理员手工操作,效率不是很高,今天,就给大家说说Shell脚本是 ...

  6. Shell编程面试题4_批量创建Linux用户并设置密码

    老男孩出的Shell编程企业面试题4: 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串). 我的Shell脚本如下: #!/bin/bashfor num i ...

  7. Shell脚本:向磁盘中批量写入数据

    本文转自: https://my.oschina.net/Tsybius2014/blog/343989 一.关于本文 工作要做的监控系统需要监控磁盘空间的使用率并报警.在测试这个功能的时候需要模拟两 ...

  8. sftp shell 批量上传文件_如何在shell脚本里使用sftp批量传送文件-阿里云开发者社区...

    主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对 2.将其中的公钥分发到sftp欲登录的远程服务器上 3.编写并以上面的本地用户运行shell脚本 一.生成密钥对 在shell脚本中使用s ...

  9. linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件

    主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对 2.将其中的公钥分发到sftp欲登录的远程服务器上 3.编写并以上面的本地用户运行shell脚本 一.生成密钥对 在shell脚本中使用s ...

最新文章

  1. Exchannge 2013数据库副本频繁自动切换
  2. linux 测试环境启用jar_Linux下搭建测试环境
  3. 对接物联网设备tcp协议_什么是物联网?常见IoT协议最全讲解
  4. shuffle的过程分析
  5. 类型混淆漏洞实例浅析
  6. linux下imp导入oracle数据库,Oracle数据库Linux下的导入IMP
  7. SecureCRT问题
  8. 分布式搜索引擎Elasticsearch的简单使用
  9. Matlab程序中调用其他程序
  10. 最轻松mflac转flac、mp3方法
  11. 人体姿态识别-左肩和左肘的定位识别
  12. css 设置打印a4,CSS设置A4纸大小。
  13. raid缓存策略设置
  14. JavaScript基础(五)——ES2015(ES6)基础语法
  15. 鹅肉是凉性还是热性 鹅肉怎么做好吃
  16. 5G是什么? --5G
  17. PS学习(一)-改变logo颜色
  18. 阿里云服务器配置Tomcat
  19. 面经:2020校招中兴提前批面试经历
  20. vue2.x的h函数(createElement)与vue3中的h函数

热门文章

  1. I'm stuck! ccf模拟题。
  2. java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc
  3. python画图标题_使用pyplot.matshow()函数添加绘图标题
  4. ubuntu chrome java插件_在Ubuntu中为Chrome安装Java插件
  5. python统计linux流量,通过Python进行MySQL表信息统计
  6. 开源游戏机java模拟器_最棒的 7 款开源终端模拟器
  7. mysql语句优化百条_优化mysql语句
  8. 1024,不讲技术,来一套程序员续命操~
  9. 【lidar】3D目标检测PointPillars:论文解读、代码解读、部署实现(1)
  10. POJ - 3160 Father Christmas flymouse DAG最长路