文章出處

腳本運行環境: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

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()