TortoiseSVN 简明使用

本文介绍了版本控制工具SubVersion的基本使用方法,包括安装配置、项目下载、提交修改等内容,并详细讲解了如何利用TortoiseSVN进行分支管理和标签操作。

先介绍下什么是 SubVersion,Subversion是新一代的版本控制工具,不仅可以管理程序源代码,也可以应用于其他协作管理数据的工作。

安装

你可以从 TortoiseSVN 官方站点下载最新版的 TortoiseSVN,中文汉化包可以从 SubVersion 中文站下载。下载之后,点击安装包,一路 next 下去即可。

tortoisesvn-installation

 

下载项目

在你硬盘的适当的位置,点击邮件,选择 SVN Checkout…

tortoisesvn-checkout

然后就会弹出一个 Checkout 选项对话框,输入远程项目目录和本地工作目录(这个得找建立SVNServer的人要)tortoisesvn-checkout-option

点击 OK,就会弹出一个远程服务器要求验证的对话框:

tortoisesvn-checkout-input-password

 

 

输入用户名和密码之后,点击 OK 就开始下载:

tortoisesvn-checkouting

提交修改

 

 

在你做了修改之后,你可以在项目文件夹下点击右键或者你修改的文件下点击右键,选择 SVN Commit…,这两者的区别在于,第一个可以一次提交你所做所有文件的修改,而第二个只是提交你所选的文件。

tortoisesvn-update-commit

点击 Commit 之后,就会弹出一个让你输入更改 log 的对话框:

tortoisesvn-commit

输入你所作的修改,然后点击 OK,就会开始向远程服务器提交修改:

tortoisesvn-commiting

导入项目

如果翻译插件或者写了插件,想提交到远程服务器,选择该文件夹,点击右键,选择 TortoiseSVN => Import…

tortoisesvn-import

然后就会弹出一个导入选项对话框,属于远程服务器地址和注释,如果你前面没有保存密码,这里可能再次输入你在 Google Code 的密码。点击 OK,本地文件就会被导入远程服务器。

tortoisesvn-importing

 

注:如果SVN服务器上的文件夹未存在,则你可以遵照“导入操作”进行导入文件,上传到SVN服务器。以后要修改SVN的文件时,你得首先创建新的文件夹,然后“下载项目”到此空文件夹。

你只能将文件取出到一个空目录里。如果你想取出刚汇入的文件,Subversion将报错。你只能将文件取出到另一个目录或先删除已经存在的源文件再执行取出。

 

 

 

 

经验小结: 
      1.如果操作的文件之前还未提交,而你又想把文件提交到新的分支上,记得一定要选择切换 
      2.SVN分支的管理实际上就是把不同的分支用不同的文件保存,因此你在取得新版本的时候会发现,不同分支的最新文件也会被获取下来。


      创建tag操作,相当于把当前的代码版本复制一份到其他地方,然后以这个地方为出发点进行新的开发,与原来位置的版本互不干扰。 
      对于branches、tags、trunk这三个目录,并不是subversion必需的,而是被总结的一种良好的团队开发习惯,其使用方法为: 
      1.开发者提交所有的新特性到主干。 每日的修改提交到/trunk:新特性,bug修正和其他。 
      2.这个主干被拷贝 (注:拷贝的方法-单击“鼠标右键”->TortoiseSVN->Branch/tags...->To URL中路径/branches/1.0) 到“发布”分支。 当小组认为软件已经做好发布的准备(如,版本1.0)然后/trunk会被拷贝到/branches/1.0。

      2.1此时本地的branches文件夹中尚未有trunk的拷贝,必须与服务器同步下
      3.项目组继续并行工作,一个小组开始对分支进行严酷的测试,同时另一个小组在/trunk继续新的工作(如,准备2.0),如果一个bug在任何一个位置被发现,错误修正需要来回运送 (即:当trunk中的文件进行修改后,测试组人员在branches中可以通过:单击“鼠标右键”->TortoiseSVN->Switch->To URL中的地址一般会自动指向trunk文件夹,示意接下来将同步trunk文件夹下修改过的文件到服务器及本地的branches文件夹) 。然而这个过程有时候也会结束,例如分支已经为发布前的最终测试“停滞”了。 
      4.分支已经作了标签并且发布,当测试结束,/branches/1.0作为引用快照已经拷贝到/tags/1.0.0,这个标签被打包发布给客户。

      4.1分支作标签发布到tag文件夹方法和trunk文件夹拷贝到branches/1.0做法相同
      5.分支多次维护。当继续在/trunk上为版本2.0工作,bug修正继续从/trunk运送到/branches/1.0,如果积累了足够的bug修正,管理部门决定发布1.0.1版本:拷贝/branches/1.0到/tags/1.0.1,标签被打包发布。 
  一般建立最初的repository时,就建好这三个目录,把所有代码放入/trunk中,如:要将project1目录下的代码导入repository,project1的结构就是:project1/branches,project1/tags,project1/trunk,project1/trunk/food.c,project1/trunk/egg.pc……,然后将project1目录导入repository,建立最初的资料库。然后export回project1,作为本地工作目录。

      6..多人单项目,三个文件夹的作用又不一样了:
           单人维护一个主流版本.放于trunk目录里面;
           多人开发通过单人或者是多人维护代表不同的模块.每个模块就是一个分支brances;

           在一定时期,各模块都有初步版本,则放于trunk中,然后由项目主管进行模块合并成整体,给测试人员检测;
           某个时期出现了一个稳定版本,就标记为一个发布版本,tags来做标记.

分支/标记

 

版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,开发品的分支就可以混合回主分支里(主干线).

版本控制系统的另一个特性是能够标记特殊的版本(例如某个发布版本),所以你可以在任何时候重新建立一个特定的构件和环境。这个过程被称作标记

