SVN 查看历史信息命令及用法

合集下载

SVN常用命令(WINDOWS)

SVN常用命令(WINDOWS)

SVN常用命令(windows)1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件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 ci4、加锁/解锁svn lock-m“LockMessage“[--force]PATH例如:svn lock-m“lock test file“test.phpsvn unlock PATH5、更新到某个版本svn update-r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn update-r200test.php(将版本库中的文件test.php还原到版本200)svn update test.php(更新,于版本库同步。

如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)简写:svn up6、查看文件或者目录状态1)svn status path(目录下的文件和子目录的状态,正常状态不显示)【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】2)svn status-v path(显示文件和子目录状态)第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

svn 命令行

svn 命令行

SVN命令行svn命令通常都有帮助,可通过如下方式查询:$ svn help知道了子命令,但是不知道子命令的用法,还可以查询:$ svn help add开发人员常用命令(1) 导入项目$ cd ~/project$ mkdir -p svntest/{trunk,branches,tags}$ svn import svntest https://localhost/test/svntest --message "Start project" ...$ rm -rf svntest我们新建一(2) 导出项目$ svn checkout https://localhost/test/svntest/trunk修订版本号的指定方式是每个开发人员必须了解的,以下是几个参考例子,说明可参考svn 推荐书。

$ svn diff --revision PREV:COMMITTED foo.c# shows the last change committed to foo.c$ svn log --revision HEAD# shows log message for the latest repository commit$ svn diff --revision HEAD# compares your working file (with local changes) to the latest version# in the repository$ svn diff --revision BASE:HEAD foo.c# compares your “pristine” foo.c (no local changes) with the# latest version in the repository$ svn log --revision BASE:HEAD# shows all commit logs since you last updated$ svn update --revision PREV foo.c# rewinds the last change on foo.c# (foo.c's working revision is decreased)$ svn checkout --revision 3# specified with revision number$ svn checkout --revision {2002-02-17}$ svn checkout --revision {15:30}$ svn checkout --revision {15:30:00.200000}$ svn checkout --revision {"2002-02-17 15:30"}$ svn checkout --revision {"2002-02-17 15:30 +0230"}$ svn checkout --revision {2002-02-17T15:30}$ svn checkout --revision {2002-02-17T15:30Z}$ svn checkout --revision {2002-02-17T15:30-04:00}$ svn checkout --revision {20020217T1530}$ svn checkout --revision {20020217T1530Z}$ svn checkout --revision {20020217T1530-0500}(3) 日常指令$ svn update$ svn add foo.file$ svn add foo1.dir$ svn add foo2.dir --non-recursive$ svn delete README$ svn copy foo bar$ svn move foo1 bar1$ svn status$ svn status --verbose$ svn status --verbose --show-updates$ svn status stuff/fox.c$ svn diff$ svn diff > patchfile$ svn revert README$ svn revert修改冲突发生时,会生成三个文件:.mine, .rOLDREV, .rNEWREV。

svn log 参数

svn log 参数

svn log 参数SVN Log参数介绍SVN是一种版本控制系统,它允许开发人员协同工作并跟踪文件的变化。

在使用SVN时,经常需要使用log命令来查看版本库的提交历史记录。

log命令有多个参数,本文将介绍常用的SVN log参数及其用法。

1. -r 参数-r 参数用于指定要查看的版本范围。

可以使用单个版本号,例如-r 10,表示查看版本号为10的提交记录。

也可以使用版本范围,例如-r 5:10,表示查看版本号从5到10的提交记录。

还可以使用HEAD关键字,表示查看最新版本的提交记录。

例如-r HEAD,表示查看最新版本的提交记录。

2. -l 参数-l 参数用于指定要显示的提交记录数量。

例如-l 5,表示显示最近的5条提交记录。

如果不指定-l参数,默认显示最近的10条提交记录。

3. -v 参数-v 参数用于显示详细的提交记录信息。

每条记录包括版本号、作者、提交日期和时间、提交注释等详细信息。

例如-v 10,表示显示版本号为10的详细提交记录。

4. -q 参数-q 参数用于精简输出,只显示提交记录的版本号和提交注释。

例如-q 10,表示只显示版本号为10的提交记录的版本号和提交注释。

5. --limit 参数--limit 参数用于限制显示的提交记录数量。

例如--limit 20,表示限制显示最多20条提交记录。

如果不指定--limit参数,默认显示所有的提交记录。

6. --stop-on-copy 参数--stop-on-copy 参数用于在查看提交历史记录时停止显示。

当版本库中存在分支或拷贝时,使用--stop-on-copy参数可以只显示分支或拷贝的起始版本之前的提交记录。

例如--stop-on-copy,表示只显示分支或拷贝的起始版本之前的提交记录。

7. --search 参数--search 参数用于搜索提交注释中包含指定关键字的提交记录。

例如--search "bug fix",表示搜索提交注释中包含"bug fix"关键字的提交记录。

svn用户操作手册

svn用户操作手册

