SVN常用命令(WINDOWS)
Windows下SVN使用指南
10.查看日情。使用以下命令:
svn log
svn merge 仓库URL/分支名
8.解决冲突
当多个开发者对同一个文件进行了更改并提交后,可能会出现冲突。SVN会自动检测到冲突,并将冲突的文件标记出来。你需要手动解决这些冲突。使用以下命令来查看冲突的文件:
svn status
9.版本回退
如果你不满意一些版本的更改,你可以回退到之前的版本。使用以下命令:
svn update
6.提交更改
当你对项目进行了更改,并且希望将这些更改提交到仓库中时,使用以下命令:
7.分支和合并
SVN允许你创建分支来独立开发一些功能或解决一些问题。要创建分支,使用以下命令:
svn copy 仓库URL 仓库URL/分支名 -m "创建分支"
当分支开发完成后,你可以将其合并回主干。使用以下命令:
svnadmin create 仓库路径
3.导入项目到仓库
将你的项目文件导入到仓库中,使用以下命令:
svn import 本地项目路径 仓库URL -m "导入项目"
4.检出项目
要开始使用SVN,你需要从仓库中检出项目。使用以下命令:
svn checkout 仓库URL 本地目录
5.更新项目
当其他人对项目进行了更改,并提交到仓库中时,你需要将这些更改更新到你的本地项目中。使用以下命令:
Windows下SVN使用指南
SVN是一个开源的版本控制系统,它可以帮助开发团队管理和控制项目的版本。它是以集中化的方式工作,意味着所有的文件和版本都存储在一个中央仓库中。在Windows操作系统下,使用SVN非常方便,以下是一个SVN的使用指南。
SVN使用指南——Windows环境版
内 容 概 要
• • • • • • 问题与案例 SVN简介 应用环境 客户端安装 简单应用 复杂应用
问题与案例(一)
• 电脑发生故障,文件没有备份而丢失了 • 由于人员离职,导致某些资料丢失了 • 我怎么知道手头的公共资料是不是最新版 呢? • 想要追溯几个月前的某个状态,却发现那 个版本的文件已经被当作垃圾删除了 • 每天要花费很多时间来向别人提供需要共 享的资料
– 在客户端新建一个文件夹用于存放下载的数据 – 在新建文件夹上点右键,选择“SVN检出…”
Back
检出(二)
– 在弹出窗口的“版本库URL”处填入版本库的访 问地址,如:http://10.50.22.35:8080/svn/XXX 部门/XXXX项目/ – 点“确定”开始从SVN服务器下载数据
– 在受SVN控制的某层文件夹或文件 上点右键,选择“TortoiseSVN-显 示日志”
Back
复原(回滚)(二)
– 在弹出的日 志窗口中, 右键点击要 复原的版本, 选择“复原 到此版本” – 复原结束后, 执行“提交” 操作,将此 版本作为版 本库的最新 版本
Back
冲突及解决(一)
• 冲突的产生:
Back
增加(二)
– 如果“增加”是对文件夹进行操作,则会弹出 窗口列出该文件夹下未受控的文件,点击“确 定”将其纳入SVN控制
– “增加”后文件图标从
变成
• “增加”仅是对客户端的文件进行标注, 并不上传到服务器,需要执行“提交”操 作才会上传
Back
删除(一)
• “删除”用于从当前版本中删除文件或文件 夹
将新文件纳入 SVN的控制
Back
Windows下SVN的备份方案
Windows下SVN的备份方案版本控制最关键的一件事是保证数据的安全性,不能因为磁盘损坏,程序故障造成库的无法挽回的错误,为此必需制定较完备的备份策略.在subversion中,我们有三种备份方式:完全备份,增量备份和同步版本库.1,完全备份:最常见和简单的备份就是直接使用拷贝命令,将版本库目录拷贝到备份目录上,就可以了.但是这样不是很安全的方式,因为如果在拷贝时版本库发生变化,将会造马备份的结果不够准确,失去备份的作用,为此xubversion 提供了"svnadmin hotcopy"的命令,可以防止这种问题.比如有如下的版本库:D:/svnroot├─project1│├─conf│├─dav│├─db││├─revprops││├─revs││└─transactions│├─hooks│└─locks└─project2├─conf├─dav├─db│├─revprops│├─r evs│└─transactions├─hooks└─locks如果要把project1备份到D:/svnrootbackup目录下,只需要运行:svnadmin hotcopy d:/svnroot/project1 d:/svnrootbackup/project1ps:如果我们目录下有很多版本库,需要为每个版本库写这样一条语句备份,必需想办法优化这个过程.为此,建立以下的2个bat文件.simplebackup.bat:@echo 正在备份版本库%1......@%SVN_HOME%/bin/svnadmin hotcopy %1 %BACKUP_DIRECTORY%/%2@echo 版本库%1成功备份到了%2!backup.bat:echo offrem Subversion的安装目录set SVN_HOME="D:/Subversion"rem 所有版本库的父目录set SVN_ROOT=D:/svnrootrem 备份的目录set BACKUP_SVN_ROOT=D:/svnrootbakset BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%/%date:~0,10%if exist %BACKUP_DIRECTORY% goto checkBackecho 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log mkdir %BACKUP_DIRECTORY%rem 验证目录是否为版本库,如果是则取出名称备份for /r %SVN_ROOT% %%I in (.) do @if exist"%%I/conf/svnserve.conf" %SVN_ROOT%/simplebackup.bat "%%~fI" %%~nI goto end:checkBackecho 备份目录%BACKUP_DIRECTORY%已经存在,请清空。
svn 右键菜单
svn 右键菜单svn 右键菜单收藏TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具。
通过使用它,我们可以可视化的管理我们的版本库。
不过由于它只是一个客户端,所以它不能对版本库进行权限管理。
TortoiseSVN不是一个独立的窗口程序,而是集成在windows右键菜单中,使用起来比较方便。
TortoiseSVN每个菜单项都表示什么意思01、SVN Checkout(SVN取出)点击SVN Checkout,弹出检出提示框,在URL of repository 输入框中输入服务器仓库地址,在Checkout directory输入框中输入本地工作拷贝的路径,点击确定,即可检出服务器上的配置库。
02、SVN Update(SVN更新)如果配置库在本地已有工作拷贝,则取得最新版本只是执行SVN Update即可,点击SVN Update,系统弹出更新提示框,点击确定,则把服务器是最新版本更新下来03、Import(导入)选择要提交到服务器的目录,右键选择TortoiseSVN----Import,系统弹出导入提示框,在URL of repository输入框中输入服务器仓库地址,在Import Message输入框中输入导入日志信息,点击确定,则文件导入到服务器仓库中。
04、Add(加入)如果有多个文件及文件夹要提交到服务器,我们可以先把这些要提交的文件加入到提交列表中,要执行提交操作,一次性把所有文件提交,如图,可以选择要提交的文件,然后点击执行提交(SVN Commit),即可把所有文件一次性提交到服务器上05、Resolving Conflicts(解决冲突)有时你从档案库更新文件会有冲突。
冲突产生于两人都修改文件的某一部分。
解决冲突只能靠人而不是机器。
当产生冲突时,你应该打开冲突的文件,查找以<<<<<<<开始的行。
Windows下SVN服务器的详细安装配置手册
1、Windows下SVN服务器的安装配置SVN全称Subversion,是一款开源的版本控制系统,支持在本地访问或通过网络访问数据库和文件系统存储库。
不但提供了常见的比较、修补、标记、提交、回复和分支等功能,SVN还增加了追踪移动和删除的能力。
此外,它支持非ASCII文本和二进制数据,所有这一切都使SVN不仅对传统的编程任务非常有用,同时也适用于Web开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。
1.1 SVN的基本原理SVN是一种集中的分享信息的系统,它的核心是版本库,它存储所有的数据,版本库按照文件树形式存储数据,包括文件、目录。
任意数量的客户端可以连接到版本库,读写这些文件。
通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。
SVN可以通过多种方式访问:本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个URL。
“版本库访问URL”描述了不同的URL模式对应的访问方法,如表7-1所示:表7-1:不同的URL模式对应的访问方法修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N此提交。
因此,当我们在使用SVN时,如果谈及“foo.c的修订号5”时,实际的意思就是“在修订号为5时的foo.c”。
修订号N和M并不一定表示一个文件是不同的。
其他的版本控制工具,例如CVS,则使用每一个文件一个修订号的做法。
1.2 SVN的下载与安装读者可以下载SVN的服务器安装文件:svn-1.4.0-setup.exe;Windows客户端安装文件:TortoiseSVN-1.6.11.20210-win32-svn-1.6.13;在客户端使用方面可以使用TortoiseSVN客户端,当作为软件开发人员一般会在Eclipse 开发工具中按照SVN相关插件。
1.3 创建资源库安装完SVN的服务器端和客户端之后,需要创建SVN库,方法是进入命令行,执行理工具,通过svnadmin -?可以查看可用的命令,如果所示:1.4 运行SVN服务其中参数d表示以后台模式运行SVN服务,参数r用于指定服务根目录(即SVN库所在根目录)。
SVN客户端命令简介
TortoiseSVN客户端命令1、Checkout首先要Checkout服务器端的Repository,所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。
Checkout的具体方式是:在客户端新建一个空目录,比如:F:\Project1 (确保是空的)在该目录上单击右键,在弹出式菜单中选中SVN Checkout...,之后按要求录入内容:然后点OK,会弹出一个认证对话框,输入用户名和密码。
点OK后就完成了对Repository的Checkout。
检出后,所有检出文件上都打着绿色对勾:2、update获取版本库中最新版本,具体的方法是:在WC目录上单击右键,SVN Update。
这时WC中的文件就是最新的版本了。
3、commitcommit功能就是将你本地的文件修改记录上传到服务器上面,可以理解为上传。
只会上传原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右键点击文件选择Add,然后文件上面会出现一个加号,在下次commit的时候才能选到该文件。
commit页面:注意:commit的时候,最好填写Log信息,Log内容包括:修改了哪些东西及为什么做这些修改(what+why)强制必须录入log: property 中设置录入log最小长度,此时commit必须录入log,否则不允许提交.设置录入log最小长度页面:4、add将要添加的文件或者目录拷贝到WC下,然后在该文件或目录上单击右键,TortoiseSVN->Add,点OK。
如果添加了不止一个文件或目录,则鼠标不要在WC中点中任何文件,然后单击右键,TortoiseSVN->Add,就可以添加多个文件或目录。
这时文件的状态图标会发生如下变化:Add命令只是告诉本地的WC将该文件纳入版本管理,并没有将这个改变提交到服务器端,在F:\Project1下单击右键,SVN Commit...,将你所做的修改提交到Repository。
SVN日常使用说明
1.版本控制原则SVN(或者其他版本控制软件)只是一个版本控制的辅助工具,不可能把所有的问题都自动解决掉。
尤其,对于冲突这个麻烦事儿,项目成员在项目进程中要尽量通过优化流程来解决,而不是将希望寄托于软件工具来自动解决一切问题。
2.各阶段中svn的使用方法介绍2.1.初始化版本库初始化版本库有两种常用的方式:2.1.1.直接“导入Import…”(目前,OSSP版本已经导入到版本库,项目组成员无需做此操作)对要执行导入操作得项目文件夹进行如下清理:1. 把项目中不需要的文件删除。
(临时文件、编译器创建的文件,比如*.obj、二进制文件等。
)2. 把文件夹和子文件夹中的所有文件整理一遍。
虽然你可以在导入之后再来进行重命名或删除等操作,但是还是推荐你在导入之前把你的项目整理好。
在资源管理器(windows explorer)中选择项目(本地硬盘上)的根文件夹,单击鼠标右键,选择导入Import…命令,跳出一个对话框:在这个对话框中你需要填写你要将项目导入仓库的URL地址(svn必须小写)。
导入信息(Important Message)是用来记录日志信息的。
注意:与“忽略样式exclude pattern”匹配的文件或文件夹不会被导入,除非选择了“包含忽略的文件”选项。
按下“确定”按钮后,TortoiseSVN就开始把整个文件夹树(包括所有文件)导入到仓库。
用来做“导入Import”操作的这个文件夹的名字不会出现在仓库中,只有文件夹中的内容会出现。
注意:刚才用来做“导入Import”操作的这个文件夹并没有处于版本控制下!要获取一份处于版本控制之下的[本地工作区]副本,你需要对刚导入的版本做一次“检出Checkout”操作。
2.1.2.“检出Checkout”—>“提交Commit”新建一个空文件夹作为[本地工作区]的存放文件夹(建议与项目同名),在文件夹上(或者文件夹里)单击鼠标右键后在命令菜单中选择“检出Checkout…”,出现操作窗口。
svn checkout代码
svn checkout代码摘要:1.SVN 简介2.SVN 基本命令3.SVN checkout 命令的作用4.SVN checkout 命令的使用方法5.SVN checkout 命令的实际应用正文:1.SVN 简介SVN,全称Subversion,是一款开源的版本控制系统,用于管理代码和其他文本文件。
它采用客户机/服务器模式,使得开发者可以共同协作开发项目。
SVN 具有较强的可扩展性和跨平台性,广泛应用于软件开发领域。
2.SVN 基本命令SVN 提供了许多基本命令,例如:svn add、svn commit、svn delete、svn update 等。
这些命令分别用于将文件添加到版本控制、提交更改、删除文件和更新代码等操作。
熟练掌握这些基本命令,对于使用SVN 进行代码管理至关重要。
3.SVN checkout 命令的作用SVN checkout 命令用于从SVN 服务器上检出(check out)代码到本地计算机。
执行该命令后,您可以在本地计算机上查看、编辑和提交代码。
简单来说,svn checkout 命令就是将服务器上的代码复制到本地计算机的过程。
4.SVN checkout 命令的使用方法要使用SVN checkout 命令,您需要首先打开命令行工具(例如Windows 下的命令提示符或Mac 下的终端)。
然后,输入以下格式的命令:```svn checkout 地址```其中,地址是指SVN 服务器上的代码仓库地址。
执行该命令后,代码仓库中的所有文件和文件夹将被检出到本地计算机。
5.SVN checkout 命令的实际应用以一个简单的例子来说明SVN checkout 命令的实际应用。
假设您和您的团队成员共同开发一个项目,并且项目代码托管在一个SVN 服务器上。
您可以通过以下步骤检出代码:1.打开命令行工具。
2.输入svn checkout 命令,后面跟上SVN 服务器上的代码仓库地址。
Windows环境架设SVN服务器
Windows 环境架设SVN服务器硬件设备:PC机软件设备:xp 或者windows2003 ,TortoiseSVN-1.6.14.21012-win32-svn-1.6.16.msi:SVN客户端Setup-Subversion-1.6.16.msi:SVN安装程序SVNService.rar:svn服务命令AnkhSvn-2.1.8420.8.msi部署:1、安装svn服务器端安装Setup-Subversion-1.6.16.msi,我把这个安装在“C:\Program Files\Subversion”目录。
和AnkhSvn-2.1.8420.8.msi(默认安装即可)2、安装TortoiseSVN-1.6.14.21012-win32-svn-1.6.16.msi。
以上两步中的安装选择均选默认。
重启电脑(客户端软件)3、因为这个软件开机就要用,所以对开发者来讲把它安装成一个服务是最好的(这样电脑一启动这个软件的服务器就运行了,要不然你要到命令行模式去手工启动服务)。
下面就来讲述怎么样把它设置成一个服务。
1) 把“SVNService.exe”拷贝到“C:\Program Files\Subversion\bin\”2) 在D盘新建文件夹d:\svn. 进入命令行模式:开始菜单--运行--进入“C:\Program Files\Subversion\bin\”这个目录。
打入命令:svnservice -install -d-r "d:\svn"。
(这一步很重要很重要,以前我就是这一步误解走了很多弯路)。
具体详细介绍见3.3。
把它设为自动启动:开始菜单--控制面板--性能维护--管理工具--服务,进去以后你会在服务列表中看到svnservice这个服务,右击--把它设为自动启动(这样开机的时候这个服务也启动了)3) 这里就是把“d:\svn” 这个目录指定为SVN版本控制的服务目录(网上很多帖子把上面这个命令称作建立仓库是不对的)其实这个目录应该称作仓库所在的目录,假如我有有三个仓库:repository_1,repository_2,repository_3他们的位置应该是:d:\svn\repository_1, d:\svn\repository_2,d:\svn\repository_3。
SVN配置
一. 安装服务器(Windows)1.解压假设解压到F:\svn解压后文件列表如下:2.设置环境变量添加SVN_HOM=F:\svn设置PATH=%SVN_HOME%\bin添加SVN_EDITOR=notepad.exe3.创建仓库使用svnadmin create 仓库绝对路径命令svnadmin create F:\svn\svn_repository该命令会在F:\svn\svn_repository生成一些目录和配置文件4.修改配置文件到F:\svn\svn_repository目录下passwd文件–/conf目录下用于存放本svn库的用户名和密码,用= 分割,如:用户名= 密码;左边是用户名,右边是密码(明文)。
authz –/conf目录下用于存放本svn库的访问授权信息。
svnserve.conf — /conf目录下用于存放本svn库的全局访问控制信息用文本编辑器打开svnserve.conf加上两句[general]password-db = passwd打开同目录下同目录的passwd文件(设置用户密码)加上svnadmin = adminuser = user打开同目录的authz文件,它定义了两部分的内容:1,对组成员的定义,2,对目录的授权定义,可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,授权的选项有:只读访问(‘r’),读写访问(‘rw’),或者无权防问(”).加[/]svnadmin,user = rw二.启动svnserve -d -r 项目主目录绝对路径svnserve -d -r F:\svn\svn_repository服务器已启动三.安装SVN客户端1.安装2.连接SVN服务器安装完毕后任意位置右键弹出菜单,如下图选择将列出选择URL填svn://127.0.0.1点击OK按钮这就是我建立的资源仓库文件树3.上传文件至资源库选中要上传的内容的父文件夹右键该文件夹选择选择点击OK要求输入用户名密码将刚才在passwd文件定义的用户名密码填入点击OK参考第2步的描述即可查看上传到资源库的文件三.从服务器检出文件到本地任意位置新建文件夹,假设在桌面建立project文件夹右键该文件夹选择点击OK文件已检出到project打开project文件夹四.备份运行命令:svnadmin dump 要备份资源库绝对路径>备份目的地文件绝对路径五.恢复创建恢复目的资源库:svnadmin create 资源库绝对路径恢复到资源科:svnadmin load 目标资源库绝对路径<备份文件。
windows下配置和使用svn
三、windows下SVN服务器端搭建托管服务器
• 1.我们总是不想让每次使用svn就要在dos命令中 键入打开命令,而是希望一开机服务器就自动运 行,为了达到这个目的,我们可以这样做。 • 2.在dos窗口中输入以下命令: sc create SVNserver binpath= “D:\Program Files\svn\bin\svnserve.exe - -service - -root F:\SVNserver” 注:SVNserver是服务的名称,binpath是你安装 Subversion时svnserve.exe的路径,最后的目录是 作为服务的根目录。
windows下配置和使用SVN教程
一、SVN简介 二、软件安装过程 三、windows下SVN服务器端搭建 四、使用SVN客户端
一、SVN简介
• SVN,Subversion,SVN是一个开源的版本管理 软件,目前,绝大多数开源软件都是用svn作为代 码版本管理软件
一、SVN简介-基本功能
• 1.根据文件修改的次数自动增加版本号以便找回 历史文件 • 2.防止多人开发同时修改一类文件导致文件覆盖 或被删除 • 3.svn分为客户端(一般用TortoiseSVN)和服务 器端(Subversion) • 4.svn可以架设在Apache上,使用http或https协 议访问,也可以使用内置的svn协议访问。
二、软件安装过程-下载软件
• 1.下载服务器端, / • 2.下载客户端, /
二、软件安装过程
• Subverison安装过程很简单,直接单击next,直 到finish为止。安装完成后,可以进入cmd,在控 制台窗口中输入svn - -version会得到有效结果证 明安装成功了。 • 接着安装客户端TortoiseSVN,也是一直单击next, 完成为止。若需要重启,则重启电脑生效。安装 完成后,在桌面右键菜单会出现如下菜单项: 则说明客户端安装成功了。
TortoiseSVN客户端的日常使用
TortoiseSVN客户端的日常使用开始 (4)图标重载 (4)右键菜单 (4)拖放 (6)常用快捷方式 (7)认证 (7)检出工作副本 (8)重要 (8)重要 (9)让你的修改进入版本库 (9)提交文件还是文件夹? (10)在提交对话框中有很多未受控的文件 (10)拖放 (10)修复外部改名 (11)用来自别人的修改更新你的工作复本 (12)小心 (14)多文件/文件夹 (14)本地文件已经存在 (14)解决冲突 (15)获得状态信息 (16)图标重载 (16)在Windows 资源管理器中的 TortoiseSVN 列 (17)提示 (18)本地与远程状态 (18)提示 (19)修复外部改名 (19)查看差别 (19)提示 (19)版本日志对话框 (20)调用版本日志对话框 (20)获得更多信息 (21)获取更多的日志信息 (24)修改日志消息和作者 (25)警告 (25)过滤日志信息 (25)统计信息 (25)查看差异 (27)文件差异 (27)比较文件夹 (29)使用TortoiseIDiff 进行比较的图像 (30)其他的比较/合并工具 (30)添加新文件和目录 (31)更多 (32)撤消更改 (32)取消已经提交的改变 (33)清理 (33)使用提交时戳 (33)谁修改了哪一行? (34)追溯文件 (34)追溯不同点 (35)本文目的在与描述TortoiseSVN客户端的日常使用。
不是一个版本控制系统指南,也不是Subversion (SVN)的指南。
本文档的价值在于,当你知道大概要做什么,却又记不起应该怎么做的时候,可以有个参考的地方。
如果你需要了解使用Subversion进行版本控制的指南,我们建立你阅读以下这本梦幻之书: 《使用Subversion 进行版本管理》.本文档与TortoiseSVN和Subversion一样,也是处于“正在开发”的状态。
如果你找到了错误之处,请向邮件列表报告,这样我们就可以更新它。
svn使用指南windows环境版
svn使用指南windows环境版SVN是一个开源版本控制系统,能够有效地管理和追踪项目的变化。
在Windows环境下,可以使用TortoiseSVN来进行SVN操作。
本文将为您提供SVN的使用指南。
1. 安装TortoiseSVN2.创建SVN仓库2.1在本地选择一个文件夹,用于存放SVN仓库。
2.2 右键点击该文件夹,在弹出菜单中选择“Create repository here”。
2.3 在弹出的对话框中,选择“Yes”来创建Trunk、Tags和Branches目录结构。
3.导入项目至SVN仓库3.1在本地选择一个文件夹,用于存放项目文件。
3.2将项目文件拷贝到该文件夹中。
3.3 右键点击该文件夹,在弹出菜单中选择“TortoiseSVN”->“Import”。
3.4 在弹出的对话框中,填写SVN仓库的URL(如file:///C:/SVN/repos/project)和相关描述信息,点击“OK”进行导入。
4.创建工作副本4.1在本地选择一个文件夹,用于存放工作副本。
4.2 右键点击该文件夹,在弹出菜单中选择“SVN Checkout”。
4.3 在弹出的对话框中,填写SVN仓库的URL(如file:///C:/SVN/repos/project)和工作副本目录,点击“OK”进行创建。
5.提交更改5.1在工作副本中对项目文件进行修改。
5.3在弹出的对话框中,填写提交说明,点击“OK”进行提交。
6.更新工作副本6.1 右键点击工作副本文件夹,在弹出菜单中选择“TortoiseSVN”->“Update”。
6.2在弹出的对话框中,点击“OK”进行更新。
7.查看项目历史7.1 右键点击项目文件,在弹出菜单中选择“TortoiseSVN”->“Show log”。
7.2在弹出的对话框中,即可查看项目的提交历史和相关信息。
8.分支和合并8.1 右键点击项目文件,在弹出菜单中选择“TortoiseSVN”->“Branch/Tag”。
SVN使用手册(简易版)
SVN使用手册——命令行模式1SVN概述SVN的全称Subversion,和VSS一样用来有效地管理代码和版本。
同样我们可以进行修改、对比版本、获得版本的历史信息等操作。
1.1 SVN使用环境及安装SVN的使用环境:SVN可在Linux系统使用,安装系统时如果选择了自带Subversion,无需安装即可使用命令行。
Windows系统需安装Subversion以便在命令行中使用SVN命令;也可安装TortoiseSVN(“小乌龟”),不用敲SVN命令直接通过右键菜单执行。
目前北研所的SVN使用基于TCP/IP协议的Apache服务器,使我们可以通过http地址来访问版本库。
平台Linux系统Windows平台操作方法命令行浏览器命令行界面/右键浏览器安装方式安装Linux的时候选择“开发用”则自带,否则需另安装SVN包。
无需安装,直接在地址栏输入版本库的http地址安装Subversion安装TortoiseSVN(“小乌龟”)无需安装,直接在地址栏输入版本库的http地址优缺点能查看最新及历史版本,能修改只能查看最新版本,不能修改能查看最新及历史版本,能修改能查看最新及历史版本,能修改,右键直接操作。
只能查看最新版本,不能修改本文介绍在Windows平台下SVN命令行工具svn的使用。
安装文件:Subversion ——svn-1.4.6-setup.exe TortoiseSVN——TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.rar文件的具体地址,请参考下文“2.1”章节的介绍。
1.2SVN工作原理说明1.2.1版本库(repository)SVN所有的数据都存储在版本库中并被任意客户端用户分享。
客户端用户通过网络连接到版本库,读写这些文件并使其他人可以看到这些修改。
1.2.2工作拷贝(workcopy)工作拷贝是版本库中文件和目录在本地的映射。
用户并行工作,各自修改本机的私有目录和文件,最终把修改“提交”至版本库成为最终的版本。
svn常用命令
svn常⽤命令命令的使⽤1、检出3、添加新⽂件svn add ⽂件名注:告诉SVN服务器要添加⽂件了,还要⽤svn commint -m真实的上传上去!例⼦:svn add test.php <-添加test.phpsvn commit -m “添加我的测试⽤test.php“test.phpsvn add *.php <-添加当前⽬录下所有的php⽂件svn commit -m “添加我的测试⽤全部php⽂件“*.php4、提交svn commit -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名svn ci -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名必须带上-m参数,参数可以为空,但是必须写上-m例⼦:svn commit -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn commit -m “提交我的测试⽤test.php“test.phpsvn commit -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关svn ci -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn ci -m “提交我的测试⽤test.php“test.phpsvn ci -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关5、更新⽂件svn updatesvn update -r 修正版本 ⽂件名svn update ⽂件名例⼦:svn update <-后⾯没有⽬录,默认将当前⽬录以及⼦⽬录下的所有⽂件都更新到最新版本svn update -r 200test.cpp <-将版本库中的⽂件 test.cpp还原到修正版本(revision)200 svnupdate test.php<-更新与版本库同步。
WINDOWS下搭建SVN服务器端的步骤
WINDOWS下搭建SVN服务器端的步骤在Windows操作系统下搭建SVN服务器端的步骤如下所示:2. 安装Subversion软件3.创建版本库打开命令行窗口,切换到合适的目录下,使用以下命令创建版本库:```svnadmin create <版本库路径>```其中,`<版本库路径>`是新创建版本库的存放路径,可以根据自己的需要选择合适的路径。
4.配置访问权限在`svnserve.conf`文件中,可以设置一些SVN服务器的配置选项。
例如,可以设置允许匿名访问,设置是否允许修改提交日志等。
在`passwd`文件中,可以设置SVN服务器的用户和密码。
每行代表一个用户的信息,格式为`用户名=密码`。
5.启动SVN服务器在命令行窗口中,使用以下命令启动SVN服务器:```svnserve -d -r <版本库路径>```其中,`<版本库路径>`是上述步骤创建版本库时指定的路径。
6.验证SVN服务器的运行状态在浏览器中输入`svn://localhost`,如果能够正常显示SVN服务器的验证信息,则说明SVN服务器已经成功运行。
至此,SVN服务器已经搭建完成。
根据需要,可以对版本库进行权限设置、添加用户、创建项目等操作。
可以使用SVN客户端工具进行后续的版本控制操作。
注意事项:- 确保安装的Subversion软件和操作系统的位数相匹配,即32位系统安装32位软件,64位系统安装64位软件。
- 在Windows系统中,可以将SVN服务器作为服务来启动,这样可以实现开机自动启动,并且在后台运行。
可以使用`sc`命令将SVN服务器注册为服务,具体操作可以参考官方文档或者相关教程。
-在配置访问权限时,可以根据需要设置不同的访问级别,包括读取权限、写入权限、修改权限等。
可以根据项目需求进行灵活配置。
Windows下安装Subversion服务端和TortoiseSVN客户端详细教程
Windows下安装Subversion服务端和TortoiseSVN客户端详细教程Subversion(简称SVN)是一种版本控制系统,它可以跟踪和管理任何类型的文件和目录的变化,可以帮助团队协作开发和管理项目。
TortoiseSVN是Windows平台下的一个Subversion客户端,它集成在Windows资源管理器中,使用起来相对简单便捷。
下面是Windows下安装Subversion服务端和TortoiseSVN客户端的详细教程。
一、安装Subversion服务端2.运行安装程序在安装向导中,根据自己的需要选择合适的组件进行安装。
通常,只需要选择包含Subversion命令行客户端和Apache HTTP服务器模块的组件。
选择安装路径,建议选择默认路径(C:\Program Files\Apache Software Foundation\)。
3. 配置Subversion服务端找到安装目录下的conf文件夹,打开svnserve.conf文件,找到以下两行:# anon-access = read# auth-access = write将这两行的注释符#去掉,并将分别将read和write修改为none,即:anon-access = noneauth-access = none保存并关闭文件。
4. 启动Subversion服务打开命令行窗口,进入Subversion服务安装目录的bin文件夹。
使用命令:svnserve -d -r C:\svn其中,C:\svn为创建好的SVN资源库的路径。
执行命令后,服务就会启动。
二、安装TortoiseSVN客户端2.运行安装程序在安装向导中,根据自己的需要选择合适的组件进行安装。
通常,只需要选择包含TortoiseSVN客户端的组件。
选择安装路径,建议选择默认路径(C:\ProgramFiles\TortoiseSVN)。
3. 配置TortoiseSVN客户端安装完成后,可以在资源管理器中点击右键,选择TortoiseSVN > Settings打开TortoiseSVN配置窗口。
Svn安装和使用教程
Svn安装和使用教程SVN是一种版本控制系统,它可以帮助团队成员协同开发项目,追踪和管理代码的变更,并保留每个版本的历史记录。
下面将详细介绍如何安装和使用SVN。
一、安装SVN2.设置环境变量在安装完成后,需要将 SVN 的可执行文件路径添加到系统环境变量中,这样才能在任意位置执行 SVN 命令。
将 SVN 的安装路径添加到环境变量"Path"中即可。
3.验证安装结果打开命令提示符(Windows)或终端(Linux/macOS),运行以下命令验证安装结果:```svn --version```如果显示了SVN的版本信息,则表示安装成功。
二、使用SVN1.创建版本库版本库(repository)是 SVN 存储项目历史记录的地方。
创建一个新版本库的命令如下:svnadmin create /path/to/repository```其中,/path/to/repository 是你指定的版本库的路径。
2.导入项目在版本库创建完成后,我们需要将项目导入版本库中,这样才能开始对项目进行版本控制。
假设你的项目位于 /path/to/project 目录下,导入命令如下:```svn import /path/to/projectfile:///path/to/repository/project-name -m "Initial import"```其中,file:///path/to/repository 是版本库的路径,project-name 是你给项目起的名字,-m 后面的字符串是你对本次导入的描述信息。
3.检出代码检出(checkout)是从版本库中获取最新的项目副本的操作。
运行以下命令将项目检出到本地的一些目录中:```svn checkout file:///path/to/repository/project-name/path/to/checkout其中,/path/to/checkout 是你在本地指定的存放检出副本的目录。
Svn在Windows下实现自动全量增量备份和异地备份汇总
SVN在Windows下实现自动全量增量备份和异地备份1SVN备份介绍1.1SVN备份内容SVN在Windows下的自动备份实现,包括:1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行);2)SVN增量备份(每日备份1次,由windows计划来调度执行);1.2SVN备份流程上述2类备份分别进行的流程如下:1)通过windows定时任务功能,调度进行备份、压缩、FTP上传功能的bat文件;2)将自动备份成按每日日期.dmp备份到SVN本机的其他磁盘空间中,分全备份和增量备份;3)启动ftp上传命令,将备份的rar包立即上传在异地服务器上。
异地服务器需提前架好ftp服务器并建立好相关上传目录,建议使用用FileZilla_Server、serverU或者简单ftp软件进行搭建。
4)整个上传过程,详细记录备份、压缩、FTP上传各步骤详细日志,随时可以查阅每次备份记录的详细情况。
1.3SVN还原功能可以进行还原所有版本库2SVN备份BAT设计1.1全备份BAT1)SVN的全备份,AllBackUp.bat:Begin@echo offsetlocal enabledelayedexpansionecho 正在准备备份所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\全备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部全量备份版本库.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf ( ::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmpecho %time:~0,8% %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo ---------------------------------->> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 用户权限信息备份成功!echo %time:~0,8% 用户权限信息备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 全部版本库备份成功!echo %time:~0,8% 全部版本库备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.logAllBackupByFtpgoto end:Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN的全备份进行FTP上传,AllBackupByFtp.bat@echo offREM ======设置区Start================================set ftpUser=svnset ftpPass=svnbackupset ftpIP=192.168.1.22set ftpPort=2016REM 指定从FTP下载下来的文件存放到本机哪个目录set ftpFolder=/全备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\全备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToFilePath=%SvnBackupFolder%.rarREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLogFilePath=%SvnBackupRoot%\BackUp.logREM FTP命令执行文件缓存set ftpFile=%cd%\TempFTP.txt>"%ftpFile%" (echo,open %ftpIP% %ftpPort%echo,%ftpUser%echo,%ftpPass%echo cd "%ftpFolder%"echo prompt offecho binecho put %rarToFilePath%echo put %bakupLogFilePath%echo bye)set Path=%Path%;%rarExePath%set logFilePath=%SvnBackupRoot%\ftpUp.logREM ======设置区End ================================echo ===================%date% 执行异地版本库全量备份开始================= >> %logFilePath%if not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logFilePath%WinRAR.exe a -ep1 -k -r -s -ibck %rarToFilePath% %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarToFilePath% >> %logFilePath%echo %time:~0,8% 备份压缩继续上传FTP开始... >> %logFilePath%ftp -v -i -s:"%ftpFile%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:%ftpFolder% >> %logFilePath%del /q /s /f %rarToFilePath%echo. >> %logFilePath%goto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logFilePath%echo %time:~0,8% 备份失败! >> %logFilePath%echo. >> %logFilePath%echo 提示:echo 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!:Endecho.echo 程序执行结束!1.2增量备份BAT1)SVN数据库的增量备份,IncreBackUp.bat::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\增量备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::获取LastRevisions目录set REPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%\LastRevisionsrem if not exist %REPOS_LAST_REVERSION_DIRECTORY% goto Error1if not exist %REPOS_LAST_REVERSION_DIRECTORY%mkdir %REPOS_LAST_REVERSION_DIRECTORY%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::设置LastRevisions备份目录set REPOS_LAST_REVERSION_BACKUP_DIRECTORY=%BACKUP_DIRECTORY%\LastRevisions if not exist %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%mkdir %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部版本库备份.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf (::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (::判断以前是否存在该版本库的版本信息,存在说明以前备份过,需要基于其进行备份;否则对该版本库进行全新备份if exist %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt (::读取该版本库上次备份时保存的版本信息,如果小于当前版本信息则进行处理for /f %%k in (%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt) do if %%k lss %%j (echo.echo 开始备份版本库%%~ni……::取得该版本库本次备份的起始版本号set version=%%kset /a version=!version!+1::增量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi --revision !version!:head --incremental > %BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmpecho %%~ni: !version!-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmp! )) else (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp echo %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::将本次版本库备份时的最新版本信息写入文件保存echo %%j> %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txtecho %%j> %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%\%%~ni_last_revision.txt )::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo.echo 用户权限信息备份成功!echo.echo 全部版本库备份成功!IncreBackupByFtpgoto end:Error1echo.echo 提示:echo 上次备份保存的%REPOS_LAST_REVERSION_DIRECTORY%文件夹不存在,请确认后从上次备份中拷贝LastReversions到%REPOS_BACKUP_ROOT%目录,重新运行程序; echo 或者,不基于上次备份重新执行备份!echo 重新备份?(Y/N)set /p input=if %input%==Y (mkdir %REPOS_LAST_REVERSION_DIRECTORY%goto Begin) else (goto End):Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN数据的增量备份的FTP上传,IncreBackupByFtp.bat@echo offREM ======设置区Start================================set ftpUser=svnset ftpPass=svnbackupset ftpIP=192.168.1.22set ftpPort=2016REM 指定从FTP下载下来的文件存放到本机哪个目录set ftpFolder=/增量备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\增量备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToFilePath=%SvnBackupFolder%.rarREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLogFilePath=%SvnBackupRoot%\BackUp.logREM FTP命令执行文件缓存set ftpFile=%cd%\TempFTP.txt>"%ftpFile%" (echo,open %ftpIP% %ftpPort%echo,%ftpUser%echo,%ftpPass%echo cd "%ftpFolder%"echo prompt offecho binecho put %rarToFilePath%echo put %bakupLogFilePath%echo bye)set Path=%Path%;%rarExePath%set logFilePath=%SvnBackupRoot%\ftpUp.logREM ======设置区End ================================echo ===================%date% 执行异地版本库增量备份开始.=================== >> %logFilePath%if not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logFilePath%WinRAR.exe a -ep1 -k -r -s -ibck %rarToFilePath% %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarToFilePath% >> %logFilePath%echo %time:~0,8% 备份压缩继续上传FTP开始... >> %logFilePath%ftp -v -i -s:"%ftpFile%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:%ftpFolder% >> %logFilePath%del /q /s /f %rarToFilePath%echo. >> %logFilePath%goto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logFilePath%echo %time:~0,8% 备份失败! >> %logFilePath%echo. >> %logFilePath%echo 提示:3SVN还原BAT设计SVN的还原LoadBackUp.bat@echo offecho 正在准备还原所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\增量备份if not exist %REPOS_BACKUP_ROOT% goto Error::还原所有版本库echo ===================%date% %time:~0,8%:执行版本库执行还原操作=================== >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 还原的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\SvnLoad.log::将所有保存版本库备份的文件夹名写入tmpdir /b %REPOS_BACKUP_ROOT%\*.dmp > folderName.tmp::依次操作tmp文件中包含的文件夹for /f %%h in (folderName.tmp) do (::将所有版本库文件名写入tmpdir /b /a-d %REPOS_BACKUP_ROOT%\%%h\*.dmp > fileName.tmp::依次操作tmp文件中包含的备份文件for /f %%i in (fileName.tmp) do (::处理备份文件名,以取得版本库名和相应的版本号for /f "tokens=1,2* delims=-" %%j in ("%%~ni") do (echo.echo 开始还原版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l……::版本库根目录不存在和版本库名相同名字的文件夹则创建一个if not exist %REPOS_ROOT%\%%j (mkdir %REPOS_ROOT%\%%j)::版本库根目录中该文件夹不是版本库,则创建一个if not exist %REPOS_ROOT%\%%j\conf\svnserve.conf (%SVN_CMD%\svnadmin create %REPOS_ROOT%\%%j)::还原备份%SVN_CMD%\svnadmin load %REPOS_ROOT%\%%j < %REPOS_BACKUP_ROOT%\%%h\%%i echo %%j: %%k-%%l >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l还原成功!)))::删除临时文件del fileName.tmpdel folderName.tmpecho.echo 全部版本库还原成功!goto end:Errorecho.echo 版本库备份目录%REPOS_BACKUP_ROOT%不存在,请确认后重新运行程序! goto End:End。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SVN常用命令(windows)
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn addtest.php(添加test.php)
svn add*.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit-m“LogMessage“[-N][--no-unlock]PATH(如果选择了保持锁,就使
用–no-unlock开关)
例如:svn commit-m“add test file for my test“test.php
简写:svn ci
4、加锁/解锁
svn lock-m“LockMessage“[--force]PATH
例如:svn lock-m“lock test file“test.php
svn unlock PATH
5、更新到某个版本
svn update-r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版
本。
svn update-r200test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。
如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被
锁定】
2)svn status-v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改
人。
注:svn status、svn diff和svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
svn delete path-m“delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php-m“delete test file”
或者直接svn delete test.php然后再svn ci-m‘delete test file‘,推荐使用这种
简写:svn(del,remove,rm)
8、查看日志
svn log path
例如:svn log test.php显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff-r m:n path(对版本m和版本n比较差异)
例如:svn diff-r200:201test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge-r m:n path
例如:svn merge-r200:205test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、SVN帮助
svn help
svn help ci
13、版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、创建纳入版本控制下的新目录
svn mkdir:创建纳入版本控制下的新目录。
用法:
1、mkdir PATH…
2、mkdir URL…
创建版本控制的目录。
1、每一个以工作副本PATH指定的目录,都会创建在本地端,并且加入新增调度,以待
下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的
中间目录都必须事先存在。
15、恢复本地修改
svn revert:恢复原始未改变的工作副本文件(恢复大部份的本地修改)。
revert:
用法:revert PATH…
注意:本子命令不会存取网络,并且会解除冲突的状况。
但是它不会恢复被删除的目录
16、代码库URL变更
svn switch(sw):更新工作副本至不同的URL。
用法:1、switch URL[PATH]
2、switch–relocate FROM TO[PATH...]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。
这是将工作副本对应到同一仓库中某个分支或者标记的方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。
当仓库的根URL变动(比
如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命
令更新工作副本与仓库的对应关系。
17、解决冲突
svn resolved:移除工作副本的目录或文件的“冲突”状态。
用法:resolved PATH…
注意:本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的
相关文件,然后让PATH可以再次提交。
18、输出指定文件或URL的内容。
svn cat目标[@版本]…如果指定了版本,将从指定的版本开始查找。
svn cat-r PREV filename>filename(PREV是上一版本,也可以写具体版本号,这样输
出结果是可以提交的)。