Unity SVN更新提交小工具
Unity SVN更新提交小工具
- 前言
- 使用说明
- 必要前提
- 源码
- 参数说明
- 感谢
前言
Unity开发时每次都要到文件夹中操作SVN,做了一个小工具能够在Editor中直接操作。
使用说明
必要前提
前提是要安装好SVN,在文件夹右键能够看到安装的SVN
源码
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;/// <summary>
/// 每次打开文件夹操作太麻烦,所以GUI比较方便
/// </summary>
public class SVNHelper : EditorWindow
{[MenuItem("SVN Helper/自信更新 CertainUpdate", false, 1)]static void SVNCertainUpdate(){ProcessCommand("TortoiseProc.exe", " /command:update /path:" + SVNProjectPath + " /closeonend:3");}/// <summary>/// 提交当前项目的SVN/// </summary>[MenuItem("SVN Helper/提交 Commit")]static void SVNCommit(){List<string> pathList = new List<string>();string basePath = SVNProjectPath + "/Assets";pathList.Add(basePath);//pathList.Add(SVNProjectPath + "/ProjectSettings");string commitPath = string.Join("*", pathList.ToArray());ProcessCommand("TortoiseProc.exe", "/command:commit /path:" + commitPath);}[MenuItem("SVN Helper/更新 Update")]static void SVNUpdate(){ProcessCommand("TortoiseProc.exe", "/command:update /path:" + SVNProjectPath + " /closeonend:0");}[MenuItem("SVN Helper/清理 CleanUp")]static void SVNCleanUp(){ProcessCommand("TortoiseProc.exe", "/command:cleanup /path:" + SVNProjectPath);}[MenuItem("SVN Helper/记录 Log")]static void SVNLog(){ProcessCommand("TortoiseProc.exe", "/command:log /path:" + SVNProjectPath);}/// <summary>/// 当前项目路径/// </summary>static string SVNProjectPath{get{System.IO.DirectoryInfo parent = System.IO.Directory.GetParent(Application.dataPath);return parent.ToString();}}public static void ProcessCommand(string command, string argument){// 创建进程启动信息对象System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(command);// 设置进程启动参数info.Arguments = argument;info.CreateNoWindow = false;info.ErrorDialog = true;info.UseShellExecute = true;// 如果使用shell执行,则不重定向标准输入、输出和错误if (info.UseShellExecute){info.RedirectStandardOutput = false;info.RedirectStandardError = false;info.RedirectStandardInput = false;}else{info.RedirectStandardOutput = true;info.RedirectStandardError = true;info.RedirectStandardInput = true;info.StandardOutputEncoding = System.Text.UTF8Encoding.UTF8;info.StandardErrorEncoding = System.Text.UTF8Encoding.UTF8;}// 启动进程System.Diagnostics.Process process = System.Diagnostics.Process.Start(info);if (!info.UseShellExecute){Debug.Log(process.StandardOutput);Debug.Log(process.StandardError);}// 等待进程退出并关闭进程process.WaitForExit();process.Close();}
}
参数说明
命令 | 说明 |
---|---|
:about | 显示关于对话框。如果没有给命令也会显示。 |
:log | 打开日志对话框,/path 指定了显示日志的文件或目录,另外还有三个选项可以设置: /startrev:xxx、/endrev:xxx和/strict |
:checkout | 打开检出对话框,/path指定了目标路径,而/url制定了检出的URL。 |
:import | 打开导入对话框,/path 指定了数据导入路径。 |
:update | 将工作副本的/path更新到HEAD,如果给定参数/rev,就会弹出一个对话框询问用户需要更新到哪个修订版本。为了防止指定修订版本号/rev:1234的对话框,需要选项/nonrecursive和/ignoreexternals。 |
:commit | 打开提交对话框,/path 指定了目标路径或需要提交的文件列表,你也可以使用参数 /logmsg 给提交窗口传递预定义的日志信息,或者你不希望将日志传递给命令行,你也可以使用/logmsgfile:path,path 指向了保存日志信息的文件。为了预先填入bug的ID(如果你设置了集成bug追踪属性),你可以使用/bugid:"the bug id here"完成这个任务。 |
:add | 将/path的文件添加到版本控制。 |
:revert | 恢复工作副本的本地修改,/path说明恢复哪些条目。 |
:cleanup | 清理中断和终止的操作,将工作副本的/path解锁。 |
:resolve | 将/path指定文件的冲突标示为解决,如果给定/noquestion,解决不会向用户确认操作。 |
:repocreate | 在/path创建一个版本库。 |
:switch | 打开选项对话框。/path 指定目标目录。 |
:export | 将/path的工作副本导出到另一个目录,如果/path指向另一个未版本控制目录,对话框会询问要导出到/path的URL。 |
:mergeOpens | 合并对话框。/path指定目标目录。对于合并修订范围,可以使用以下选项:/fromurl:URL、/revrange:string。对于合并两个存储库树,可以使用以下选项:/fromurl:URL、/tourl:URL、/fromrev:xxx和/torev:xxx。这些预先填充合并对话框中的相关字段。 |
:mergeall | 打开“全部合并”对话框。/path指定目标目录。 |
:copy | 打开分支/标记对话框。/path是要从中分支/标记的工作副本。/url是目标url。您还可以指定/logmsg开关将预定义的日志消息传递到分支/标记对话框。或者,如果您不想在命令行上传递日志消息,请使用/logmsgfile:path,其中path指向包含日志消息的文件。 |
:settings | 打开设置对话框。 |
:remove | 从版本控制里移除/path中的文件。 |
:rename | 重命名/path的文件,会在对话框中询问新文件,为了防止一个步骤中询问相似文件,传递/noquestion。 |
:diff | 启动TortoiseSVN设置中指定的外部差异程序。/path指定第一个文件。如果设置了选项/path2,则diffprogram将使用这两个文件启动。如果省略/path2,则在/path中的文件与其BASE之间进行差异。要明确设置愿景编号,请使用/startrev:xxx和/endrev:xxx。如果设置了/chint而未设置/path2,则通过首先将给定的修订归咎于文件来进行差异处理。 |
:showcompare | 根据要比较的URL和修订,这要么显示一个统一的diff(如果设置了unified选项),要么显示具有已更改文件列表的对话框,或者如果URL指向文件,则启动这两个文件的diff查看器。必须指定选项url1、url2、revision1和revision2。选项pegreview、ignorecentry、责备和统一是可选的。 |
:conflicteditor | 使用/path中冲突文件的正确文件启动TortoiseSVN设置中指定的冲突编辑器。 |
:relocate | 打开重定位对话框,/path指定了重定位的工作副本路径。 |
:help | 打开帮助文件 |
:repostatus | 打开为修改检出对话框,/path 指定了工作副本目录。 |
:repobrowser | 启动存储库浏览器对话框,指向/path中给定的工作副本的URL,或者/path直接指向URL。另外一个选项/rev:xxx可用于指定存储库浏览器应显示的修订版。如果省略/rev:xxx,则默认为HEAD。如果/path指向URL,/projectpropertiespath:path/to/wc指定读取和使用项目属性的路径。 |
:ignore | 将/path中的对象加入到忽略列表,也就是将这些文件添加到 svn:ignore 属性。 |
:blame | 为 /path 选项指定的文件打开追溯对话框。如果设置了 /startrev 和 /endrev 选项,不会显示询问追溯范围对话框,直接使用这些选项中的版本号。如果设置了 /line:nnn 选项,TortoiseBlame 会显示指定行数。也支持 /ignoreeol,/ignorespaces 和 /ignoreallspaces 选项。 |
:cat | 将/path指定的工作副本或URL的文件保存到/savepath:path,修订版本号在/revision:xxx,这样可以得到特定修订版本的文件。 |
:createpatch | 创建/path下的补丁文件。 |
:revisiongraph | 显示/path目录下的版本变化图。 |
:lock | 锁定/path中给定目录中的一个文件或所有文件。将显示“锁定”对话框,以便用户可以为锁定输入注释。 |
:unlock | 解锁/path中给定目录中的一个文件或所有文件。 |
:rebuildiconcache | 重建窗口图标缓存。仅在窗口图标损坏的情况下使用此选项。这样做的一个副作用(无法避免)是桌面上的图标被重新排列。要取消显示消息框,请通过/noquestion。 |
:properties | 显示 /path 给出的路径之属性对话框。 |
感谢
【unity拓展】在unity3d中集成SVN命令(非cmd方式而是打开svn界面方式)
相关文章:
Unity SVN更新提交小工具
Unity SVN更新提交小工具 前言使用说明必要前提源码参数说明 感谢 前言 Unity开发时每次都要到文件夹中操作SVN,做了一个小工具能够在Editor中直接操作。 使用说明 必要前提 前提是要安装好SVN,在文件夹右键能够看到安装的SVN 源码 using System…...
听GPT 讲Rust源代码--compiler(19)
File: rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs 该文件(rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs)是Rust编译器针对MIPS架构上的Linux系统的目标描述文件。它的作用是定义了在这个目标上编译时的一些配置…...
redis单机部署
一、下载redis压缩包tar.gz 官网下载,现在一般用6.x以上版本 二、上传指定目录,解压缩 #假如上传到redis用户的家目录 cd /home/redis tar -zxvf redis-6.2.14.tar.gz 三、进入解压缩目录,进行编译 cd redis-6.2.14 make &&a…...
el-upload上传文件
需求:选中或拖拽文件后,使用http-request属性实现自动上传,并根据后端传回来的结果显示错误和控制fileList的显示,如果后端返回成功,则文件显示在文件列表处,如果后端返回失败,则文件列表不显示…...
算法导论复习——CHP16 贪心算法
定义 每一步都做出当前看来最优的操作。 问题引入——活动选择问题 问题描述 活动选择问题就是对给定的包含n个活动的集合S,在已知每个活动开始时间和结束时间的条件下,从中选出最多可兼容活动的子集合,称为最大兼容活动集合。 不失一般性&a…...
【霹雳吧啦】手把手带你入门语义分割の番外12:U2-Net 源码讲解(PyTorch)—— 网络的搭建
目录 前言 Preparation 一、U2-Net 网络结构图 二、U2-Net 网络源代码 1、model.py (1)ConvBNReLU 类 (2)DownConvBNReLU 类 (3)UpConvBNReLU 类 (4)RSU 类 & RSU4F 类…...
phpstudy面板Table ‘mysql.proc‘ doesn‘t exist解决办法
原因分析:误删了mysql数据库 解决办法如下: 1、停止服务 2、先把mysql文件夹下的data文件夹备份,因为data文件里存有数据库文件。然后再删除data文件。 3、cmd管理员命令进入到mysql中的bin目录下 ,执行mysqld --initialize-…...
网安入门09-Sql注入(绕过方法梳理)
ByPass SQL注入ByPass是指攻击者通过各种手段绕过应用程序中已经实施的SQL注入防御措施,例如输入恶意数据、修改请求头等方式,绕过过滤、转义、限制等操作,从而成功地执行恶意SQL语句。攻击者使用SQL注入ByPass技术可以让应用程序的防御措施…...
本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
客户反馈说mysql启动不了,报错信息: 本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。 查了不少资料,最后分析问题是这样的,手动或者重复安装mysql时,创建了多个…...
2023机器人行业总结,2024机器人崛起元年(具身智能)
2023总结: 1.Chatgpt引爆了通用人工智能,最大的受益者或是机器人,2023年最热门的创业赛道便是人形机器人,优必选更是成为人形机器人上市第一股, 可以说2023年是机器人开启智能化的元年,而2024则将成为机器…...
go 语言中的类型判断
_. ok : interface{}(a).(B)此语句用于判断对象a是否是B类型 也可以判断对象a是否实现了B接口 package mainimport "fmt"type Pet interface {SetName(name string)Name() stringCategory() string } type Dog struct {name string }func (dog *Dog) SetName(name …...
java基于ssm的房源管理系统+vue论文
目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…...
RH850P1X芯片学习笔记-A/D Converter (ADCF)
文章目录 Features of RH850/P1x-C ADCFNumber of UnitsRegister Base AddressClock SupplyInterrupts and DMAHardware ResetExternal Input/Output SignalsVirtual Channel OverviewFunctional OverviewBlock DiagramPhysical Channels, Virtual Channels and Scan Groups Re…...
38 调优kafka
操作系统调优 1.禁止atime更新,减少文件系统的写操作。 mount -o noatime 2.选择高性能的文件系统,如ext4或者XFS 3.swap空间设置,将swappniness设置成很小的一个值比如1~10,防止linux OOM Killer 开启随意杀掉进程。…...
java推荐系统:好友推荐思路
1.表的设计 表里面就两个字段,一个字段是用户id,另外一个字段是好友id,假如A跟B互为好友,那在数据库里面就会有两条数据 2.推荐好友思路 上面的图的意思是:h跟a的互为好友,a跟b,c&am…...
java: 写入数据到HBase
一、添加依赖 <dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0</version></dependency><dependency><groupId>org.apache.hbase</groupId><art…...
机器学习-基于Word2vec搜狐新闻文本分类实验
机器学习-基于Word2vec搜狐新闻文本分类实验 实验介绍 Word2vec是一群用来产生词向量的相关模型,由Google公司在2013年开放。Word2vec可以根据给定的语料库,通过优化后的训练模型快速有效地将一个词语表达成向量形式,为自然语言处理领域的应…...
5.vue学习笔记(数组变化的侦测+计算属性+Class绑定)
文章目录 1.数组变化的侦测1.1.变更方法1.2.替换一个数组 2.计算属性计算属性缓存vs方法 3.Class绑定3.1.绑定对象3.2.多个对象的绑定形式3.3.绑定数组3.4.数组与对象 1.数组变化的侦测 1.1.变更方法 vue能够侦听响应式数组的变更方法,并在它们被调用时出发相关的…...
Java十种经典排序算法详解与应用
数组的排序 前言 排序概念 排序是将一组数据,依据指定的顺序进行排列的过程。 排序是算法中的一部分,也叫排序算法。算法处理数据,而数据的处理最好是要找到他们的规律,这个规律中有很大一部分就是要进行排序,所以需…...
git常用命令及概念对比
查看日志 git config --list 查看git的配置 git status 查看暂存区和工作区的变化内容(查看工作区和暂存区有哪些修改) git log 查看当前分支的commit 记录 git log -p commitID详细查看commitID的具体内容 git log -L :funcName:fileName 查看file…...
57、python 环境搭建[for 计算机视觉从入门到调优项目]
从本节开始,进入到代码实战部分,在开始之前,先简单进行一下说明。 代码实战部分,我会默认大家有一定的编程基础,不需要对编程很精通,但是至少要会 python 的基础语法、python 环境搭建、pip 的使用;C++ 要熟悉基础知识和基础语法,会根据文章中的步骤完成 C++ 的环境搭…...
K8S-应用访问
1 service对象定位 2 Service 实践 手工创建Service 根据应用部署资源对象,创建SVC对象 kubectl expose deployment nginx --port80 --typeNodePortyaml方式创建Service nginx-web的service资源清单文件 apiVersion: v1 kind: Service metadata:name: sswang-ngi…...
商智C店H5性能优化实战
前言 商智C店,是依托移动低码能力搭建的一个应用,产品面向B端商家。随着应用体量持续增大,考虑产品定位及用户体验,我们针对性能较差页面做了一次优化,并取得了不错的效果,用户体验值(UEI&…...
Unity 使用 Plastic 同步后,正常工程出现错误
class Newtonsoft.Json.Linq.JToken e CS0433:类型"JToken"同时存在于"Newtonsoft.Json.Net20,Version3.5.0.0,Cultureneutral,,PublicKeyToken30ad4fe6b2a6aeed"和"Newtonsoft.Json, Version12.0.0.0,Cultureneutral,PublicKeyToken30ad4fe6b2a6aeed…...
详细设计文档该怎么写
详细设计文档是软件开发过程中的一个关键阶段,它为每个软件模块的实现提供了详细说明。这份文档通常在概要设计阶段之后编写,目的是指导开发人员如何具体实现软件的功能。以下是撰写详细设计文档的步骤和一些示例: 步骤和组成部分 引言 目的…...
集团企业OA办公协同平台建设方案
一、企业对协同应用的需求分析 实现OA最核心、最基础的应用 业务流转:收/发文、汇报、合同等各种审批事项的业务协作与办理 信息共享:规章制度、业务资料、共享信息资源集中存储、统一管理 沟通管理:电子邮件、手机短信、通讯录、会议协作等…...
Spring Security之认证
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 Spring Security之认证 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是Spring…...
智能语音机器人NXCallbot
受出海公司业务全球化的影响,智能客服逐渐从便捷应用变为市场刚需。新基建七大领域中,人工智能及场景应用的基础建设是最核心的领域,而智能客服作为商业化实际应用的核心场景之一,能提升企业运营效率,为行业客户赋能。…...
Vue 3中toRaw和markRaw的使用
Vue 3的响应性系统 在Vue 3中,响应性系统是构建动态Web应用程序的关键部分。Vue使用响应性系统来跟踪依赖关系,使数据更改能够自动更新视图。这使得Vue应用程序在数据变化时能够高效地更新DOM。Vue 3引入了新的Proxy对象来替代Vue 2中的Object.definePro…...
移动神器RAX3000M路由器不刷固件变身家庭云之三:外网访问家庭云
本系列文章: 移动神器RAX3000M路由器变身家庭云之一:开通SSH,安装新软件包 移动神器RAX3000M路由器变身家庭云之二:安装vsftpd 移动神器RAX3000M路由器变身家庭云之三:外网访问家庭云 移动神器RAX3000M路由器变身家庭云…...
电子配件 技术支持 东莞网站建设/谷歌搜索入口 镜像
编程中往往会有需要对某个list的值进行查询的需求,而将一个list作为查询条件,我所知道的有两种方法: 1.for循环遍历,每次循环一个sql,每次查list中一个条件的数据,最后累加 ...(最基础的&#x…...
wordpress删除文章/网络推广平台都有哪些
终于到了神经网络部分,其实在前面我试着用GPU跑了逻辑回归,似乎速度提升不多,深度学习部分再试试看。1. 引入必须库&设定超参数一样的套路import torchimport torchvisionimport torchvision.transforms as transformsimport torch.nn as…...
境外网站在国内做镜像/今天头条新闻100条
main.js是我们的主程序,这个主程序首先创建了我们的vue实例。这个实例然后就挂载到index.html中。意思就是index.html是展示内容的一个平台,里面的内容是通过main.js的执行展示出来的。 项目运行 项目的运行入口index.html 为什么index.html是项目的…...
discuz 科技网站模板/手机网站模板下载
简介:KubeSphere是一个灵活的轻量级容器PaaS平台,通过了CNCF一致性认证,100%开源,由社区驱动与开发。KubeSphere可以部署并运行在任何基础架构以及所有版本兼容的Kubernetes集群之上,包括虚拟机、物理机、数据中心、公有云和混合云…...
做微信视频的网站/加盟
hello,大家好,今天豆皮范儿给大家带来了贝塞尔曲线推导和应用,优美的贝塞尔曲线想起了大学时候老师在给我们讲如何实现,如何推导,如何实现和应用。本来也来详细介绍一下,纯纯的干货~作者&#x…...
做网站的流程是什么/百度推广客户端app
好多随笔都是栽过的坑,然而谁不是这么过来的呢O(∩_∩)O~~ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 其实之…...