svn用户操作手册SVN(Subversion)是一个版本控制系统,用于管理文件的版本和变更历史。

以下是SVN用户操作手册:1. 检出代码:打开控制台,输入“svn checkout [服务目录] [本地目录全路径] --username 用户名 --password 密码”。

其中,[服务目录]是你要检出的代码所在的SVN仓库地址,[本地目录全路径]是你要将代码检出到的本地路径。

2. 添加新文件:使用“svn add 文件名”命令将新文件添加到版本库中。

如果要添加多个文件,可以使用通配符“.扩展名”来批量添加,例如“svn add .txt”将添加所有扩展名为.txt的文件。

3. 提交修改:使用“svn commit -m 提交信息”命令将修改的代码提交到仓库中。

其中,“-m”参数后面跟着提交信息,简要描述你做了哪些修改。

4. 更新代码:使用“svn update”命令将当前目录以及子目录下的所有文件都更新到最新版本。

如果要更新特定文件,可以使用“svn update [文件路径]”命令。

5. 比较代码:使用“svn diff”命令比较当前文件与版本库中的文件差异。

如果要比较不同版本的差异,可以使用“svn diff -r [版本号] [文件路径]”命令。

6. 分支操作:创建分支使用“svn copy [源路径] [目标路径] -m 创建分支信息”。

其中,[源路径]是你要创建分支的分支或主线的位置,[目标路径]是分支的名称。

合并分支使用“svn merge [源分支路径] [目标分支路径]”。

其中,[源分支路径]是要合并的分支的路径,[目标分支路径]是合并的目标位置。

7. 查看历史记录:使用“svn log [文件或目录路径]”命令查看指定文件或目录的历史记录。

8. 标签操作:创建标签使用“svn copy [源路径] [目标路径] -m 创建标签信息”。

其中,[源路径]是你要创建标签的分支或主线的位置,[目标路径]是标签的名称。

linux下常用的svn操作

linux下常用的svn操作

1:checkout命令:从svn版本库中取代码时可以先查看具体代码的路径,windows下右键单击Tortoise->repo_browser 可直接查看,linux下可以输入命令:svn list 版本库地址如图:Checkout时命令是:Svn checkout 版本库地址如图:注意在目前的svn版本中必须checkout一个文件夹下来,只checkout单个文件会提示失败。

如图:若想查看svn上某个具体文件,从而决定是否要checkout当前版本下来,可以执行命令:svn cat 文件在版本库上的地址。

下载好代码后可以通过执行ll –a 命令查看文件信息,可以看到在下载好的文件夹下有一个.svn 文件夹,该文件夹是用来维护工作拷贝信息的,保证拥有该文件夹的读写权限,就可以对下载的代码进行commit等一系列操作。

如图:2:commit命令:将本地的修改工作拷贝上传到svn 服务器中,保证版本库的一致具体命令是:svn commit 要上传的文件路径–m “日志信息”如图:日志信息可以为空。

注意提交时需将该文件更新,在上传,否则出错。

若当前上传的文件不是从svn上checkout下来的文件,会提示不是工作副本,无法上传。

3:import 命令:将本地代码上传到版本库中进入到需要上传代码的目录,执行命令:Svn import 想要上传到svn的路径-m “上传的日志信息”–no-ignore如图:注意上传时需添加日志选项-m ,可以为空,并且需要添加选项—no-ignore因为svn上传时会默认屏蔽掉so .o 等文件,导致上传上去的代码不完整,若上传一半出错提示某些文件无法识别,最好将该文件的父文件夹打包上传,就可以成功传上去了。

4:log 命令查看svn版本库的日志信息,具体命令是:Svn log 查看日志信息的文件名如图:5:update命令:将当前文件更新到版本库上某个具体版本文件具体命令是:Svn update –r 要更新的版本号文件路径如图:6:add 命令:往版本库中添加新的文件add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去。

TortoiseSVN客户端常用命令详解

TortoiseSVN客户端常用命令详解

TortoiseSVN客户端常用命令详解1、Checkout首先要Checkout服务器端的Repository,所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。

Checkout的具体方式是:在客户端新建一个空目录,比如:F:\Project1 (确保是空的)在该目录上单击右键,在弹出式菜单中选中SVN Checkout...,之后按要求录入内容:然后点OK,会弹出一个认证对话框,输入用户名和密码。

点OK后就完成了对Repository的Checkout。

检出后,所有检出文件上都打着绿色对勾:命令方式检出1:在DOS命令中输入需要检出的目录:http://192.168.1.210:8081/svn/svnproject/Knowledge2:其中,意思是,检出文档是放在D盘的根目录下,是检出文档的存放位置,如下图: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,就可以添加多个文件或目录。

svn ls 用法 -回复

svn ls 用法 -回复

svn ls 用法-回复SVN(Subversion)是一种集中式版本控制系统,它被广泛用于软件开发过程中进行版本管理和代码协作。

在SVN中,svn ls是一个非常重要的命令,用于列出指定目录下的文件和子目录。

本文将详细介绍svn ls的用法,并提供一步一步的回答。

