A. SVN命令行怎么用
SVN Commit
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend
SVN CommitAll
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:* /notempfile /closeonend
SVN Diff
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend
SVN Log
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:%f /notempfile /closeonend
SVN Update
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:%f /notempfile /closeonend
SVN UpdateAll
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:* /notempfile /closeonend
Source Monitor
D:\SourceMonitor\SourceMonitor /DC++ %f
B. 公司新人svn使用教程
公司新人svn使用教程如下:
1。如果使用命令行,则拉取分支是SVN。
2.对于TortoiseSVN的客户端,右击源文件夹,在右击菜单中选择TortoiseSVN-“分支/标记”,在弹出窗口的“toURL”列中填写分支存储路径,然后确认。
3.还有一种简单的方法可以在tortoisesvn客户机中提取分支。右键单击源文件夹,不要释放鼠标,将其拖到存储分支的文件夹中,释放鼠标,将出现菜单。在菜单中,选择“SVN将版本控制项复制到当前位置”。
创建分支:1。您可以浏览TortoiseSVNpoint版本库,然后在需要创建分支的路径(例如trunk)中单击“复制到新分支名称”(注意:它不能与trunk同名,您可以创建一个新名称,例如branch)。2浏览TortoiseSVNpoint版本库,右键单击TortoiseSVN并选择createfolder,然后创建一个新的路径名(folder),并将主干或其他分支路径(在本例中,估计您希望并行开发)的代码导入该路径。
C. windows 怎么用svn命令
1、Windows下命令行工具:
发现原来安装的tortoisesvn已经集成到shell中,不能在命令行下使用。
下载Apache Subversion command line tools,这是一个可以在cmd下使用的命令行工具,解压后把里面bin目录这个路径添加到环境变量的path,这样在cmd下就可以使用了,和linux下使用svn的习惯一样了。
目录约定:
/trunck:开发主线
/branches:支线副本
/tags:标签副本(一旦创建,不允许修改)
1)使用trunk作为主要的开发目录
一般的,我们的所有的开发都是基于trunk进行开发,当一个版本(release)开发告一段落(开发、测试、文档、制作安装程序、打包等结束后),代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。
当下一个版本/阶段的开发任务开始时,继续在trunk进行开发。此时,如果发现了上一个已发行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(Developing Version)无法满足时间要求,这时候就需要在上一个版本上进行修改了。解决方法是基于发行版对应的tag,做相应的分支(branch)进行开发。
2)下图为struts2的SVN仓库目录:
3、常用命令
svn help
svn --version
svn --version --quiet 只显示版本号
svn checkout 地址
svn add 文件或者文件夹 增加本地数据到服务器
svn commit / svn ci -m “注释” 文件名 提交代码,要先add才commit
svn update / svn up不必跟特定的文件或目录,也可以自己指定需要更新的文件或目录。每次commit或者改动之前最好更新一下。
svn log
svn delete 文件名
svn resolve 路径 --accept working 解决冲突
http://zccst.iteye.com/blog/1765519
svn switch 远程路径 版本切换
svn list路径/svn ls 列出版本库下的文件和目录
svn merge -r m:n 路径 合并文件,从版本号m到版本号n的远程分支都合并到当前分支中
svn info 确认工作目录的svn信息
svn diff -r m:n 路径 对版本m和版本n比较差异
svn cleanup 为失败的失误清场
svn status -v 在本地进行代码修改,检查修改状态
svn import 远程路径 --message “message” 将当前路径下文件导入到版本库中
svn export 远程路径 导出一份干净的项目
svn move/ svn mv 原文件名 新文件名 重命名
svn mkdir 文件名
svn / svn cp 源文件路径 新文件路径
svn revert 文件名 只能恢复未提交之前的操作
若要还原已提交的改动:只能用旧文件覆盖新文件。操作如下:
1)sun up 让本地工作拷贝更新到最新状态
2)svn log your_file_path 查看文件日志,这时候提交时填写的说明信息就派上用场了
3)svn diff -r 旧修订版序号:新修订版序号 your_file_path 查看两个修订版之间的不同。
4)决定用哪个旧的修订版号后,用旧的修订版号文件覆盖新的修订版号文件。svn merge -r 新修订版序号:旧修订版序号 your_file_path
5)svn commit -m "恢复到某修订版(某修订版作废)"
本地的版本叫做working
4、关于merge
branch主要用于新功能的开发
合并发生在本地working ,只要你不提交就不会影响到repository
合并前一定要先update、commit,保证不会out of day,并将本地的修改保存到repository
branch和trunk并行开发的过程中,要经常同步,将trunk的修改合并到branch,合并时选择"Merge a range of revision"
branch最后合并回trunk时,merge type选择"Reintegrate a branch"
不管是从trunk合并到branch还是最终从branch合并回trunk,在每次合并前最好先update,然后将本地的修改先全部commit,保护好现场,万一合并不理想随时都可以reverthttp://blog.csdn.net/eggcalm/article/details/6606520
http://zhengkun.readthedocs.org/zh_CN/latest/2014/02/07/svn-usage/
5、关于解决冲突
发生冲突之后会出现三个临时文件:
XXX.mine XXX.r1 XXX.r2
一旦解决了冲突,需用svn resolved让subversion知道,这样就会删除这三个临时文件,冲突状态解决。
三种解决方式:
手工合并冲突:需要将冲突标志删除
用某一个临时文件覆盖自己的工作文件
用svn revert 放弃本地修改,不需要执行resolved
D. svn如何使用
svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部分,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用。在UNIX环境下,只是安装方式不同,命令执行并无太大区别。
工具/原料
Subversion服务器程序安装包
Subversion的Windows客户端TortoiseSVN安装包
方法/步骤
1软件下载
<1>、下载Subversion服务器程序
到官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择Apache 2.0 或者 Apache 2.2,这样我们可以看到许多下载的内容,目前可以下载Setup-Subversion-1.7.12.msi 。
<2>、下载Subversion的Windows客户端TortoiseSVN。
TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN ,下载方式和前面的svn服务器类似,在Download页面的我们可以选择下载的版本,目前的最高稳定版本的安装文件为TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。
2svn服务器和客户端安装
<1>、安装Subversion,直接运行Setup-Subversion-1.5.3.msi ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。
<2>、安装TortoiseSVN,同样直接运行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
<3>、安装svn的客户端程序,需要的话还可以安装svn的语言包,注意语言包的版本也必须与客户端程序的版本一致
3建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create E:\svndemo\repository
就会在目录E:\svndemo\repository下创建一个版本库。
我们也可以使用TortoiseSVN图形化的完成这一步:
在目录E:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
步骤阅读 .4SVN配置用户和权限
来到E:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,“=”前的字符就是用户名,后面的就是密码。还要注意“[users]”前面的注释“#”一定要删除掉。
步骤阅读 .5运行独立服务器
在任意目录下运行:
svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。
6初始化导入
来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\initproject,目录下有一个readme.txt文件:
右键->TortoiseSVN->Import...
在URL of repository输入“svn://localhost/trunk”
在Import Message中输入你的日志信息
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。
需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/trunk”。
步骤阅读 .7基本客户端操作
取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是E:\svndemo\wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我们可以运行。
察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working ,我们可以比较工作拷贝的文件和版本1的区别。
最后,所有的内容都已经录制为动画文件,大家可以参考。
关于本教程大家有什么意见,可以这里讨论 。
如果更新文件以后,有两个人或者多个人同时修改了某个文件的某个位置,是否冲突,(一般不会这样子,因为上传的版本是可以编译通过的,而且每个人负责自己的模块,不会多人独立修改同一个文件,别人也是先更新,后上传修改,,,,)
开发者习惯性动作。早上上班第一件事就是更新svn版本库,再开始一天的工作。
晚上下班,或者其他时候要上传东西可以直接上传因为你负责的东西没人去修改。
冲突是怎么产生的呢:因为不同的人,同时修改了同一个文件的同一个地方,这个时候,他提交了,你没有提交,你就提交不了,这个时候,你要先更新,更新就会出现代码冲突问题。最好不要多人同时修改一个文件,公用的文件,更改之前要和大家沟通一下,或者解决冲突 呵呵
先更新,没有冲突,再提交。有冲突,解决冲突再提交。否则也提交不了。
对于一些处于冲突状态下的文件 ,右键TortoiseSVN ->Resolved,解决冲突。解决冲突: http://www.blogjava.net/jasmine214--love/archive/2011/04/07/347769.html
更新-解决冲突-删掉以下三个文件-提交(如果自己没有修改的文件有冲突,删除再更新即可,自己修改的文件解决冲突)
test.php.mine 是冲突前自己的文件
test.php.版本号 是冲突前本地的版本文件
test.php.服务器的版本号 是冲突后服务器版本文件
END注意事项
如果修改文件后提交不了,大多是因为版本不一致造成的。更新一下,不产生冲突的情况,就可以提交了。
更新文件,如果出现冲突的情况,打开冲突文件test.php会看到类似以下的内容
<<<<<<<<<<<<<<<
asdfadfadfadf
11111111111111
=======
asdfadfadfadf
111111111111111
222222222222
>>>>>>>>>>>>>>>>
结合别人修改的内容和自己修改的内容,然后把文件中的<<<<<,=====,>>>>>>>这类冲突符号去掉。去掉后,还是不能提交的,为什么?因为冲突时会产生三个文件,有这三个文件存在肯定提交不了。
客户端用的tortoisesvn(这个估计程序员用的最多),冲突时会多产生,三个文件
test.php.mine 是冲突前自己的文件
test.php.版本号 是冲突前本地的版本文件
test.php.服务器的版本号 是冲突后服务器版本文件
提交的时候,把这三个文件删除掉就可以提交了。
产生覆盖的原因。
a),在修改冲突文件test.php时,把别人代码都删除掉了,只留下了自己的代码。这样就会产生覆盖了。
b),把test.php.mine中的内容直接到test.php文件,这样也会产生代码覆盖。
上面二种情况都是我亲眼看到新手这样操作的,要避免这二种操作方法。
E. svn命令使用方法
在svn
commit后面可以附加参数指定路径的,这个路径你指定为这单个文件就行了
svn
commit
[path...]
使用svn
help
commit查看commit指令的详细帮助
另外如果用tortoisesvn等客户端的话,在这单个文件上点右键,然后选择commit菜单就行了
F. windowns怎么命令行安装svn
1.windows下的命令行svn客户端
http://somebody-hjh.iteye.com/blog/1415992
我们知道,在linux下面的svn客户端采用命令的方式管理与服务器端svn交互。有些朋友想在windows下也具有相同的功能,而不是TortoiseSVN的GUI管理方式。这样可以使用我们熟悉的svn命令。
在不用安装TortoiseSVN客户端的情况,大家可以再http://subversion.apache.org/packages.html#windows 找到windows下的svn客户端工具。选择Win32Svn 进行安装。
安装好后,bin目录下就是相应程序了。通过添加环境变量的方式,把bin目录添加到path。启动cmd,敲入 svn help 以确认是否安装成功。
好了,可以找到你的代码,做checkout了。在commit代码的过程中,经常会出现的一个问题是:svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found
这表示你的系统,没有指定svn客户端通过什么样的文本编辑器来写提交的注释。我们添加环境变量,SVN_EDITOR的值为notepad。再次svn ci 代码。notepad弹出了,写完注释保存。代码提交!
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.使用SVN命令行工具,svn下载,windows命令行下svn
http://hi..com/cpuramdisk/item/6e8e0fc29f7dbe2f46d5c038
从http://subversion.tigris.org获取subversion for windows的版本,安装之后就有了svn.exe这个基于命令行的客户端工具。当然服务器端的程序也有了,这里就不关心如何配置SVN服务了。安装程序把svn.exe的路径加入了path环境变量,我们已经可以在命令行中直接输入svn就可以使用了。
如果你不知道命令怎么用svn命令,可通过如下方式查询:
svn help
知道了子命令,但是不知道子命令的用法,还可以查询:
svn help ci
开发人员常用命令
导入项目
svn import http://svn.chinasvn.com:82/pthread --message "Start project"
导出项目
svn checkout http://svn.chinasvn.com:82/pthread
采用 export 的方式来导出一份“干净”的项目
svn export http://svn.chinasvn.com:82/pthread pthread
为失败的事务清场
svn cleanup
在本地进行代码修改,检查修改状态
svn status -v
svn diff
更新(update)服务器数据到本地
svn update directory
svn update file
增加(add)本地数据到服务器
svn add file.c
svn add dir
对文件进行改名和删除
svn mv b.c bb.c
svn rm d.c
提交(commit)本地文档到服务器
svn commit
svn ci
svn ci -m "commit"
查看日志
svn log directory
svn log file
相关的一些东西:
1、在本地文件中,每个目录下都有一个.svn文件夹(属性为隐藏),保存了相关的信息。
2、注册环境变量SVN_EDITOR为"E:\Program Files\Vim\vim71\gvim.exe",结果在svn ci的时候,出现错误:
'E:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
svn: 提交失败(细节如下):
svn: system('E:\Program Files\Vim\vim71\gvim.exe svn-commit.tmp') 返回 1
把SVN_EDITOR改为"gvim.exe",并且在path中添加路径"E:\Program Files\Vim\vim71",这样就可以在提交的时候用vim编写注释了。
附:
提供免费SVN服务的网站:
http://www.svnhost.cn/(推荐)
http://www.chinasvn.com
http://www.javaforge.com
http://unfuddle.com
http://svn.coollittlethings.com/index.php(针对开源免费,针对私人项目收费)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3.http://space.itpub.net/14466241/viewspace-713138
Windows下SVN命令行工具使用详解(附加TortoiseSVN)
上一篇 / 下一篇 2011-12-12 09:32:22 / 置顶(3) / 个人分类:网络文摘
查看( 4610 ) / 评论( 1 ) / 评分( 5 / 0 )
根据我的记忆,似乎Windows 7下自自带一个svn命令行工具。如果你的机器没有,不必担心。你可以从http://subversion.tigris.org获 取subversion for windows的版本,安装之后就有了svn.exe这个基于命令行的客户端工具。安装程序把svn.exe的路径加入了path环境变量,我们已经可以在命令行中直接输入svn就可以使用了。
如今,好用的开源工程遍布世界各地。许多这样的工具都提供了相应的工程源码的SNV下载地址,所以,这个工具你几乎是非了解不可的。以下列出svn使用使用的典型举例。
一、关于命令行工具SVN
如果你不知道命令怎么用svn命令,可通过如下方式查询:
svn help
知道了子命令,但是不知道子命令的用法,还可以查询:
svn help ci
常用命令格式与举例
导入项目
svn import http://svn.chinasvn.com:82/pthread --message "Start project"
导出项目
svn checkout http://svn.chinasvn.com:82/pthread
采用 export 的方式来导出一份“干净”的项目
svn export http://svn.chinasvn.com:82/pthread pthread
为失败的事务清场
svn cleanup
在本地进行代码修改,检查修改状态
svn status -v
svn diff
更新(update)服务器数据到本地
svn update directory
svn update file
增加(add)本地数据到服务器
svn add file.c
svn add dir
对文件进行改名和删除
svn mv b.c bb.c
svn rm d.c
提交(commit)本地文档到服务器
svn commit
svn ci
svn ci -m "commit"
查看日志
svn log directory
svn log file
二、关于可视化SVN工具TortoiseSVN
到http://tortoisesvn.net/downloads.html处下载可视化SVN工具TortoiseSVN。这个工具非常好用,是一个WINDOWS下可视化工具,特别是支持断点续传。
因此,如果下载小型的SVN内容,使用上面的WINDOWS自带的命令行工具SVN.EXE足够了。但是,当下载大家伙时,常常下载到中间便失去与服务器的联系。如果再重新下载,非常可怜,而且往往还是不行。我在下载LIBGDX这个游戏引擎的源码工具时便是遇到这样的情况。因此才搜索到这个工具。
下载安装后,这个工具是以WINDOWS资源管理器插件的形式存在的,非常人性化。你只要右键点击一个你想存储下载内容的文件夹,选择“SVN Checkout...”选择,然后弹出一个对话框。此后,你输入你的SVN资源地址,便OK了。而且,这个工具下载速度非常快......
备注:在这个页面http://bbs.mountblade.com.cn/viewthread.php?tid=168300
有几个截图,参考一下吧。
G. 如何用命令行实现TortoiseSVN命令
TortoiseSVN是一个GUI客户端,这个自动化指导为你展示了让TortoiseSVN对话框显示并收集客户输入,如果你希望编写不需要输入的脚本,你应该使用官方的Subversion命令行客户端。
TortoiseSVN的GUI程序叫做TortoiseProc.exe。所有的命令通过参数/command:asdf指定,其中asdf是必须的命令名(命令名详见”表 1. 有效命令及选项列表“)。大多数此类命令至少需要一个路径参数,使用/path:"some\path"指定。在下面的命令表格中,命令引用的是/command:asdf参数,余下的代表了/path:"some\path"参数。
因为一些命令需要一个目标路径的列表(例如提交一些特定的文件),/path参数可以接收多个路径,使用*分割。
TortoiseSVN 使用临时文件在 shell 扩展和主程序之间传递多个参数。从 TortoiseSVN 1.5.0 开始,废弃/notempfile参数,不再需要增加此参数。
The progress dialog which is used for commits, updates and many more commands usually stays open after the command has finished until the user presses theOK button. This can be changed by checking the corresponding option in the settings dialog. But using that setting will close the progress dialog, no matter if you start the command from your batch file or from the TortoiseSVN context menu.
To specify a different location of the configuration file, use the parameter /configdir:"path\to\config\directory". This will override the default path, including any registry setting.
如果想在进度对话框执行完毕后自动关闭,而又不必设置永久性的参数,可以传递/closeonend参数。
/closeonend:0 不自动关闭对话框
/closeonend:1 如果没发生错误则自动关闭对话框
/closeonend:2 如果没发生错误和冲突则自动关闭对话框
/closeonend:3如果没有错误、冲突和合并,会自动关闭
下面的列表列出了所有可以使用TortoiseProc.exe访问的命令,就像上面的描述,必须使用/command:asdf的形式,在列表中,因为节省空间的关系省略了/command的前缀。
表 1. 有效命令及选项列表
命令
描述
: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。
:merge Opens the merge dialog. The /path specifies the target directory. For merging a revision range, the following options are available: /fromurl:URL, /revrange:string. For merging two repository trees, the following options are available: /fromurl:URL, /tourl:URL, /fromrev:xxx and /torev:xxx. These pre-fill the relevant fields in the merge dialog.
:mergeall Opens the merge all dialog. The /path specifies the target directory.
: Brings up the branch/tag dialog. The /path is the working to branch/tag from. And the /url is the target URL. You can also specify the /logmsg switch to pass a predefined log message to the branch/tag dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path, where path points to a file containing the log message.
:settings 打开设置对话框。
:remove 从版本控制里移除/path中的文件。
:rename 重命名/path的文件,会在对话框中询问新文件,为了防止一个步骤中询问相似文件,传递/noquestion。
:diff Starts the external diff program specified in the TortoiseSVN settings. The /path specifies the first file. If the option /path2 is set, then the diff program is started with those two files. If /path2 is omitted, then the diff is done between the file in /path and its BASE. To explicitly set the revision numbers use /startrev:xxx and /endrev:xxx. If/blame is set and /path2 is not set, then the diff is done by first blaming the files with the given revisions.
:showcompare
Depending on the URLs and revisions to compare, this either shows a unified diff (if the option unified is set), a dialog with a list of files that have changed or if the URLs point to files starts the diff viewer for those two files.
The options url1, url2, revision1 and revision2 must be specified. The options pegrevision, ignoreancestry, blame and unified are optional.
:conflicteditor Starts the conflict editor specified in the TortoiseSVN settings with the correct files for the conflicted file in /path.
:relocate 打开重定位对话框,/path指定了重定位的工作副本路径。
:help 打开帮助文件
:repostatus 打开为修改检出对话框,/path 指定了工作副本目录。
:repobrowser Starts the repository browser dialog, pointing to the URL of the working given in /path or /path points directly to an URL. An additional option /rev:xxx can be used to specify the revision which the repository browser should show. If the /rev:xxx is omitted, it defaults to HEAD. If /path points to an URL, the /projectpropertiespath:path/to/wcspecifies the path from where to read and use the project properties.
: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 Locks a file or all files in a directory given in /path. The 'lock' dialog is shown so the user can enter a comment for the lock.
:unlock Unlocks a file or all files in a directory given in /path.
:rebuildiconcache Rebuilds the windows icon cache. Only use this in case the windows icons are corrupted. A side effect of this (which can't be avoided) is that the icons on the desktop get rearranged. To suppress the message box, pass /noquestion.
:properties 显示 /path 给出的路径之属性对话框。
Examples (which should be entered on one line):
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"test log message" /closeonend:0
TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0
TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend:0
H. SVN常用命令及例句
1、Linux命令行下将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、Linux命令行下往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、Linux命令行下将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
简写:svn ci
4、Linux命令行下的加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5、Linux命令行下更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、Linux命令行下查看文件或者目录状态
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、Linux命令行下删除文件
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、Linux命令行下查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、Linux命令行下查看文件详细信息
svn info path
例如:svn info test.php
10、Linux命令行下比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、Linux命令行下将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、Linux命令行下SVN 帮助
svn help
svn help ci
以上是常用命令,下面写几个不经常用的
13、Linux命令行下版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、Linux命令行下创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH…
2、mkdir URL…
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建.在这两个情况下,所有的中间目录都必须事先存在。
15、Linux命令行下恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录
16、Linux命令行下代码库URL变更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
17、Linux命令行下解决冲突
svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH…
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。
18、Linux命令行下输出指定文件或URL的内容。
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)
以上是Linux命令行下常用svn命令的使用方法。
I. 如何在自己的windows环境中创建svn
一、准备工作
1、SVN服务器:解压缩包,可以从官方网站下载最新版本。
2、SVN客户端:TortoiseSVN,即常说的小乌龟,是一个客户端程序,用来与服务器端通讯。
二、安装服务器和客户端程序
1、SVN服务器:直接解压缩到某个文件夹下即可。示例路径:c:\svn\
备注:如果下载的是msi程序,直接运行按提示安装即可。
2、SVN客户端:直接运行按提示安装即可。示例路径:C:\Program Files\Subversion
三、建立版本库(Repository):示例路径:e:\svnroot。建立版本库有两种方法:
方法一,建立空目录e:\svnroot\repos1,进入repos1文件夹,在空白处点击右键,选择“TortoiseSVN->Create Repositoryhere...”,
方法二,建立空目录e:\svnroot\repos2,进入DOS命令行,输入如下命令:
svnadmincreate e:\svnroot\repos2
四、运行SVN服务器,启动服务。启动服务有两种方法:
方法一,临时启动服务,在DOS下输入如下命令:
svnserve -d -r e:\svnroot\repos1 --listen-host ip地址 --listen-port=端口号
说明:“listen-host”和“listen-port”可选。默认端口是3690,如果端口已经被占用,可以通过选项listen-port指定端口号。
注意:请不要关闭命令行窗口,关闭窗口会把 svn服务就停止了。
方法二,启动SVN服务为后台运行程序:
sc create svnserve binPath= "c:\svn\bin\svnserve.exe --service -r e:\svnroot\repos1" displayname= "Subversion" depend=Tcpip start= auto
说明一:
(1)sc是windows自带的服务配置程序。svnserve是服务的名称,可根据需求取名。
(2)参数binPath表示svnserve可执行文件的安装路径。
(3)--service表示以windows服务的形式运行,--r指明svnrepository的位置,service参数与r参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中。
(4)displayname表示在windows服务列表中显示的名字,depend=Tcpip表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。安装服务后,svnserve要等下次开机时才会自动运行。
说明二:
(1)binPath的等号前面无空格,等号后面有空格。displayname、depend、start也一样,service前面是--,不是- ,而r前面是-。
(2)若要卸载svn服务,则执行 sc delete svnserve 即可。
(3)从“sc”到“auto”是在同一个命令sc,必须写在同一行。
(4)启动服务命令:netstart svnserve,停止服务命令:net start svnserve,也可以进入Windows提供的界面操作SVNService服务了,即控制面板—>服务。
(5)如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“c:\programfiles\svn\”中,则命令应该写为“binpath="\"c:\programfiles\svn\bin\svnserve.exe\"
五、配置用户和权限
(1)修改svnserve.conf,在e:\svn\repos1\conf目录下,用文本编辑器打开svnserve.conf:
将:
# anon-access = read
# auth-access = write
# password-db = passwd
改为
anon-access = read
auth-access = write
password-db = passwd
注意说明:
anon-access等列前面是没有空格的。
anon-access = read表示没通过用户名密码登录的访问只有读的权限,如果改为none则没有用户名密码不能访问
auth-access = write表示通过用户名密码登录的有写的权限(当然读的权限也就有了)
password-db = passwd表示可以通过 用户名 = 密码 的方式在passwd文件中添加用户
(2)修改同目录的passwd文件,增加用户帐号:
将:
[users]
# harry = harryssecret
# sally = sallyssecret
添加帐号:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
添加一个admin账户,密码是admin。
六、初始化SVN,导入数据
选中要上传SVN的文件夹,“右键 ->TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/project1/”。在“Importmessage”输入注释,点击OK,要求输入帐号,输入账户admin和密码admin。
七,测试SVN
本地测试:新建一空文件夹test1,单击右键,选择“SVN Checkout”,在“URL of repository”中输入“svn://localhost/project1”。
其他机器测试:如果运行svnserve的主机IP地址是1.2.3.4,则URL输入的内容就是“svn://1.2.3.4/project1”。
J. svn info对应git什么命令
svn命令列举:
svn checkout :从服务器上下载一份新的代码到本地
svn up:在本地代码目录下执行,与服务器上最新代码保持同步
svn status:在本地代码目录下执行,查看当前目录下的本地改动情况,可简写为svn st
svn revert <file-name>:在本地代码目录下执行,撤销对<file-name>文件的改动,恢复到未改动前状态。
svn diff <file_name>:在本地代码目录执行,查看对文件<file-name>的修改。
svn log -l4:查看当前目录下的最新的4条修改历史,可改为-l5,-l6,-l10 (注意是小写的"L")
svn info:查看当前代码版本信息
svn commit:提交修改的代码到服务器;