首页 > 通过Shell脚本将VSS项目批量创建并且提交迁移至Gitlab

通过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

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

 

脚本代码:

 1 #!/bin/bash
 2 
 3 git config --global user.name "Allen"
 4 git config --global user.email [email protected]
 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:[email protected]/$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

更多相关:

  • 一、 Git 常用命令速查   git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释  git remote add origi...

  • 安装githttps://www.git-scm.com/download/ 点击 安装好了之后,在开始菜单里面找到Git Bash git config --global user.name "你的github用户名" git config --global user.email “你的github邮箱” 查看是否登录账户配置成...

  • 了解Git和GitHub、虚幻引擎C++项目的版本控制等等! 你会学到: Git是如何工作的 如何从命令行使用Git 使用GitHub、GitHub桌面应用程序、Visual Studio中的Git工具和VS代码等Git工具 在虚幻引擎5和虚幻引擎4中使用Git跟踪虚幻引擎项目 在Visual Studio和Visual Stu...

  • 在 oh-my-zsh 进入 包含 git 仓库目录时,执行 ls 时会比较卡顿 原因: oh-my-zsh 要获取 git 更新信息 解决办法: 设置 oh-my-zsh 不读取文件变化信息(在 git 项目目录执行下列命令) $ git config --add oh-my-zsh.hide-dirty 1 如果还是...

  • gitlab创建项目a及一个主分支master 本地整体复制已有项目b 本地克隆gitlab上新创建的项目a(git clone gitlab地址) 将本地克隆过来的a文件夹下的.git目录拷贝到b项目下(cp -r .git …/b,注意是两个点,不是三个点,写两个点后,编辑器一直给输出三个点,晕) 删除本地克隆过来的项目a,将本地...

  • 编译环境Eigen3+CUDA9.2+VS2015 错误如下: 解决方式: 将Eigen中的JacobiSVD and BDCSVD里的Index用Eigen::Index替换 http://eigen.tuxfamily.org/dox-devel/TopicCUDA.html http://eigen.tuxfami...

  • 一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回是true或者false判断是否能够跳跃到结尾 例如: nums = [2, 3, 1, 1, 4] ,可以从nums[0] = 2 跳跃...

  • d定义: pandas是一个强大的Python数据分析的工具包。 pandas是基于NumPy构建的。 安装方法: pip install pandas import pandas as pd pandas的主要功能 具备对其功能的数据结构DataFrame、Series 集成时间序列功能 提供丰富的数学运算和操作 灵活处理缺失数据...

  •   using System; using System.Text; using System.Security.Cryptography; using System.Web; using System.IO;namespace Thinhunan.Cnblogs.Com.RSAUtility {public class PemCo...

  • 错误信息:ORA-01502: index 'VOX_ID' or partition of such index is in unusable state 原因:将表的表空间做了更改,导致索引失效。表移动表空间,需要重建索引。 解决方法:alter index vox_id rebuild   问题查找: SQL> select i...