一、svn ls的基本用法1. 查看当前目录下的文件和子目录要列出当前目录下的所有文件和子目录,可以使用以下命令:svn ls该命令会列出当前目录下的所有文件和子目录的名称。

2. 查看指定目录下的文件和子目录如果需要列出指定目录下的所有文件和子目录,可以在svn ls后面加上目录的路径。

例如:svn ls /path/to/directory其中"/path/to/directory"是指定的目录路径。

3. 查看指定版本下的文件和子目录除了可以列出当前版本下的文件和子目录外,svn ls还可以指定要查看的版本。

使用-r参数后跟指定的版本号即可。

例如:svn ls -r 10该命令会列出版本号为10的文件和子目录。

二、使用示例下面将结合几个使用示例来说明svn ls的用法。

示例一:列出当前目录下的文件和子目录假设当前工作目录为"/project",使用以下命令可以列出该目录下的所有文件和子目录:svn ls该命令的输出结果可能如下所示:file1.txtfile2.txtdirectory1/directory2/示例二:列出指定目录下的文件和子目录假设需要查看"/project/directory1"目录下的文件和子目录,可以使用以下命令:svn ls /project/directory1该命令的输出结果可能如下所示:file3.txtfile4.txtsubdirectory/示例三:列出指定版本下的文件和子目录假设需要查看版本号为5的文件和子目录,则可以使用以下命令:svn ls -r 5该命令的输出结果可能如下所示:file5.txtfile6.txtdirectory3/三、高级用法除了上述基本用法外,svn ls还支持一些高级用法。

svn全部命令与中文详细解释

svn全部命令与中文详细解释

----------------------------------------------------------------------SVN 全部命令与中文详细解释:----------------------------------------------------------------------C:\Documents and Settings\Administrator>svn ?用法: svn <subcommand> [options] [args]Subversion 命令行客户端,版本 1.6.6。

使用“svn help <subcommand>”显示子命令的帮助信息。

使用“svn --version”查看程序的版本号和版本库访问模块,或者使用“svn --version --quiet”只查看程序的版本号。

大多数的子命令可接受文件或目录参数,对目录进行递归处理。

如果没有指定参数,默认对当前目录(包含当前目录)递归处理。

可用的子命令:add:把文件和目录纳入版本控制,通过调度加到版本库。

它们会在下一次提交时加入。

blame (praise, annotate, ann):输出指定文件或URL的追溯内容,包含版本和作者信息。

cat:输出指定文件或URL的内容。

changelist (cl):耦合(或解耦)文件与修改列表 CLNAME。

checkout (co):从版本库签出工作副本。

cleanup:递归清理工作副本,删除锁,继续未完成操作,等等。

commit (ci):把工作副本的修改提交到版本库。

copy (cp):在工作副本或版本库中复制数据,保留历史。

delete (del, remove, rm):从版本库中删除文件和目录。

diff (di):显示两个版本或路径的差异。

export:产生一个无版本控制的目录树副本。

help (?, h):描述本程序或其子命令的用法。

SVN使用手册(简易版)

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命令行使用总结

svn命令⾏使⽤总结常⽤命令:svn add --force * //将当前⽬录下的新增加⽂件添加到控制版本svn commit -m “提交当前⽬录下的全部在版本控制下的⽂件“ * ( *表⽰全部⽂件) //提交上传⽂件svn status //查看当前⽂件路径下新增和修改的⽂件名svn diff //查看当前⽂件路径下修改⽂件的差异点svn info ⽂件名 //查看⽂件的svn信息,包含svn路径和svn版本svn checkout svn路径 -r svn版本号 //下载某⼀版本的svn代码svn cleanup //清除⼯作副本svn checkout 简写:svn co3、添加新⽂件svn add file(⽂件名)svn add *.php(添加当前⽬录下所有的php⽂件)4、提交到版本库svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保持锁,就使⽤--no-unlock开关)svn commit -m “提交当前⽬录下的全部在版本控制下的⽂件“ * ( *表⽰全部⽂件)例如:svn commit -m "add test file for my test" test.phpsvn commit -m “提交我的测试⽤test.php“ -N --no-unlock test.php (保持锁就⽤–no-unlock开关)注意:必须带上-m参数,参数可以为空("")svn commit 简写:svn ci5、更新⽂件svn updatesvn update -r 修正版本 ⽂件名svn update ⽂件名例如:svn update (后⾯没有⽬录,默认将当前⽬录以及⼦⽬录下的所有⽂件都更新到最新版本)svn update -r 200 test.cpp (将版本库中的⽂件 test.cpp 还原到修正版本(revision)200)svn update test.php (更新与版本库同步) 提交的时候提⽰过期冲突,需要先 update 修改⽂件, 然后清除svn resolved,最后再提交commit。

svn常用命令

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<-更新与版本库同步。

SVN命令使用手册

SVN命令使用手册