Subversion does not have special commands for branching or tagging, but uses so-called “cheap copies” instead. Cheap copies are similar to hard links in Unix, which means that instead of making a complete copy in the repository, an internal link is created, pointing to a specific tree/revision. As a result branches and tags are very quick to create, and take up almost no extra space in the repository.

创建一个分支或标记

如果你用推荐的目录结构导入了一个工程,那么创建分支或标记就非常简单:

图 5.33. 分支/标记对话框


在你当前的工作副本中给你你想要复制的分支或标记选择一个目录,然后选择命令TortoiseSVN → 分支/标记...

默认的目标URL将会是你当前工作副本所处的源URL。你必须给你的分支/标记编辑一个新路径。来取代

http://svn.collab.net/repos/ProjectName/trunk

你可以使用这样的设置

http://svn.collab.net/repos/ProjectName/tags/Release_1.10

如果你忘记了你上一次使用的命名约定,可以用鼠标右键打开版本库浏览器来察看已经存在的版本库结构。

现在你必须选择要复制的源位置。在这里你有三个设置选项:

版本库中的最新版本

新分支直接从仓库中的最新版本里复制出来。不需要从你的工作副本中传输任何数据,这个分支的建立是非常快的。

在版本库中指定具体的版本

在仓库中直接复制建立一个新分支同时你也可以选择一个旧版本。假如在你上周发布了项目时忘记了做标记,这将非常有用。如果你记不起来版本号,通过点击鼠标右键来显示版本日志,同时从这里选取版本号。和上次一样不需要从你的工作副本中传输任何数据,这个分支建立起来是非常快的。

工作副本

新的分支是一个完全等同于你的本地工作副本的一个副本。如果你更新了一些文件到你的工作副本的某个旧版本里,或者你在本地做出了修改,这些改变将准确无误的进入副本中。自然而然地这种综合的标记会包含正在从工作副本传输到版本库的数据,如果这些数据还不存在的话。

如果你想把你的工作副本自动切换到最新创建的分支,使用转换工作副本至新分支/标记 选择框.但是如果你打算这么做,首先要确认你的工作副本没有被修改。如果有修改的话,当你转换后这些修改将会混合进你的工作副本分支里。

按下确认提交新副本到版本库中。别忘了提供一条日志信息。需要注意的是这个副本是在版本库内部创建的。

第三方支付功能的技术人员;尤其适合从事电商、在线教育、SaaS类项目开发的工程师。; 使用场景及目标:① 实现微信与支付宝的Native、网页/APP等主流支付方式接入;② 掌握支付过程中关键的安全机制如签名验签、证书管理与敏感信息保护;③ 构建完整的支付闭环,包括下单、支付、异步通知、订单状态更新、退款与对账功能;④ 通过定时任务处理内容支付超时与概要状态不一致问题:本文详细讲解了Java,提升系统健壮性。; 阅读应用接入支付宝和建议:建议结合官方文档与沙微信支付的全流程,涵盖支付产品介绍、开发环境搭建箱环境边学边练,重点关注、安全机制、配置管理、签名核心API调用及验签逻辑、异步通知的幂等处理实际代码实现。重点与异常边界情况;包括商户号与AppID获取、API注意生产环境中的密密钥与证书配置钥安全与接口调用频率控制、使用官方SDK进行支付。下单、异步通知处理、订单查询、退款、账单下载等功能,并深入解析签名与验签、加密解密、内网穿透等关键技术环节,帮助开发者构建安全可靠的支付系统。; 适合人群:具备一定Java开发基础,熟悉Spring框架和HTTP协议,有1-3年工作经验的后端研发人员或希望快速掌握第三方支付集成的开发者。; 使用场景及目标:① 实现微信支付Native模式与支付宝PC网页支付的接入;② 掌握支付过程中核心的安全机制如签名验签、证书管理、敏感数据加密;③ 处理支付结果异步通知、订单状态核对、定时任务补偿、退款及对账等生产级功能; 阅读建议:建议结合文档中的代码示例与官方API文档同步实践,重点关注支付流程的状态一致性控制、幂等性处理和异常边界情况,建议在沙箱环境中完成全流程测试后再上线。
matlab2python 这是一个Python脚本,用于将Matlab文件或代码行转换为Python。此项目处于alpha阶段。 该实现严重依赖于Victor Leikehman的SMOP项目。 当前实现围绕SMOP构建,具有以下差异: 力图生成不依赖libsmop的代码,仅使用如numpy这样的标准Python模块。 使用常见缩写如np而非全称numpy。 尝试重排数组和循环索引,从0开始而不是1。 不使用来自libsmop的外部类matlabarray和cellarray。 增加了对Matlab类的基本支持,类体中声明的属性在构造函数中初始化。 因上述改动,产出代码“安全性较低”,但可能更接近用户自然编写的代码。 实现相对直接,主要通过替换SMOP使用的后端脚本,这里称为smop\backend_m2py.py。 一些函数替换直接在那里添加。 额外的类支持、导入模块以及其他微调替换(或说是黑客技巧)在matlabparser\parser.py文件中完成。 安装 代码用Python编写,可按如下方式获取: git clone https://github.com/ebranlard/matlab2python cd matlab2python # 安装依赖项 python -m pip install --user -r requirements.txt # 让包在任何目录下都可用 python -m pip install -e . # 可选:运行测试 pytest # 可选:立即尝试 python matlab2python.py tests/files/fSpectrum.m -o fSpectrum.py 使用方法 主脚本 存储库根目录下的主脚本可执行,并带有一些命令行标志(部分直接取自SMOP)。要将文件file.m转换为file.py,只需输入:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值