将Unity工程Commit到SVN服务器

打开VisualSVN Server Manager,点击左侧的ResLoadPrgJenkins,右键——Copy URL to ClipBoard

想要将Unity工程Commit到SVN服务器,直接在工程文件Commit是不行的,我们必须先创建一个空文件夹,这里我们创建E:\UnityProjects\ResLoadPrgSVN工程,我们进入,右键——TortoiseSVN——Checkout,输入用户名和密码(如果让输入的话),点击OK。

然后进入E:\UnityProjects\ResLoadPrg工程,将Assets、Packages、ProjectSettings三个文件夹复制粘贴到E:\UnityProjects\ResLoadPrgSVN工程内部

我们使用SVN时,也是只管理Assets、Packages、ProjectSettings三个文件夹

在某些情况下,只管理Assets一个文件夹也可以,不过要记得统一开发人员的ProjectSettings

SVN过滤

进入E:\UnityProjects\ResLoadPrgSVN工程内部,点击空白处右键——TortoiseSVN——Properties

在弹出的窗口中点击”New“——Other,在新弹出的窗口的Property name中选择svn:ignore,在Properly value中输入,点击OK

1
2
3
4
*.csproj
*.sln
Library
Temp

然后再点击空白处右键——TortoiseSVN——Settings,在弹出的界面左侧——General中有Global ignore pattern,在其中添加(注意前后用空格分割)

1
*.csproj *.sln Library Temp

提交

点击空白处右键——TortoiseSVN——Add,全选

点击空白处右键——TortoiseSVN——Commit,填写版本说明信息,检查提交内容是否正确,点击OK

提交完成后,我们使用UnityHub打开ResLoadPrgSVN工程,生成其他必要的文件

Unity项目设置

Edit——Project Settings——Editor:Version Control:Visible Meta Files

Edit——Project Settings——Editor:Asset Serialization Mode:Force Text

Edit——Preferences——Packages:Repository:External

设置Jenkins

我们可以回到之前的“Android测试Test”Jenkins构建,然后点击配置,我们进行修改

General

将“描述”改为“ResLoadPrg_PC”

将“this project is parametered”——“String Parameter”——“WorkPath”改为E:\UnityProjects\ResLoadPrgSVN

将“自定义的工作空间”改为:E:\UnityProjects\ResLoadPrgSVN

将“显示名称”修改为“ResLoadPrg_PC”

BuildSetps

在Execute Windows batch command里面填写

1
2
3
svn cleanup %WorkPath%
svn revert %WorkPath%
svn update %WorkPath% --username ATAO --password Unfbc8951,

如果此电脑设置了多个用户,可能会出现Jenkins无法连接远程服务器的情况。

此时我们需要在Windows图标上右键——计算机管理

在弹出的窗口左侧点击“服务和应用程序”——“服务”

找到“Jenkins”——右键——属性

在弹出的窗口中选择“登录”选项卡,然后选中“此账户”,点击“浏览”。会弹出一个窗口

我们进入C盘,选择“用户”文件夹,找到管理员用户的名称,然后将此名称填进刚才弹出的窗口中,选择“检查名称”,点击“确定”

回到“登录”选项卡,把管理员用户的Windows密码填进去,确定

最后我们在计算机管理窗口中重启Jenkins服务。

测试命令行执行Unity

我们进入ResLoadPrgSVN工程,在Editor文件夹内新建TestEditor脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using UnityEngine;
using UnityEditor;
using System.IO;

public class TestEditor : MonoBehaviour
{
[MenuItem("Test/Create File")]
public static void JenkinsTest()
{
FileInfo file = new FileInfo(Application.dataPath + "/生成文件测试.txt");
StreamWriter sw = file.CreateText();//CreateText默认此文件每次创建时都是重新写入

sw.WriteLine(System.DateTime.Now.ToString());
sw.Close();
sw.Dispose();
}
}

添加完脚本之后关闭Unity编辑器。然后打开TortoiseSVN,Add——Commit一下。

修改Jenkins的“ResLoadPrg_PC”构建的配置,在BuildSteps里面“Add build step”——选择Invoke Unity3d Editor,在“Unity3d installation name”中输入“2021.3.22”,在“Editor command line arguments”里面输入:

1
-projectpath %WorkPath% -quit -batchmode -executeMethod TestEditor.JenkinsTest -logFile "E:\unity3DJenkins.txt"

-projectpath:Unity工程文件目录

-quit:执行完毕后关闭Unity

-batchmode:在命令模式下执行

Unity - Manual: Unity Editor command line arguments