M:修改A:添加D:删除SVN命令使用一、常用命令1.Svnadmin create创建库svnadmin create path在windows版本上:D:\>svnadmin create test2D:\>通过dir来列出目录中文件,已经包含test2,如图1所示:图1说明此时已经成功建立2.Svn import导入项目svn import project_path svn_lib_path -m “comment”举例:假设有一个工程名称unismg,代码的文件目录是unicom;A、我们在D盘新建目录unismg,在此目录下新建三个文件目录,如图2所示:图2trunk中存放的是项目主线;branches中存放源码分支;tags存放在开发过程中做的标签。

B、我们将代码unicom放到d:\unismg\trunk\中C、执行命令D:\>svn import d:\unismg file:///d:/test2/unismg -m "initial import unismg" 结果如图3所示:SVN为培训Adding /export/home/mcpp20/niuj/proj/mcpp1.5/mtrunk/mcpp64/mcpp/src/modules/getAdding /export/home/mcpp20/niuj/proj/mcpp1.5/mtrunk/mcpp64/mcpp/src/modules/get/mp_get_pending.c Adding /export/home/mcpp20/niuj/proj/mcpp1.5/mtrunk/mcpp64/mcpp/src/modules/get/mp_get_mtsr.c Adding /export/home/mcpp20/niuj/proj/mcpp1.5/mtrunk/mcpp64/mcpp/src/modules/get/mp_get_mo.c……Adding /export/home/mcpp20/niuj/proj/mcpp1.5/mbranchesAdding /export/home/mcpp20/niuj/proj/mcpp1.5/mtagsCommitted revision 38.3.Svn co: 将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co举例:svn co svn://192.168.30.251:3482/trunk/unicom下面信息就是从库中下载的代码信息。

SVN命令大全

SVN命令大全

目录1、将文件CHECKOUT到本地目录 (2)2、往版本库中添加新的文件 (2)3、将改动的文件提交到版本库 (2)4、加锁/解锁 (2)5、更新到某个版本 (2)6、查看文件或者目录状态 (2)7、删除文件 (3)8、查看日志 (3)9、查看文件详细信息 (3)10、比较差异 (3)11、将两个版本之间的差异合并到当前文件 (3)12、SVN帮助 (3)13、版本库下的文件和目录列表 (4)14、创建纳入版本控制下的新目录 (4)15、恢复本地修改 (4)16、代码库URL变更 (4)17、解决冲突 (4)18、输出指定文件或URL的内容。

