Unity中添加SVN编辑窗口
开发项目时,需要用到SVN进行版本控制,也有用SourceTree的。这里用SVN更新,提交时。都必须找到项目的文件,鼠标右键来更新和提交操作。
这里找了写资料,在unity界面添加了个SVN 快捷窗口,可以很方便的进行更新,提交操作。
上代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using UnityEditor;
using UnityEngine;
public class SVNUtils
{
private static List<string> drives = new List<string>() { "c:", "d:", "e:", "f:" };
private static string svnPath = @"\Program Files\TortoiseSVN\bin\";
private static string svnProc = @"TortoiseProc.exe";
private static string svnProcPath = "";
[MenuItem("SVN/SVN更新 %&e")]
public static void UpdateFromSVN()
{
if (string.IsNullOrEmpty(svnProcPath))
svnProcPath = GetSvnProcPath();
var dir = new DirectoryInfo(Application.dataPath);
var path = dir.Parent.FullName.Replace('/', '\\');
var para = "/command:update /path:\"" + path + "\" /closeonend:0";
System.Diagnostics.Process.Start(svnProcPath, para);
}
[MenuItem("SVN/SVN提交 %&r")]
public static void CommitToSVN()
{
if (string.IsNullOrEmpty(svnProcPath))
svnProcPath = GetSvnProcPath();
var path = Application.dataPath.Replace('/', '\\');
var para = "/command:commit /path:\"" + path + "\"";
System.Diagnostics.Process.Start(svnProcPath, para);
}
[MenuItem("SVN/回滚本地修改(更新时看到红色字请点我!) %&t")]
public static void RevertFromSVN()
{
if (string.IsNullOrEmpty(svnProcPath))
svnProcPath = GetSvnProcPath();
var path = Application.dataPath.Replace('/', '\\');
var para = "/command:revert /path:\"" + path + "\"";
System.Diagnostics.Process.Start(svnProcPath, para);
}
[MenuItem("SVN/SVN更新策划数据 %&i")]
public static void UpdateDataFromSVN()
{
if (string.IsNullOrEmpty(svnProcPath))
svnProcPath = GetSvnProcPath();
var path = (Application.dataPath + "/Resources/data/xml").Replace('/', '\\');
var para = "/command:update /path:\"" + path + "\" /closeonend:0";
System.Diagnostics.Process.Start(svnProcPath, para);
}
[MenuItem("SVN/SVN添加 %&u")]
public static void AddToSVN()
{
if (string.IsNullOrEmpty(svnProcPath))
svnProcPath = GetSvnProcPath();
var path = Application.dataPath.Replace('/', '\\');
var para = "/command:add /path:\"" + path + "\"";
System.Diagnostics.Process.Start(svnProcPath, para);
}
[MenuItem("SVN/清理SVN %&y")]
public static void CleanUpFromSVN()
{
if (string.IsNullOrEmpty(svnProcPath))
svnProcPath = GetSvnProcPath();
var path = Application.dataPath.Replace('/', '\\');
var para = "/command:cleanup /path:\"" + path + "\"";
System.Diagnostics.Process.Start(svnProcPath, para);
}
private static string GetSvnProcPath()
{
foreach (var item in drives)
{
var path = string.Concat(item, svnPath, svnProc);
if (File.Exists(path))
return path;
}
return EditorUtility.OpenFilePanel("Select TortoiseProc.exe", "c:\\", "exe");
}
}
之后将代码放在Editor文件夹里,就可以了。
可能会有遇到更新不了的情况,修改一下SVN的安装目录,应该就可以了。默认安装的话,一般都能直接打开,使用。

浙公网安备 33010602011771号