zoukankan      html  css  js  c++  java
  • 通过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 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
  • 相关阅读:
    点语法
    第一个OC的类
    gitlab教程
    php接收post的json数组
    phpstorm10.0.2三月22号补丁原来的网址被封了
    冰点下载器在转换pdf的时候出现停止工作
    乱码问题
    有用的网址(php)
    ubuntu16.04安装mysql5.6
    MapUtils常用方法
  • 原文地址:https://www.cnblogs.com/VAllen/p/Use-Shell-script-to-migrate-VSS-to-Gitlab-in-Git-Bash.html
Copyright © 2011-2022 走看看