`

svn基础知识

阅读更多

 

 

重要:

SVN不是记录每一个版本的实际内容,只是记录版本间的差异

SVN使用延迟拷贝来实现svn copy,其只是原始文件的一个链接,对拷贝的修改被svn记录为相对于原始文件的修改

 

 

1.创建存储库

假设d:/dev/svnrepo为存放svn存储库的目录

svnadmin create d:/dev/svnrepo/test 创建一名为test的存储库

2.导入项目

假设你的项目在d:/dev/eclipse中的Test文件夹,你的当前目录为d:/dev/eclipse,你的svn存储库路径为http://localhost/svn/test

svn import Test http://localhost/svn/test/OnlyTest -m "Initial Import"

解释:导入的是Test文件夹下的内容 ;另外,注意要起一个路径名OnlyTest,否则全导入到http://localhost/svn/test下了;-m 为日志

3.导出项目

svn export <项目文件夹> <你的文件夹>

svn export -r <version> <项目文件夹> <你的文件夹>

-------------------------

4.取出

svn co(checkout) http://localhost/svn/test/OnlyTest --- 将OnlyTest文件夹其下的文件取出来并建立默认文件夹OnlyTest

svn co -r <url> -- 取出特定版本

svn co http://localhost/svn/test/OnlyTest MyTest -- 将OnlyTest文件夹下的文件取出,放入新建立的文件夹MyTest中

5.添加

svn add * -- svn会将未纳入版本控制的文件加入版本控制中(必须svn commit)

svn add --non-recursive * 非递归添加

6.删除

svn delete(rm,remove,del) <filename> -- 删除文件和目录(必须svn commit)

7.提交

svn commit -m "you log" -- 提交

svn commit --changelist <changelist name> -- 提交指定的changelist

8.创建目录

svn mkdir <dirname>

svn mkdir <url>

9.移动文件或目录

svn move <source_name> <dist_name>

svn move <source_url> <dist_url>

10.输出特定文件或URL的内容

svn cat <file or url> -- 输出特定文件或URL的内容

svn cat -r <version> <file or url>

------------------------------

11.显示本地或远程某一文件或目录的详细信息

svn info <filename>

svn info -r <version> <filename>

12.列表

svn list(ls)

svn list -r <version>

13.当前目录或文件的状态

svn status <filename>

svn status --show-updates(或-u) 从项目存储库中找出哪些文件有更新

状态:

第一列:指出条目的状态

空 无改动

A 添加

C 冲突

D 删除

G 合并

M 修改

X 无版本记录,被svn:externals使用

? 未用版本控制管理

第二列:属性状态

空 无改动

C 冲突

M 修改

第三列:工作拷贝是否被锁定

空 未锁

L 锁了

 

14.清理

svn cleanup -- 递归清理工作拷贝

15.帮助

svn help

svn help <subcommand> -- 显示子命令的帮助,如:svn help add

-----------------------

18.锁定某一目录或文件

svn propset svn:needs-lock true <二进制文件> -- 设定需要锁[svn会将其设置为只读,提示用户编辑这个文件前先加锁]

svn lock <dir or file>

svn lock --force <dir or file> -- 强制对文件加锁,即使此文件已被别人加锁

19.解锁

svn unlock <dir or file>

svn unlock --force <dir or file> -- 可以解锁其他用户锁定的文件

20.显示特定文件和URL每一行的作者和修订版本信息

svn blame <file or url> -- 每一行文本在开头都放了最后修改的作者(用户名)和修订版本号。

svn blame -r <version> <file or url>

 

21.更新

svn update ---- 把版本库的修改带到工作拷贝

svn update -r<version> -- 改变到某一个版本

状态:

A 添加 add

D 删除 delete

U 更新 update

C 冲突 conflict

M 合并 merge

 

22.找不同

svn diff <file> -- 找出工作版本和最后更新的版本中的不同

svn diff -c <version> <file> 查看文件<file>在修订版本<version>修改的内容,是version和version-1比较

svn diff -r <version> <file> 察看你的工作拷贝对旧的修订版本<version>的修改

svn diff -r <version1>:<version2> <file> 使用范围符号来比较修订版本<version1>和<version2>

svn diff -r <version1>:<version2> <url>

svn diff --changelist <changelist name>

 

23.拷贝

svn copy <source> <dist> -- 其中source和dist既可以是工作目录文件也可以是url

如:svn copy foo.txt bar.txt

svn copy near.txt file:///tmp/repos/test/far-away.txt -m "Remote copy."

svn copy file:///tmp/repos/test/far-away near-here

svn copy file:///tmp/repos/test/far-away file:///tmp/repos/test/over-there -m "remote copy."

24. 显示提交日志信息

svn log -r <version> <path>

svn log -r <version1>:<version2> <path>

svn log <path>

svn log -r {iso8601日期} <path>

svn log -r {iso8601日期}:{iso8601日期} <path>

svn log -v <path> 显示详细的信息(包括每个版本有哪些文件有变动)

svn log --stop-on-copy <path> 得出分支是什么时候创建的

 

25.删除工作拷贝文件或目录的“冲突”状态(相关的冲突文件文件)

svn resolved <path>

26.取消所有的本地编辑

svn revert <path>

svn revert --recursive <path> 递归

27.解决冲突

svn resolve --accept <status> <path>

status:

base:选择你更新你的工作拷贝前的你checkout出的未经修改的版本

working:手工处理后,选择当前你工作拷贝中的版本

mine-full:选择在你svn update前的工作拷贝

theirs-full:选择svn update取出的文件拷贝

28.将文件放入到一个改变列表中

svn changelist(cl) <changelist name> <path1> <path2> <path...>

svn commit --changelist <changelist name> -- 只提交此change list的文件

 

29.版本号标识

(1)号 87

(2){日期} {2009-09-09}

(3)HEAD 存储库中最新版本

(4)BASE 工作拷贝中你最后签出的版本

(5)COMMITED 最后改动版本,等于或早于BASE

(6)PREV COMMITED之前的一个版本

 

30.产生和应用补丁

svn diff > file.patch

patch <options> file.patch

 

31.svn项目组织

project/

trunk/ --主干

branches/ --分支

tags/ --标签

 

32.常用示例

(1)提交改动

svn update -- 更新到项目的当前状态

# resolve conflicts 解决冲突

编辑文件

svn resolved

# run tests 运行测试

svn commit -m "your logs" -- 提交

(2)简单bug修正

a.在一个分支中修正bug并提交

b.将其合并到存在此bug的其他分支中(svn merge -r<version1>:<version2>)

(3)复杂bug修正

a.创建一个bug修正分支(svn copy) name=bug-trackid

b.为这个修正分支在修正前打标签(svn copy) name=bugpre-trackid

c.修正bug

d.为这个修正在修正后打标签(svn copy) name=bugpost-trackid

e.合并此bug修正到其他分支(svn merge -r bugpre-trackid:bugpost-trackid)

分享到:
评论

相关推荐

    SVN用户使用指南 版本控制 源代码管理

    2. SVN基础知识1 2.1. SVN简介1 2.2. SVN特性1 2.3. SVN的架构3 3. SVN的基本应用4 3.1. 客户端的安装4 3.2. 版本库浏览 Repo-browser6 3.3. 版本库的基本操作8 3.3.1. Add file(folder)添加文件(文件夹)8 3.3.2. ...

    SVN学习知识.pdf

    Svn技术的基础详细学习笔记,总结了Svn技术的各个知识点,可以用来复习以及对基础知识的巩固,对新人的学习很有帮助。

    SVN使用手册中文版快速入门

    关闭路径为基础的检查 额外的糖果 版本库浏览 其它特性 支持多种版本库访问方法 7. 高级主题 运行配置区 配置区布局 配置和Windows注册表 配置选项 服务器 config 属性 为什么需要属性? 处理属性 特别属性 svn:...

    SVN使用手册中文版.chm

    关闭路径为基础的检查 额外的糖果 版本库浏览 其它特性 支持多种版本库访问方法 7. 高级主题 运行配置区 配置区布局 配置和Windows注册表 配置选项 服务器 config 属性 为什么需要属性? 处理属性 特别属性 svn:...

    svn-book SVN团队开发

    svn-book.rar 学团队开发的基础知识,使用svn!

    Tortoise SVN简明操作指南

    Tortoise SVN是我发现的非常好用的软件中的一个,它提供的功能让人兴奋,强烈推荐这一款版本管理工具软件。它是开源的,我希望它越做越好,同时也希望有更多人支持这一款软件的发展,发自内心的感谢开发者为我们带来...

    svn-book.pdf

    本书适用于具有不同背景知识的各个层次的读者——从未使用过版本控制的新手到经验丰富的系统管理员都能够从本书中获益。根据基础的不同,某些的章节可能对某些读者更有价值。

    linux Android基础知识总结.pdf

    linux Android基础知识总结 1.Android编译系统分析 2.文件系统分析 3.制作交叉工具链 4.软件编译常识 5.设置模块流程分析 6.linux系统启动流程分析 7.linux下svn使用指南 8.LFS相关 9.linux内核的初步理解

    202301-Java基础知识面试题(2023最新版)思维导图.zip

    1. Java基础知识: - 语法 - 面向对象编程 - 集合框架 - 异常处理 - 多线程编程 2. 数据库: - 熟悉SQL语言 - 了解关系型数据库和非关系型数据库 - 数据库连接池 - 数据库事务 3. Spring框架: - ...

    [14本经典Android开发教程]-5-linux Android基础知识总结

    [14本经典Android开发教程]-5-linux Android基础知识总结 ------------------------------------------------------- linux ,Android基础知识总结 1. Android编译系统分析 2. 文件系统分析 3. 制作交叉工具链 4. ...

    qt新入职员工培训和阶段考核

    一、 tb任务管理 二、 C++基础知识 三、 Qt基础 四、 编码规范 五、 SVN基础使用 六、 数据库知识

    SVN服务器VS2005客户端part2

    本文介绍了使用 Subversion 追踪项目的基础知识,以使您在编写代码时能够承受更多的风险、享受更多的乐趣。 版本控制简史 当我还是一名刚刚毕业的学生时,我第一次在国家太阳观察站(National SSolar Observatory...

    svn服务端web图形化管理系统, 搭建svn服务器的神器..zip

    可以在这些基础上学习借鉴进行修改和扩展,实现其它功能。 可放心下载学习借鉴,你会有所收获。 —— 对于学习和实践,选择合适的项目和资源确实是一种有效的方式。 在进行毕业设计、课程设计或大作业时,选择具备...

    SVN服务器与VS2005客户端par1

    本文介绍了使用 Subversion 追踪项目的基础知识,以使您在编写代码时能够承受更多的风险、享受更多的乐趣。 版本控制简史 当我还是一名刚刚毕业的学生时,我第一次在国家太阳观察站(National SSolar Observatory...

    [其他类别]GoogleCode.com SVN online browse! [中文]_svn_071221.rar

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步...

    C++\ATL 实现覆盖windows默认的文件夹图标、文件、文件夹打标

    C++\ATL 实现覆盖windows默认的文件夹图标,类似svn,git,cloud多场景下.适用于文件夹目录与云盘...在此之前需了解UUID,SID,注册表等相关基础知识.另一种方案覆盖图标配置在文件夹中新增Desktop.ini配置文件(不推荐).

Global site tag (gtag.js) - Google Analytics