(5)1、将文件CHECKOUT到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件svn add file例如:svn add test.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 ci4、加锁/解锁svn lock -m “LockMessage” [--force] PATH例如:svn lock -m “lock test file” test.phpsvn unlock PATH5、更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)svn update test.php(更新,于版本库同步。

本地svn 回滚自己提交的代码的步骤

本地svn 回滚自己提交的代码的步骤

本地svn 回滚自己提交的代码的步骤现在,很多项目在进行中的时候,使用的都是版本控制工具,比如Git 或者SVN。

SVN是一个C/S模式的版本控制工具,由于其较为便捷的使用,许多团队或者个人也在使用这个工具。

在使用SVN版本控制的过程中,有时候会出现提交代码后发现出现了一些问题,这个时候我们可以通过回滚自己提交的代码来解决这些问题。

以下是关于本地SVN回滚自己提交的代码的步骤:步骤一:查看版本历史记录首先打开命令行窗口,进入到本地的代码仓库路径下,通过以下命令查看SVN的版本历史记录:```svn log```这时会显示出所有提交的版本记录,找到自己要回滚的版本号。

步骤二:回滚到指定版本接下来我们通过以下命令进行回滚操作:```svn update -r 版本号```其中,版本号为要回滚到的版本号。

步骤三:提交回滚操作回滚操作完成之后,我们需要通过以下命令提交这个操作:```svn commit -m 'rollback to 版本号'```其中,rollback to 版本号为回滚的版本号。

步骤四:检查回滚操作是否成功你可以通过以下命令查看回滚操作是否成功:```svn log```如果版本历史记录显示已经回滚到指定版本,则表示操作成功。

需要注意的是,在回滚完成之后,代码已经被撤回到指定版本,原先的版本号已经删除了,不过我们可以通过一些操作来恢复这个版本,下面就是恢复SVN回滚的版本的步骤:步骤一:查看删除的版本信息首先打开命令行窗口,进入到本地的代码仓库路径下,通过以下命令查看一个已经被回滚的版本的信息:```svn log -v```其中,-v参数可以显示此版本的所有改动信息,包括添加、删除和修改的文件。

步骤二:恢复回滚的文件发现被回滚的文件之后,我们可以通过以下命令来让这个文件变为可编辑状态:```svn update -r 版本号文件路径```然后我们就可以对这个文件进行编辑,如果想要恢复这个文件,可以将其复制并粘贴到现有的项目路径中。

本地svn回滚自己提交的代码的步骤

本地svn回滚自己提交的代码的步骤

本地svn回滚自己提交的代码的步骤本地SVN回滚自己提交的代码的步骤可以归纳为以下几个主要步骤:备份代码、查看历史记录、定位要回滚的版本、回滚代码、测试和提交。

1.备份代码:
在进行回滚操作之前,强烈建议备份您的代码。

这是为了防止意外发生并且能够轻松还原到原始状态。

您可以复制整个项目文件夹到另一个位置作为备份,或者使用版本控制工具中的“导出”功能来创建代码库的副本。

2.查看历史记录:
打开您的 SVN 客户端工具(如 TortoiseSVN),右键单击项目文件夹,选择“查看日志”或“历史记录”。

这将打开一个日志窗口,显示了所有提交的历史记录。

3.定位要回滚的版本:
在日志窗口中,找到您要回滚的版本。

您可以使用提交时间、提交者或提交说明等信息来帮助您确定。

双击该版本或右键单击选择“显示差异”。

这将显示版本与当前代码的差异。

4.回滚代码:
确保您选择回滚的版本之后,右键单击该版本,并选择“还原到此处”。

确认回滚操作后,您可以选择将回滚结果保存到工作副本或创建新的副本文件夹。

点击“是”来开始回滚操作。

您的代码将会被还原到所选版本的状态。

5.测试和提交:
在回滚完成后,对代码进行测试以确保回滚操作没有引入新的问题。

如果一切正常,您可以将回滚后的代码提交到代码库中。

右键单击项目文件夹,选择“提交”,输入提交说明,然后点击“确定”。

请注意,以上步骤是基于您已经熟悉SVN的基本操作和使用SVN客户端工具进行操作的前提下。

如果您是第一次使用SVN,可能需要更详细的操作步骤以及适用于您使用的具体工具的指南。

svn历史提交记录

svn历史提交记录

svn历史提交记录SVN(Subversion)是一款开源的版本控制系统,用于管理代码的变更历史。

在SVN中,每一次代码的提交都会被记录在历史记录中,这些记录可以帮助我们追踪代码的变更历程,了解每一次变更的内容和原因,从而更好地管理和维护代码。

要查看SVN的历史提交记录,可以使用SVN的命令行工具或者图形化界面工具,如TortoiseSVN。

在命令行中,可以使用svn log命令来查看历史提交记录。

这个命令会显示每一次提交的信息,包括提交者、提交时间、提交信息以及变更的文件列表等。

如果想要查看更详细的信息,可以使用svn diff -r <rev1>:<rev2>命令来比较两个版本之间的差异。

在图形化界面中,TortoiseSVN提供了一个非常直观的方式来查看历史提交记录。

首先,需要右键点击需要查看历史的文件夹或者文件,然后选择“TortoiseSVN”菜单中的“Show Log”选项。

在弹出的窗口中,可以看到每一次提交的信息,包括提交者、提交时间、提交信息等。

选中某一次提交,可以查看该次提交的详细信息,包括变更的文件列表和具体的变更内容。

除了查看历史提交记录,我们还可以使用SVN的其他功能来管理代码的变更。

例如,可以使用svn update命令来更新本地的代码,使用svn commit命令来提交本地的变更到远程仓库,使用svn merge命令来合并不同分支的代码等。

这些功能可以帮助我们更好地协作开发,提高代码的质量和可维护性。

总之,SVN的历史提交记录是一个非常重要的资源,可以帮助我们更好地管理和维护代码。

通过查看历史提交记录,我们可以了解代码的变更历程,找到问题的根源,避免重复犯错。

同时,SVN的其他功能也可以帮助我们更好地协作开发,提高代码的质量和可维护性。

svn_log命令说明

svn_log命令说明

svn_log命令说明svn log显⽰⼀系列版本或⽂件的⽇志信息;⽤法:1. log [PATH]2. log URL[@REV] [PATH...]1、打印本地路径的⽇志信息,缺省范围为Base:12、打印URL下PATH的⽇志信息;缺省情况下为REV:1;如果没有指定REV,则为HEAD:1多个-c或者-r可以被指定,但不是说它们的组合,向前和向后的版本范围可以混合使⽤;使⽤-v,可以打印出每个log影响到的路径使⽤-q,不会打印log本体(和-v⼀块使⽤)每个⽇志信息只打印⼀次,即使那个版本有多于⼀个的路径请求⽇志信息;缺省情况下,⽇志跟随拷贝历史,使--stop-on-copy 取消这个缺省⾏为;选项:-r\-q\-v\--incremental\--xml\--targets ARG-g(--use-merge-history)显⽰从合并历史增加的信息-c[--change] ARG 在版本ARG所做的改变--stop-on-copy 当遍历⽇志时,不要跨拷贝-l[--limit] ARG ⽇志条⽬的最⼤数量--with-all-revprops 获取所有的版本属性--with-no-revprops不获取版本属性--with-revprop ARG获取版本属性ARG⽰例:1、E:\svn_workcp\directory2>svn log -v file:///E:/svn_repository/test/directoryTest/directoryTest/bin/Properties------------------------------------------------------------------------r9 | liubin | 2010-06-20 09:35:25 +0800 (星期⽇, 20 六⽉ 2010) | 1 lineChanged paths:A /directoryTest/directoryTest/bin/Properties (from /directoryTest/directoryTest/Properties:8)copy to bin------------------------------------------------------------------------r8 | liubin | 2010-06-20 09:27:33 +0800 (星期⽇, 20 六⽉ 2010) | 1 lineChanged paths:A /directoryTest/directoryTest/Properties/Debug (from /directoryTest/directoryTest/obj/Debug:7)copy to------------------------------------------------------------------------r6 | liubin | 2010-06-19 12:02:38 +0800 (星期六, 19 六⽉ 2010) | 1 lineChanged paths:M /directoryTest/directoryTest/Properties/AssemblyInfo.csM /directoryTest/directoryTest/Properties/Settings.Designer.cshello------------------------------------------------------------------------r2 | liubin | 2009-10-05 15:46:15 +0800 (星期⼀, 05 ⼗⽉ 2009) | 1 lineChanged paths:A /directoryTest/directoryTestA /directoryTest/directoryTest/Form1.Designer.csA /directoryTest/directoryTest/Form1.csA /directoryTest/directoryTest/Form1.resxA /directoryTest/directoryTest/Program.csA /directoryTest/directoryTest/PropertiesA /directoryTest/directoryTest/Properties/AssemblyInfo.csA /directoryTest/directoryTest/Properties/Resources.Designer.csA /directoryTest/directoryTest/Properties/Resources.resxA /directoryTest/directoryTest/Properties/Settings.Designer.csA /directoryTest/directoryTest/Properties/Settings.settingsA /directoryTest/directoryTest/XMLFile1.xmlA /directoryTest/directoryTest/XMLSchema1.xsdA /directoryTest/directoryTest/XMLSchema1.xsxA /directoryTest/directoryTest/binA /directoryTest/directoryTest/bin/DebugA /directoryTest/directoryTest/bin/Debug/directoryTest.exeA /directoryTest/directoryTest/bin/Debug/directoryTest.pdbA /directoryTest/directoryTest/bin/Debug/directoryTest.vshost.exeA /directoryTest/directoryTest/directoryTest.csprojA /directoryTest/directoryTest/objA /directoryTest/directoryTest/obj/DebugA /directoryTest/directoryTest/obj/Debug/TempPEA /directoryTest/directoryTest/obj/Debug/directoryTest.Form1.resourcesA /directoryTest/directoryTest/obj/Debug/directoryTest.Properties.Resources.resourcesA /directoryTest/directoryTest/obj/Debug/directoryTest.csproj.GenerateResource.CacheA /directoryTest/directoryTest/obj/Debug/directoryTest.exeA /directoryTest/directoryTest/obj/Debug/directoryTest.pdbA /directoryTest/directoryTest/obj/directoryTest.csproj.FileList.txtA /directoryTest/directoryTest.slnA /directoryTest/directoryTest.suoinitial import------------------------------------------------------------------------2、E:\svn_workcp\directory2>svn log -v --stop-on-copy file:///E:/svn_repository/test/directoryTest/directoryTest/bin/Properties------------------------------------------------------------------------r9 | liubin | 2010-06-20 09:35:25 +0800 (星期⽇, 20 六⽉ 2010) | 1 lineChanged paths:A /directoryTest/directoryTest/bin/Properties (from /directoryTest/directoryTest/Properties:8)copy to bin------------------------------------------------------------------------E:\svn_workcp\directory2>svn log -v -c 6 file:///E:/svn_repository/test/directoryTest/directoryTest/bin/Properties------------------------------------------------------------------------r6 | liubin | 2010-06-19 12:02:38 +0800 (星期六, 19 六⽉ 2010) | 1 lineChanged paths:M /directoryTest/directoryTest/Properties/AssemblyInfo.csM /directoryTest/directoryTest/Properties/Settings.Designer.cshello------------------------------------------------------------------------3、svn log /repo/project foo.c bar.c4、svn log –v –q仅显⽰变更的⽂件名5、svn log如果所查⽂件是合并来的,则还能显⽰合并详细信息;6、当你指定⼀个⽇期,Subversion会在版本库找到接近这个⽇期的最近版本(这个⽇期之前的最近版本),并且对这个版本继续操作:$ svn log -r {2006-11-28}------------------------------------------------------------------------r12 | ira | 2006-11-27 12:31:51 -0600 (Mon, 27 Nov 2006) | 6 lines 7、你可以使⽤时间段,Subversion会找到这段时间的所有版本:$ svn log -r {2006-11-20}:{2006-11-29}。

linu某svn命令怎么使用

linu某svn命令怎么使用

linu某svn命令怎么使用linu某中svn命令使用大全检测是否安装svn:svnserve --versionsvn服务的关闭:killall svnserve创建svn库:svnadmin create /opt/svn/repos配置自动启动:把svnserve -d -r /opt/svn/repos 放在/etc/rc.d/rc.local最后一行启动svn: svnserve -d -r /opt/svn/repos如果已经有svn在运行,可以换一个端口运行:svnserve -d -r/opt/svn/repos --listen-port 33911、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.ain简写:svn co2、往版本库中添加新的文件 svn add file例如:svn add test.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 ci4、加锁/解锁 svn lock -m "LockMessage" [--force] PATH例如:svn lock -m "lock test file" test.phpsvn unlock PATH5、更新到某个版本 svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn回滚提交的代码

svn回滚提交的代码

svn回滚提交的代码使用svn管理代码的开发人员可能会遇到需要回滚提交的代码的情况,比如提交的代码存在问题或与其他开发者的代码产生了冲突等。

下面将分步骤介绍如何使用svn进行回滚。

步骤一:确定需要回滚的版本号在使用svn回滚之前,首先需要确定需要回滚的版本号。

可以使用svn log命令查看提交记录并找到要回滚的版本号。

例如,使用以下命令查看提交记录:svn log -v该命令将列出所有的提交记录以及每个提交记录的版本号。

找到需要回滚的版本号后,记录下来以备后用。

步骤二:使用svn update命令更新本地代码在回滚之前,需要使用svn update命令更新本地代码,以确保本地代码和服务器端的代码处于同一版本状态。

使用以下命令进行更新:svn update步骤三:使用svn merge命令准备回滚操作使用svn merge命令准备回滚操作。

该命令将合并指定版本号的代码到当前代码中,并将被合并的代码标记为待提交状态。

使用以下命令进行准备操作:svn merge -c -N .其中,-c参数表示要合并指定版本号的代码,后面跟着需要回滚的版本号;-N参数表示不自动将代码提交,需要手动进行提交操作;.表示当前目录,可以根据需要指定具体目录。

步骤四:使用svn status命令查看待回滚的文件在执行svn merge命令后,被合并的代码会被标记为待提交状态。

使用svn status命令可以查看待回滚的文件。

例如,使用以下命令查看待回滚的文件:svn status被标记为“M”的文件代表被修改的文件,被标记为“D”的文件代表被删除的文件,需要回滚的代码就是被修改或删除的文件。

步骤五:使用svn revert命令回滚代码在确定要回滚的文件后,使用svn revert命令回滚代码。

该命令将取消指定文件的修改,将文件恢复到指定版本号的状态。

使用以下命令进行回滚操作:svn revert其中,表示需要回滚的文件路径,可以根据需要指定多个文件路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SVN 查看历史信息通过svn命令可以根据时间或修订号去查看过去的版本,或者某一版本所做的具体的修改。

以下四个命令可以用来查看svn 的历史:svn log 用来展示svn 的版本作者、日期、路径等等;svn diff 用来显示特定修改的行级详细信息;svn cat 取得在特定版本的某文件显示在当前屏幕;svn list 显示一个目录或某一版本存在。

(一)svn loglog: 显示一组版本与/或文件的提交日志信息。

用法: 1、log [PA TH]2、log URL[@REV] [PA TH...]1、显示本地PA TH (默认: “.”) 的日志信息。

默认的版本范围是BASE:1。

2、显示URL 中PA TH (默认: “.”) 的日志信息。

如果指定了REV,就从REV开始查找URL,版本范围是REV:1。

否则就从HEAD 开始查找URL,版本范围是HEAD:1。

可以指定多个“-c”或“-r”选项(但是不允许同时使用“-c”和“-r”选项),以及混合使用前向和后向范围。

使用-v 时,在日志信息中显示受影响的路径名。

使用-q 时,不显示日志信息主体(请注意,它可与-v 并存)。

每条日志信息只会显示一次,即使指定了此版本涉及到的多个路径。

默认日志信息会追溯复制历史;使用--stop-on-copy 可以关闭这种行为,这可以用来找出分支点。

有效选项:-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)版本参数可以是如下之一:NUMBER 版本号'{' DA TE '}' 在指定时间以后的版本'HEAD' 版本库中的最新版本'BASE' 工作副本的基线版本'COMMITTED' 最后提交或基线之前'PREV' COMMITTED的前一版本-q [--quiet] : 不打印信息,或只打印概要信息-v [--verbose] : 打印附加信息-g [--use-merge-history] : 从合并历史使用/显示额外信息-c [--change] ARG : 版本ARG 引起的改变--targets ARG : 传递文件ARG 内容为附件参数--stop-on-copy : 查看历史不要跨越不同的副本--incremental : 给予适合串联的输出--xml : 输出为XML-l [--limit] ARG : 日值项最大值--with-all-revprops : 获取所有版本属性--with-no-revprops : 没有找回版本属性--with-revprop ARG : 获取版本属性ARG全局选项:--username ARG : 指定用户名称ARG--password ARG : 指定密码ARG--no-auth-cache : 不要缓存用户认证令牌--non-interactive : 不要交互提示--trust-server-cert : 不提示的接受未知的SSL 服务器证书(只用于选项“--non-interactive”)--config-dir ARG : 从目录ARG 读取用户配置文件--config-option ARG : 以下属格式设置用户配置选项:FILE:SECTION:OPTION=[V ALUE]例如:servers:global:http-library=serf实例1:获取版本号14的版本信息svn log -r r14 或者svn log -r 14实例2:获取版本号14至17的版本信息svn log -r r14:r17 或者svn log -r 14:17实例3:获取全部版本信息svn log实例4:获取制定单个文件的版本信息svn log foo.csvn log /repo/project/foo.csvn log /repo/project foo.c bar.c实例5:查看版本信息及提交的文件路径并导入以XML形式导出svn log -v -r 14:17 > svn.xml --xmlsvn log -v -r 14:17 >> svn.xml --xml(二)svn diff用法: 1. diff [-c M | -r N[:M]] [TARGET[@REV]...]2. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \[PA TH...]3. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]1、显示版本REV 中TARGET 在两个不同的版本之间的差异。

