`
aben328
  • 浏览: 1459425 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

转载 SVN在linux下的使用笔记收藏 转贴:http://blog.csdn.net/nhczp/archive/2007/08/20/1751561.as

    博客分类:
  • SVN
阅读更多

转载  SVN在linux下的使用笔记收藏

<script type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData(&quot;text&quot;); if (text &amp;&amp; text.length&gt;300) { text = text + &quot;\r\n\n本文来自CSDN博客,转载请标明出处:&quot; + location.href; clipboardData.setData(&quot;text&quot;, text); } }, 100); } } </script><script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>转贴:http://blog.csdn.net/nhczp/archive/2007/08/20/1751561.aspx

SVN是CVS的下一个版本,主要用来进行版本控制,可以对程序代码,音频,视频以及图像文件等,做版本控制。

目录以及文件是Subversion中可以记录版本的对象。其主要工作原理如下图:
                   _ _ _ _ _ _ _ _ _ _
                  /                              \
                  |                               |
                  |      项目仓库            |
                  |                               |
                  \_ _ _ _ _ _ _ _ _ _/
                        /                  |
                       /     check in |
     check out /                     |
_ _ _ _ _ _ /_ _               _|_ _ _ _ _ _ _                   
/                         \             /                        \
|                          |            |                         |
|      工作拷贝       |            |        工作拷贝    |
|                          |            |                         |
\_ _ _ _ _ _ _   _/             \_ _ _ _ _ _ _ _/

分支,主干,合并,标签
创建一个分支或者标签时,采用一种"延迟拷贝"的技术,即只创建指向同一版本的链接,当其中某个文件有所改动时,再去复制那个文件或者目录。
一般地来讲,分支是用来做准备发布的,而不是并行开发。

1、创建一个项目仓库
svnadmin create /home/huzza/test_svn

2、import初始文件到项目仓库中
svn import -m source_file_path URL
本例 URL:file:///home/huzza/test_svn/sesame/trunk
file:// ------&gt; 告诉svn是本地目录

3、checkout文件到本地目录
svn checkout(co) file:///home/huzza/test_svn/sesame/trunk sesame

4、检查文件状态或者日至
svn status [文件/目录]
svn log [文件/目录]
svn log -r6:8 [文件/目录]     查看版本6到版本8之间的日志

5、文件/目录比较(工作拷贝与项目创库中的比较)
svn diff [文件/目录]     或者      svn diff --rHEAD [文件/目录]     --rHEAD:表示最新版本

6、更新本地工作拷贝,提交工作修改
svn update(up) [文件/目录]       svn checkin(in) -m"comments" [文件/目录]
update时的一些文件标志:
     U ------ 表示文件被更新
     G ------ 表示项目创库中的文件和本地工作拷贝的文件合并到了一起
     C ------ 表示合并时,有冲突产生
     A ------ 新加入了一个文件
     D ------ 删除了一个文件
     ? ------ 表示该文件或者目录没有被svn管理
     M ------ 该文件被修改

7、 冲突。当svn update时,如果存在某个文件存在冲突,打开冲突的文 件,&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; 和 &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 表明了冲突发生的地方。
当冲突发生时,如果想使用项目仓库中的版本,而放弃本地拷贝的修改,可以使用以下命令:
a、svn revert [冲突的文件/目录]
b、svn update [冲突的文件/目录]
(svn resolved [文件/目录] &amp;&amp; svn updata [文件/目录],似乎也是ok的,需要confirm一下)
如果想保留本地工作拷贝的修改,而放弃项目仓库中版本的修改,可以如下:
a、cp 文件/目录.mine 文件/目录
b、svn resolved 文件/目录
c、svn ci -m "use my version please" 文件/目录
(在上面的三个步骤中,似乎不用做步骤a也可以达到目的)

8、使svn项目仓库联网
启动svn服务器:svnserve --daemon --root /home/huzza/test_svn
列服务器资源:svn list svn://192.168.0.4/sesame/trunk
出来后面的URL不同,其他操作的各部分均相同
svn+ssh 访问:svn list svn+ssh://192.168.0.4/sesame/trunk        (需要在服务器上支持ssh访问)

9、得到特定版本的工作拷贝
svn checkout -rVersionNum list svn://192.168.0.4/sesame/trunk butterfly
svn info butterfly     (查看当前版本拷贝的状态)

10、拷贝/移动文件
svn copy filename newfile
svn move oldfile newfile
svn ci -m "add or move some files" [修改文件所在的目录]      (这里确保服务器上也作跟本地拷贝相同的动作)

11、版本的符号
HEAD --------- 项目仓库中的最新版本
BASE --------- 工作拷贝的基准版本(也就是checkout出来时的版本)
COMMITTED ---- 最后一次checkin的版本
PREV --------- COMMITTED之前的一个版本

12、查找版本之间的差异
svn diff -r2:4 [文件/目录]
svn diff &gt; diffname.patch (生成patch文件)
使用patch文件: patch -p0 -i diffname.patch

13、删除后一个版本对前一个版本的修改
svn merge -r27:26 [文件/目录] &amp;&amp; svn ci -m "undo the work of version 27"
撤销版本27所做的修改

14、创建分支/标签
svn mkdir -m "Create branches" svn://192.168.0.4/sesame/branches
svn copy -m "Create release branches for version 1.0" svn://192.168.0.4/sesame/trunk \
                                                         svn://192.168.0.4/sesame/branches/release-1.0

分享到:
评论

相关推荐

    L2jOpenSource:项目 SVN:https://svn.code.sf.net/p/l2jopensource/projects/-开源

    项目 SVN : https://svn.code.sf.net/p/l2jopensource/projects/ Interlude aCis 382 (最新稳定版) https://svn.code.sf.net/p/l2jopensource/projects/Interlude/L2J_aCis/ aCis_382_LATEST_STABLE/ aCis 389(最新...

    Android 连接MQL 等关系型数据库

    Android MQL 关系型 数据库相关项目,由于原链接:http://download.csdn.net/source/3344919 是在公司上传的,已经被加密,所以旧链接已经失效,请下载此链接下相应项目(经已解密),有疑问,请联系:qq:343827585。...

    SharpSvn-1.9007.3987.251.

    SharpSvn 版本:1.9007.3987.251. SVN提供的C#SDK SharpSvn.dll 是为.Net 2.0-4.0+ 应用提供的 Subversion Client API,更多详细介绍请见 https://sharpsvn.open.collab.net/。

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

    [14本经典Android开发...7. linux下svn使用指南 8. LFS 相关 9. linux 内核的初步理解 -------------------------------------------------------- 已上传4本: [14本经典Android开发教程]-1-Android开发从入门到精通 ...

    svn注册表图标自动注册

    svn图标消失解决 http://blog.csdn.net/zlc819240815/article/details/53517680

    sharpsvn docs

    通过使用 SharpSvn,开发者可以轻松地在 C#、VB.NET 或其他 .NET 语言中构建 SVN 相关的应用程序。 二、SharpSvn API 结构 SharpSvn 的 API 设计遵循 SVN 的层级结构,包括 SVNClient、SvnRepository 和 ...

    SVN安装和采用http或https访问

    - 资源库目录需在`/var/svn/`下以确保能设置开机自启: `mkdir -p /var/svn` - 创建SVN资源库: `svnadmin create /var/svn/project` 3. **修改配置文件** - 进入资源库配置目录: `cd /var/svn/project/conf` - ...

    中标麒麟离线搭建svn教程.rar

    所需文件包和教程目录完全一致 subversion-1.8.18.tar.gz 下载地址:http://subversion.apache.org ...zlib-1.2.11.tar.gz 下载地址:http://linux.softpedia.com/get/Programming/Libraries/zlib-159.shtml

    Linux资源网站

    ### Linux资源网站知识点详解 #### 一、工具 在Linux开发过程中,选择合适的工具能够显著提升工作效率。以下是一些常用的Linux开发工具及其相关信息。 1. **Alltools**: 提供了一个全面的工具集,用于构建Linux...

    Tiano Edk for loongson

    本项目的目的是把EFI/UEFI移植到Loongson... SVN : svn co https://efi-mips.svn.sourceforge.net/svnroot/efi-mips efi-mips 编译方法及移植日志请见Documents目录 2009-6-13 张涛 MSN: kontais@gmail.com

    apt-cgy cgywin安装软件

    apt-cyg使用bash编写,所以连编译都省了。 安装apt-cyg wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg chmod +x apt-cyg mv apt-cyg /usr/local/bin/ 安装包 apt-cyg install bc 查找包 apt-cyg find ...

    SVN各种错误提示产生原因及处理方法大全

    然而,在使用 SVN 过程中,可能会遇到各种错误提示,影响工作效率。本文将对 SVN 中常见的错误提示进行分析,并提供相应的解决方法。 1. svn: Server sent unexpected return value (500 Internal Server Error) in...

    yasm-1.3.0.tar.gz

    Download (HTTP): http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz Download MD5 sum: fc9e586751ff789b34b1f21d572d96af Download size: 1.5 MB Estimated disk space required: 27 MB ...

    常用的Eclipse插件的在线更新地址

    ### 常用Eclipse插件的在线更新地址解析与应用 #### Eclipse插件的重要性 在软件开发领域,Eclipse作为一个强大的开源集成...通过上述插件的应用,可以显著提高在Eclipse环境下进行软件开发的工作效率和代码质量。

    svn客户服务端下载安装文件及说明

    5. **配置仓库**:在仓库目录下使用svnadmin工具初始化仓库,然后可以通过svnserve或Apache HTTP服务器启动服务。 **相关参考链接**: 1. TortoiseSVN官方文档:...

    VisualSVN Server增加网页密码修改功能

    根据提供的链接(http://blog.csdn.net/hzfw2008/article/details/75549006),我们可以得知一种可能的方法是使用VisualSVN Server的扩展功能——mod_authnz_ldap模块。这个模块允许我们连接到LDAP服务器,如...

    FFmpeg win64

    XAVS svn-r55 &lt;http://xavs.sourceforge.net/&gt; Xvid 1.3.4 &lt;http://xvid.org/&gt; z.lib 2.0.4 &lt;https://github.com/sekrit-twc/zimg&gt; XZ Utils 5.2.2 &lt;http://tukaani.org/xz&gt; zlib 1.2.8 &lt;http://zlib.net/&gt; ...

    ffmpeg-2.5.2-win64-shared.7z

    XAVS svn-r55 &lt;http://xavs.sourceforge.net/&gt; Xvid 1.3.3 &lt;http://xvid.org/&gt; XZ Utils 5.2.0 &lt;http://tukaani.org/xz&gt; zlib 1.2.8 &lt;http://zlib.net/&gt; The source code for this FFmpeg build can be found ...

    ffmpeg-2.5.2-win64-dev.7z

    XAVS svn-r55 &lt;http://xavs.sourceforge.net/&gt; Xvid 1.3.3 &lt;http://xvid.org/&gt; XZ Utils 5.2.0 &lt;http://tukaani.org/xz&gt; zlib 1.2.8 &lt;http://zlib.net/&gt; The source code for this FFmpeg build can be found ...

    Linux 开发环境工具 指导

    随着Linux系统的广泛应用与普及,越来越多的开发者选择在Linux环境下进行软件开发工作。对于Linux新手来说,熟悉并掌握一套完整的开发工具集至关重要。本文将详细介绍一系列Linux下的开发工具,涵盖集成开发环境、...

Global site tag (gtag.js) - Google Analytics