开发过程中少不了要提交一些代码,文件,虽然操作过程简单,但是容易遗漏提交文件,写个editor工具可以减少文件漏提交的情况。
提交到SVN的代码很简单,不过有一个前提,就是要先配置SVN的环境变量。代码如下:
public class SvnTool : EditorWindow
{
[MenuItem("GameTools/Svn工具")]
public static void ShowWindow()
{
var w = EditorWindow.CreateInstance<SvnTool>();
w.Show();
}
void OnGUI()
{
OnCsCommit();
OnCsUpdate();
}
void OnCsCommit()
{
if(GUILayout.Button("提交CS代码")
{
string path = Application.dataPath + "/Scripts";
Process.Start(fileName: "TortoiseProc.exe", arguments: "/command:commit /path:" + path + " /logmsg:modify" + " /closeonend:0");
}
}
void OnCsUpdate()
{
if(GUILayout.Button("更新CS代码")
{
string path = Application.dataPath + "/Scripts";
Process.Start(fileName: "TortoiseProc.exe", arguments: "/command:update /path:" + path + " /closeonend:0");
}
}
}
这里面有几个地方要注意:
1 命令里面参数之间是空格格开,比如“/command:update空格/path”。
2 如果要提交多个路径,用"*"连接,比如:
path = Application.dataPath + "/Scripts" + "*" + Application.dataPath + "/Editor";
TortoiseProc.exe的一些命令参数如下:
/closeonend:0
不自动关闭对话框/closeonend:1
如果没发生错误则自动关闭对话框/closeonend:2
如果没发生错误和冲突则自动关闭对话框/closeonend:3
如果没有错误、冲突和合并,会自动关闭/closeonend:4
如果没有错误、冲突和合并,会自动关闭
命令 | 描述 |
:about | 显示关于对话框。如果没有给命令也会显示。 |
:log | 打开日志对话框,路径指定了日志显示的文件或目录,另外还有三个选项可以设置: |
:checkout | 打开检出对话框, |
:import | 打开导入对话框,路径制定了数据导入路径。 |
:update | Updates the working copy in |
:commit | 打开提交对话框,路经指定了目标路径或需要提交的文件列表,你也可以使用参数/logmsg给提交窗口传递预定义的日志信息,或者你不希望将日志传递给命令行,你也可以使用/logmsgfile:path, |
:add | 将 |
:revert | 恢复工作副本的本地修改, |
:cleanup | 清理中断和终止的操作,将工作副本的 |
:resolve | 将 |
:repocreate | 在 |
:switch | 打开选项对话框。路径参数指定目标目录。 |
:export | 将 |
:merge | Opens the merge dialog. The path specifies the target directory. |
:copy | 带来branch/tag对话框, |
:settings | 打开设置对话框。 |
:remove | 从版本控制里移除 |
:rename | 重命名 |
:diff | 启动TortoiseSVN设置的外置比较程序, |
:conflicteditor | 打开TortoiseSVN设置的冲突工具,在 |
:relocate | 打开重定位对话框, |
:help | 打开帮助文件 |
:repostatus | 打开为修改检出对话框,路经指定了工作副本目录。 |
:repobrowser | 打开版本库浏览对话框,URL为工作副本 |
:ignore | 将 |
:blame | 打开 |
:cat | 将 |
:createpatch | 创建 |
:revisiongraph | 显示 |
:lock | Locks a file. The 'lock' dialog is shown so the user can enter a comment for the lock. |
:rebuildiconcache | 重建windows的图标缓存,只有windows的图标缓存出了问题才需要这样做,一个副作用就是(不可避免)桌面的图标会重新组织。 |