You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.4 KiB
122 lines
4.4 KiB
# -*- coding: UTF-8 -*-
|
|
import os
|
|
import sys
|
|
|
|
SvnCmd = os.environ.get("svn")
|
|
branchName = "trunk"
|
|
svn_arpgAssetsPath = "https://119.91.229.66/svn/u2china_cli_proj/"+branchName+"/arpg/Assets/"
|
|
local_arpgAssetsPath = "./u2china_cli_proj/arpg/Assets/"
|
|
|
|
#文件夹列表
|
|
clientFolderList = ["Lua", "Protocol","RawResources/Language","Scripts/AIMachine/HotFixLogic","SvrDesc"]
|
|
|
|
svn_ServerAssetsPath = "https://119.91.229.66/svn/u2china_svr_proj/"+branchName+"/"
|
|
local_ServerAssetsPath = "./u2china_svr_proj/"
|
|
|
|
serverFolderList = ["cfg/data","ServerComm/GameConfig","ServerComm/protocol"]
|
|
|
|
|
|
basePath = os.getcwd()
|
|
# 更新服务器端svn
|
|
def svnServerUpdate(folderPath):
|
|
|
|
#SvnCmd + " cleanup ../config_system --remove-unversioned"
|
|
#判断文件夹是否存在
|
|
if not os.path.exists(local_ServerAssetsPath + folderPath):
|
|
command = SvnCmd + " checkout " + svn_ServerAssetsPath + folderPath + " " + local_ServerAssetsPath + folderPath + ''' --username u2cbuilder --password 'u2china&bj' '''
|
|
else:
|
|
command = SvnCmd + " revert -R " + local_ServerAssetsPath + folderPath
|
|
os.system(command)
|
|
#切换分支
|
|
command = SvnCmd + " switch " + svn_ServerAssetsPath + folderPath + " " + local_ServerAssetsPath + folderPath + ''' --username u2cbuilder --password 'u2china&bj' '''
|
|
|
|
print(command)
|
|
result = os.system(command)
|
|
|
|
|
|
command = SvnCmd + " update " + local_ServerAssetsPath + folderPath + ''' --username u2cbuilder --password 'u2china&bj' '''
|
|
result = os.system(command) + result
|
|
|
|
os.chdir(basePath)
|
|
if result != 0:
|
|
sys.exit(1)
|
|
print("update Finish cd: "+os.getcwd())
|
|
|
|
|
|
# 更新客户端svn
|
|
def svnUpdate(folderPath):
|
|
if not os.path.exists(local_arpgAssetsPath + folderPath):
|
|
command = SvnCmd + " checkout " + svn_arpgAssetsPath + folderPath + " " + local_arpgAssetsPath + folderPath + ''' --username u2cbuilder --password 'u2china&bj' '''
|
|
print(command)
|
|
else:
|
|
command = SvnCmd + " revert -R " + local_arpgAssetsPath + folderPath
|
|
print(command)
|
|
os.system(command)
|
|
#切换分支
|
|
command = SvnCmd + " switch " + svn_arpgAssetsPath + folderPath + " " + local_arpgAssetsPath + folderPath + ''' --username u2cbuilder --password 'u2china&bj' '''
|
|
print(command)
|
|
|
|
result = os.system(command)
|
|
|
|
command = SvnCmd + " update " + local_arpgAssetsPath + folderPath + ''' --username u2cbuilder --password 'u2china&bj' '''
|
|
result = os.system(command) + result
|
|
|
|
if result != 0:
|
|
sys.exit(1)
|
|
|
|
os.chdir(basePath)
|
|
print("update Finish cd: "+os.getcwd())
|
|
# 提交客户端svn
|
|
def svnCommit(CommitFolderPath):
|
|
os.chdir(basePath + "/" + CommitFolderPath)
|
|
|
|
command = SvnCmd + " add * --force "
|
|
result = os.system(command)
|
|
|
|
# 删除svn中已经删除的文件
|
|
command = SvnCmd + " st | grep '^!' | awk '{print $2}' | xargs "+ SvnCmd +" del"
|
|
result = os.system(command) + result
|
|
|
|
command = SvnCmd + ''' ci -m "[meta] auto submit by jenkins" ''' + ''' --username u2cbuilder --password 'u2china&bj' '''
|
|
result = os.system(command) + result
|
|
|
|
if result != 0:
|
|
sys.exit(1)
|
|
|
|
os.chdir(basePath)
|
|
print("cd: " + os.getcwd())
|
|
|
|
if __name__ == '__main__':
|
|
if len(sys.argv) > 3:
|
|
branchName = sys.argv[1] #分支名
|
|
cmd = sys.argv[2] #命令
|
|
commitType = sys.argv[3] #提交类型 server , client , serverAndclient
|
|
|
|
svn_arpgAssetsPath = "https://119.91.229.66/svn/u2china_cli_proj/" + branchName + "/arpg/Assets/"
|
|
svn_ServerAssetsPath = "https://119.91.229.66/svn/u2china_svr_proj/" + branchName + "/"
|
|
|
|
if cmd == "commit":
|
|
if commitType == "client" or commitType == "serverAndclient":
|
|
for folder in clientFolderList:
|
|
svnCommit(local_arpgAssetsPath + folder)
|
|
|
|
if commitType == "server" or commitType == "serverAndclient":
|
|
for folder in serverFolderList:
|
|
svnCommit(local_ServerAssetsPath + folder)
|
|
|
|
print("svnCommit Done!")
|
|
exit(0)
|
|
elif cmd == "update":
|
|
for folder in clientFolderList:
|
|
svnUpdate(folder)
|
|
|
|
for folder in serverFolderList:
|
|
svnServerUpdate(folder)
|
|
print("svnUpdate Done!")
|
|
exit(0)
|
|
else:
|
|
print("error cmd :"+cmd)
|
|
exit(1)
|
|
else:
|
|
print("error cmd : update or commit")
|
|
exit(1)
|
|
|