`

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学习知识.pdf

    SVN(Subversion)是一种版本控制系统,它用于管理和追踪计算机文件的历史变更。SVN允许多个用户协作开发同...无论你是初次接触版本控制的新手,还是需要对SVN基础知识进行巩固的进阶用户,SVN都是一个不可多得的工具。

    svn基础教程的和实例

    ### SVN基础知识及实战指南 #### 一、SVN概述 版本控制系统对于软件开发的重要性不言而喻,它如同高空秋千表演者脚下的安全网,为开发者提供了试错的空间和信心。Subversion(简称SVN)是一种开源版本控制系统,...

    SVN菜鸟级教程(免费)

    ### SVN基础知识及搭建教程 #### 一、简介 **Subversion**(简称SVN)是一种分布式版本控制系统,广泛应用于软件开发和其他需要版本控制的场景。相比于早期的版本控制系统CVS,SVN提供了更多的功能和易用性。本...

    SVN版本控制清除工具

    1. SVN基础知识: - 版本控制:SVN是开源的版本控制系统,用于跟踪项目文件的更改,确保团队成员之间的同步和协作。 - 工作副本:当你从SVN仓库检出代码时,你得到的是一个工作副本,其中包含一个隐藏的.SVN目录,...

    svn笔记资料

    ### SVN基础知识及应用详解 #### 一、SVN概述与重要性 **版本控制系统**(Version Control System,简称VCS)对于软件开发团队而言至关重要。它不仅能够帮助团队有效地管理和跟踪项目的变动,还能够解决多用户环境...

    svn-book.pdf

    ### SVN基础知识及应用详解 #### 一、版本控制系统概述 版本控制系统(Version Control System, VCS)是一种记录一个或若干个文件内容变化的系统,它允许用户将数据回溯到之前的某个状态,甚至将整个项目回退到...

    SVN用户使用详细指南

    SVN基础知识 ##### 2.1 SVN简介 SVN是一种开源版本控制系统,主要功能是通过中心版本库来管理文件和目录的变化历史。这种中心化的设计允许用户追踪每个文件或目录的修改记录,包括创建、更新乃至删除等操作,确保...

    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中文说明书,免费共享图书,挺全面、挺详细的

    ### SVN基础知识 SVN,全称为Subversion,是一种集中式的版本控制系统,用于跟踪项目在时间上的变化,并允许用户恢复到任意时刻的版本。它能够帮助团队成员协作工作,确保代码的一致性和完整性。 ### SVN的主要...

    Eclipse上的SVN插件

    **SVN基础知识**: - **工作副本**:在本地计算机上,SVN仓库的复制被称为工作副本,它是开发和编辑代码的地方。 - **版本号**:每个提交都会增加版本号,用于追踪代码的历史。 - **HEAD版本**:当前仓库的最新版本...

    SVN规范化使用全面解析

    #### 二、SVN基础知识 **SVN的工作原理:** SVN采用客户端-服务器模式,其中服务器端存储项目的版本库,客户端则用于访问这些版本库并执行相应的操作。SVN的核心思想是通过版本库来记录每一次提交的历史记录,使得...

    SVN for Visual Studio 2005/2008/2010的插件

    **SVN基础知识** 1. **Subversion(SVN)**: SVN是一个集中式的版本控制系统,用于跟踪项目文件的变化,使多个用户可以协同工作而不会覆盖彼此的更改。它记录每一次文件或目录的修改,以便你可以随时回滚到之前的...

    SVN安装包(含服务端、客户端,分32位和64位)

    1. **SVN基础知识** - **版本控制**:SVN是基于集中式版本控制系统,它跟踪文件和目录的修改,允许团队成员协作,同时防止冲突。 - **仓库(Repository)**:存储项目所有版本的中央数据库,每个更改都被记录下来...

    svn-1.4.6-setup

    SVN,全称为Subversion,是一款广泛应用于软件开发领域的版本控制系统。它允许团队成员协同工作,跟踪文件和目录的变化,并...尽管"svn-1.4.6-setup"代表了一个特定的历史版本,但它仍然是学习SVN基础知识的好起点。

    史上最细腻的SVN使用分享

    ### SVN基础知识及应用详解 #### 一、SVN概述 **SVN**(Subversion)是一种广泛应用的版本控制系统,主要用于管理软件开发过程中的源代码版本控制。它通过将一系列文件存储在一个中央版本库中来实现这一目标,每一个...

    SVN配置资料.docx

    SVN基础知识 #### 1.1 SVN简介 Subversion,简称SVN,是一种开源的版本控制系统,用于管理文件和目录的历史版本。与传统的文件备份不同,SVN能够处理项目中文件的变更历史,支持多用户协作,并提供强大的日志追踪...

    SVN配置服务端与客户端与插件包

    **SVN基础知识** 1. **什么是SVN**: SVN(Subversion)是一个开源的版本控制系统,用于跟踪文件和目录的变化,允许多人协作编辑和管理项目。它维护了一个中央版本库,保存所有文件的历史版本,提供回滚、分支、合并...

    TortoiseSVN-1.7.7--64位svn客户端

    1. SVN基础知识: - 版本控制:Subversion是一种开源的版本控制系统,用于跟踪文件和目录的更改历史,便于团队协作和代码管理。 - 仓库(Repository):SVN的核心组件,存储所有项目版本历史的地方。 - 工作副本...

    SVN用户使用指南.doc

    2. **SVN基础知识** - **SVN简介**: SVN是一个开源的版本控制系统,用于跟踪和管理软件项目的文件和目录的修改。它允许多个人协同工作,同时保持对项目历史的完整记录。 - **SVN特性**: SVN支持分支和合并,可以...

    svn-win32-1.5.0.zip

    1. SVN基础知识: SVN的核心概念包括仓库(Repository)、工作副本(Working Copy)和版本(Revision)。仓库是存储所有文件和历史记录的地方,而工作副本则是用户本地的项目拷贝,其中包含对仓库的修改。每个提交...

Global site tag (gtag.js) - Google Analytics