当前位置: 首页 > news >正文

Unity SVN更新提交小工具

Unity SVN更新提交小工具

  • 前言
  • 使用说明
    • 必要前提
    • 源码
    • 参数说明
  • 感谢

前言

Unity开发时每次都要到文件夹中操作SVN,做了一个小工具能够在Editor中直接操作。
Editor中直接操作SVN

使用说明

必要前提

前提是要安装好SVN,在文件夹右键能够看到安装的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&#xff0c;做了一个小工具能够在Editor中直接操作。 使用说明 必要前提 前提是要安装好SVN&#xff0c;在文件夹右键能够看到安装的SVN 源码 using System…...

听GPT 讲Rust源代码--compiler(19)

File: rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs 该文件&#xff08;rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs&#xff09;是Rust编译器针对MIPS架构上的Linux系统的目标描述文件。它的作用是定义了在这个目标上编译时的一些配置…...

redis单机部署

一、下载redis压缩包tar.gz 官网下载&#xff0c;现在一般用6.x以上版本 二、上传指定目录&#xff0c;解压缩 #假如上传到redis用户的家目录 cd /home/redis tar -zxvf redis-6.2.14.tar.gz 三、进入解压缩目录&#xff0c;进行编译 cd redis-6.2.14 make &&a…...

el-upload上传文件

需求&#xff1a;选中或拖拽文件后&#xff0c;使用http-request属性实现自动上传&#xff0c;并根据后端传回来的结果显示错误和控制fileList的显示&#xff0c;如果后端返回成功&#xff0c;则文件显示在文件列表处&#xff0c;如果后端返回失败&#xff0c;则文件列表不显示…...

算法导论复习——CHP16 贪心算法

定义 每一步都做出当前看来最优的操作。 问题引入——活动选择问题 问题描述 活动选择问题就是对给定的包含n个活动的集合S&#xff0c;在已知每个活动开始时间和结束时间的条件下&#xff0c;从中选出最多可兼容活动的子集合&#xff0c;称为最大兼容活动集合。 不失一般性&a…...

【霹雳吧啦】手把手带你入门语义分割の番外12:U2-Net 源码讲解(PyTorch)—— 网络的搭建

目录 前言 Preparation 一、U2-Net 网络结构图 二、U2-Net 网络源代码 1、model.py &#xff08;1&#xff09;ConvBNReLU 类 &#xff08;2&#xff09;DownConvBNReLU 类 &#xff08;3&#xff09;UpConvBNReLU 类 &#xff08;4&#xff09;RSU 类 & RSU4F 类…...

phpstudy面板Table ‘mysql.proc‘ doesn‘t exist解决办法

原因分析&#xff1a;误删了mysql数据库 解决办法如下&#xff1a; 1、停止服务 2、先把mysql文件夹下的data文件夹备份&#xff0c;因为data文件里存有数据库文件。然后再删除data文件。 3、cmd管理员命令进入到mysql中的bin目录下 &#xff0c;执行mysqld --initialize-…...

网安入门09-Sql注入(绕过方法梳理)

ByPass SQL注入ByPass是指攻击者通过各种手段绕过应用程序中已经实施的SQL注入防御措施&#xff0c;例如输入恶意数据、修改请求头等方式&#xff0c;绕过过滤、转义、限制等操作&#xff0c;从而成功地执行恶意SQL语句。攻击者使用SQL注入ByPass技术可以让应用程序的防御措施…...

本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

客户反馈说mysql启动不了&#xff0c;报错信息&#xff1a; 本地计算机 上的 My5OL808 服务启动后停止&#xff0c;某些服务在未由其他服务或程序使用时将自动停止。 查了不少资料&#xff0c;最后分析问题是这样的&#xff0c;手动或者重复安装mysql时&#xff0c;创建了多个…...

2023机器人行业总结,2024机器人崛起元年(具身智能)

2023总结&#xff1a; 1.Chatgpt引爆了通用人工智能&#xff0c;最大的受益者或是机器人&#xff0c;2023年最热门的创业赛道便是人形机器人&#xff0c;优必选更是成为人形机器人上市第一股&#xff0c; 可以说2023年是机器人开启智能化的元年&#xff0c;而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更新&#xff0c;减少文件系统的写操作。 mount -o noatime 2.选择高性能的文件系统&#xff0c;如ext4或者XFS 3.swap空间设置&#xff0c;将swappniness设置成很小的一个值比如1&#xff5e;10&#xff0c;防止linux OOM Killer 开启随意杀掉进程。…...

java推荐系统:好友推荐思路

1.表的设计 表里面就两个字段&#xff0c;一个字段是用户id&#xff0c;另外一个字段是好友id&#xff0c;假如A跟B互为好友&#xff0c;那在数据库里面就会有两条数据 2.推荐好友思路 上面的图的意思是&#xff1a;h跟a的互为好友&#xff0c;a跟b&#xff0c;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是一群用来产生词向量的相关模型&#xff0c;由Google公司在2013年开放。Word2vec可以根据给定的语料库&#xff0c;通过优化后的训练模型快速有效地将一个词语表达成向量形式&#xff0c;为自然语言处理领域的应…...

5.vue学习笔记(数组变化的侦测+计算属性+Class绑定)

文章目录 1.数组变化的侦测1.1.变更方法1.2.替换一个数组 2.计算属性计算属性缓存vs方法 3.Class绑定3.1.绑定对象3.2.多个对象的绑定形式3.3.绑定数组3.4.数组与对象 1.数组变化的侦测 1.1.变更方法 vue能够侦听响应式数组的变更方法&#xff0c;并在它们被调用时出发相关的…...

Java十种经典排序算法详解与应用

数组的排序 前言 排序概念 排序是将一组数据&#xff0c;依据指定的顺序进行排列的过程。 排序是算法中的一部分&#xff0c;也叫排序算法。算法处理数据&#xff0c;而数据的处理最好是要找到他们的规律&#xff0c;这个规律中有很大一部分就是要进行排序&#xff0c;所以需…...

git常用命令及概念对比

查看日志 git config --list 查看git的配置 git status 查看暂存区和工作区的变化内容&#xff08;查看工作区和暂存区有哪些修改&#xff09; git log 查看当前分支的commit 记录 git log -p commitID详细查看commitID的具体内容 git log -L :funcName:fileName 查看file…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...