TARGET 要么全是工作副本路径,要么全是URL。

如果TARGET 是工作副本路径,N 默认为BASE,M 默认为工作副本;如果TARGET 是URL,N 必须指定,M 默认为HEAD。

“-c M”等价于“-r M-1:M”,“-c -M”等价于“-r M:M-1”。

2、显示新旧版本中对应目标的差异。

PA TH 是相对于新旧目标的相对路径,它限制只输出这些路径上的差异。

新旧目标可以是工作副本路径或地址URL[@REV]。

新目标默认与旧目标相同,OLDREV 默认为N,NEWREV 默认为M。

3、“svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]”的简写。

使用不加参数的“svn diff”显示工作副本中的本地修改。

有效选项:-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)版本参数可以是如下之一:NUMBER 版本号'{' DA TE '}' 在指定时间以后的版本'HEAD' 版本库中的最新版本'BASE' 工作副本的基线版本'COMMITTED' 最后提交或基线之前'PREV' COMMITTED的前一版本-c [--change] ARG : 在ARG版本(如同-r ARG-1:ARG)作的修改如果ARG为负数则等价于-r ARG:ARG-1 --old ARG :使用ARG 作为旧目标--new ARG : 使用ARG 作为新目标-N [--non-recursive] : 过时;尝试--depth=files 或--depth=immediates--depth ARG : 受深度参数ARG(“empty”,“files”,“immediates”,或“infinity”) 约束的操作--diff-cmd ARG : 使用ARG 作为比较命令-x [--extensions] ARG : 缺省: “-u”。

