windows 怎么用svn命令

windows 怎么用svn命令,第1张

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    解决冲突

>

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 copy / 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 copy

4、关于merge

branch主要用于新功能的开发

合并发生在本地working copy,只要你不提交就不会影响到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,保护好现场,万一合并不理想随时都可以revert >

>

5、关于解决冲突

发生冲突之后会出现三个临时文件:

XXXmine XXXr1 XXXr2

一旦解决了冲突,需用svn resolved让subversion知道,这样就会删除这三个临时文件,冲突状态解决。

三种解决方式:

手工合并冲突:需要将冲突标志删除

用某一个临时文件覆盖自己的工作文件

用svn revert 放弃本地修改,不需要执行resolved

解决版本冲突的命令。在冲突解决之后,需要使用svn resolved来告诉subversion冲突解决,这样才能提交更新。冲突发生时,subversion会在Work Copy中保存所有的目标文件版本(上次更新版本、当前获取的版本,即别人提交的版本、自己更新的版本、目标文件。假设文件名是sandwichtxt,对应的文件名分别是:sandwichtxtr1、
sandwichtxtr2、sandwichtxtmine、sandwichtxt)。同时在目标文件中标记来自不同用户的更改。
解决冲突的办法:
- 手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行svn resolved filename来解除冲突,最后提交。
- 放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行svn resolved filename并提交。
- 放弃自己的更新,使用svn revert,然后提交。在这种方式下不需要使用svn resolved。
对于svn resolved命令需要非常小心,必须是非常确定冲突已经解决才能使用。否则,会导致Subversion以为冲突解决,而使代码库不正确。 解决冲突详细文档:
>1、Xcode4苹自带SVN软件------>Organizer------>Repositories
2、SVN checkout本删除本file服务器影响
影响服务器执行svn updatezai再自载;删除再执行svn commit服务器应删除
3、连接服务器
点击file-》repositories-》点击坐边+-》名字及svn服务器址type选subversionnext等等
4、Xcode4,SVN用命令
Commit 提交
checkout 服务器载本(我使用电脑)
update 更新文件
File------->SourceController------->update
第3按钮,视图比按钮
5、SVN用详解注意事项
①提交自代码
SVN更新原则要及更新及提交完功能能够通编译并且并且自测试尽量早提交保存历史版本必要候滚;始工作前update项目
②保持原提交(要经意间修改并提交别文件)
仅提交修改部要整项目提交;
完功能或文件提交我遇完某功能没提交做更改结代码现bug恢复代码
③要提交自文件
VisualStudio等发工具程产自文件suo等配置文件Debug,Release,Obj等编译文件及其些自同编译代码关文件些文件提交候应该签入签入需要仓库删除
④要提交能通编译代码
代码提交前首先要确认自能够本编译进行SVN提交更新代码提交前已经通自测试
SVN用命令详解
1、文件checkout本目录
svn checkout path(path服务器目录)
例:svn checkout svn://19216811/pro/domain
2、往版本库添加新文件
svn add file
例:svn add testphp(添加testphp)
3、删除文件
svn delete path -m delete test fle
例:svn delete svn://19216811/pro/domain/testphp -m delete testfile
4、查看志
svn log path
5、比较差异
svn diff path(修改文件与基础版本比较)
6、两版本间差异合并前文件
svn merge -r m:n path
SVN使用
更新(update)经update没坏处特别项目每提交(commit)前进行更新(update)新版本svn提示前拷贝期需要更新
提交(commit)定要写提交内容摘要便于查阅
文件checkout本目录
svn checkout path(path服务器目录)
svn update命令自用服务器版本替换本版本控制文件
6、Xcode使用SVN问题及提交解决冲突问题
XcodeSVN功能Eclipsesubclipse或者windowstortoiseSVN比较起功能差
我索性用直接用命令行我看朋友用subclipse其实挺使用SVN功能要单独耗费资源Eclipse
论使用SVN工具都遇Xcode固问题即projectpbxproj文件提交冲突问题
projectpbxproj文件面包含构建程所需所文件项目目录增加新文件比没通Xcode该文件projectpbxproj文件app同理SVN更新其项目员增加文件没更新projectpbxproj文件(或者该员根本没提交文件)则现相同现象
项目员提交新projectpbxproj文件边没项目增加新文件直接svn update
7、Xcode更新代码项目文件打
若选择更新整项目经现冲突问题尤其projectpbxproj文件文件包含构建程所需所文件项目目录增加新文件没通Xcode
该文件projectpbxproj文件app同理SVN更新其项目员增加文件
没更新projectpbxproj文件(或者该员根本没提交文件)则现相同现象文件冲突直接导致项目文件打
解决更新代码打项目文件:
项目文件tobaccoxcodeproj打右键选择'显示包内容'看三文件projectpbxproj/usermodelv3/userpbxuser
其projectpbxproj三版本解决普通svn文件冲突解决冲突即
8、SVN 更新 提交 合并 区别
本文件没改服务器文件改候更新服务器取文件覆盖前文件
本文件改服务器文件没改更新文件
本文件改服务器文件改改部冲突合并文件本冲突提示文件冲突需要自手修改传服务器
讲解合并:
服务器本同文件(所谓同文件应该SVN相路径相同文件名相同文件由SVN留本信息决定)已经修改且修改部重合重叠
满足面条件候再更新SVN自合并
SVN奥妙处于别提交修改文件再提交允许提交滴
>>>>
<<<
面标记冲突区域冲突区域删除掉能提交
解决办1:
删掉没解决冲突文件面几文件名相同缀同文件
知道用SVN解决冲突简单办
文件改名字文件所目录更新服务器文件自修改部添加更新文件面提交
解决办2:
文件面点击右键SVN菜单应该编辑冲突按钮选择现窗口边服务器版本边自修改版本
9、xcode自带svn使用
1、代码 某文件面 M 标记表示该文件已修改需要 commit
(右键该文件 -> source control -> commit selected file)
2、代码 某文件面 A 标记表示该文件新添加已受SVN管理需要 commit
(右键该文件 -> source control -> commit selected file)
3、代码 某文件面 标记表示该文件新添加并且脱离SVN管理首先需要add commit
(右键该文件 -> source control -> Add该文件标记变 A commit)

简单的梳理了一下,因为花费时间比较久,一些过程忘记了,回头换台电脑再试一下。到时候再改这个文章。

在整理svn服务器文件目录时,因为和本地working copy的文件目录对应不上了。
因此需要使用到以下命令

但是在 10155版本下,svn的命令不可用了
网上有相关的教程,大部分都是以下的这种报错。

和以下的解决方案

但对于我并没有用,网上也没有资料可以借鉴

这时候准备去重装 svn
在运行了以下命令之后

报了以下错误

没有修改这个目录文件的权限

于是想升级一下 HomeBrew
在执行了以下命令之后

报了以下错误

使用以下命令修改了权限。

之后的一系列 *** 作忘记了,应该是升级了 HoneBrew和svn

然后开始报错

表示需要 lz4

可能会提示本地已经有了 lz4

如果不支持直接link

之后还有一些类似的错误。直接重复以上行为。
当我使用 svn 命令不报错之后。
使用 svn info 报出了一下错误

使用一下命令搞定

至此svn 命令都可以使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13335703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存