当Subversion 调用外部比较程序时,ARG 直接传给它。

但是当Subversion 使用缺省的内置比较实现,或者正显示追溯时, ARG 可以是:-u (--unified):输出三行统一上下文。

-b (--ignore-space-change):忽略空白数量的修改。

-w (--ignore-all-space):忽略所有的空白。

--ignore-eol-style:忽略行尾样式的改变。

-p (--show-c-function):在比较输出中显示C 函数名称。

--no-diff-deleted : 不要输出删除文件造成的差异--notice-ancestry : 比较差异时提示原始信息--summarize : 显示结果的概要--changelist ARG : 只能对修改列表ARG 成员操作[aliases: --cl]--force : 强制操作运行--xml : 输出为XML全局选项:--username ARG : 指定用户名称ARG--password ARG :指定密码ARG--no-auth-cache : 不要缓存用户认证令牌--non-interactive : 不要交互提示--trust-server-cert : 不提示的接受未知的SSL 服务器证书(只用于选项“--non-interactive”)--config-dir ARG : 从目录ARG 读取用户配置文件--config-option ARG : 以下属格式设置用户配置选项:FILE:SECTION:OPTION=[V ALUE]例如:servers:global:http-library=serf实例1:如果用svn diff,不带任何参数,它将会比较你的工作文件与缓存在.svn的“原始”拷贝Svn diffIndex:rules.txt============================================================--- rules.txt (revision 3)+++ rules.txt (working copy)@@ -1,4 +1,5 @@Be kind to othersFreedom = ResponsibilityEverything in moderation-Chew with your mouth open实例2:比较工作拷贝和版本库svn diff -r 3 rule.txt,就是比较你的工作拷贝和版本库中版本号为3的文件rule.txt 实例3:比较版本库与版本库通过-r(revision)传递两个通过冒号分开的版本号,这两个版本会进行比较svn diff -r 2:3 rule.txt 用来比较svn工作版本中版本号2和3的这个文件的变化(三)svn cat如果只是希望检查一个过去版本,不希望查看他们的区别,可使用svn catsvn cat -r 版本号rule,txt这个命令会显示在该版本号下的该文件内容(四)svn listsvn list可以在不下载文件到本地目录的情况下来察看目录中的文件:svn list /repos/svnREADMEbranches/clients/tags/基本使用34trunk/如果你希望察看详细信息,你可以使用--verbose(-v) 参数:svn list -v /repos/svn20620 harry 1084 Jul 13 2006 README23339 harry Feb 04 01:40 branches/21282 sally Aug 27 09:41 developer-resources/23198 harry Jan 23 17:17 tags/23351 sally Feb 05 13:26 trunk/。

相关文档
最新文档