文件项目SVN+TortoiseSVN+Subclipse使用总结

近来使用开辟的过程中涌现了一个小问题,顺便记录一下原因和方法--文件项目

    

一、SVN、TortoiseSVN、Subclipse分析

    

    团队开辟技术:

    (1)单元测试;
(2)版本控制;
(3)项目主动化;

    

    SCM:软件配置管理,包含SVN;

    SVN是CVS的接棒人,是版本控制系统;

    版本控制简单地说就是要让团队的人能够快速的统一代码,增强相同;

    SVN由客户端和服务器组成,服务器是项目仓库,即存储项目的地方;客户端则是当地拷贝,即由SVN管理,可以提交到项目仓库和从项目仓库中获得项目的地方;

    svn宗旨:万物皆目录;

    TortoiseSVN是SVN的客户端,因为如果是传统的Subversion客户端,须要通过命令行完成任务,而TortoiseSVN是通过GUI的方式完成的;

    Subclipse是Eclipse中的一个插件,简单的说也是一个SVN客户端,只是为了方便Eclipse开辟,因此可以在Eclipse中进行提交、导入;

    

下载地址:

    SVN:https://sourceforge.net/projects/win32svn/files/1.6.17/svn-win32-1.6.17.zip/download

    TortoiseSVN:https://downloads.sourceforge.net/project/tortoisesvn/1.7.6/Application/TortoiseSVN-1.7.6.22632-win32-svn-1.7.4.msi?r=&ts=1331344321&use_mirror=cdnetworks-kr-2

    Subclipse在线安装地址:http://subclipse.tigris.org/update_1.6.x

    

    注意:配置SVN时须要配置环境变量;

    (1)path=C:/subversion/bin; 

    (2)SVN_EDITOR=notepad; 设置默认的编辑器

    

    文件和项目

    

    

    

二、SVN命令分析

    


    检测版本:svn --version 和  svnadmin --version

创建项目仓库:svnadmin create D:\svn-repos

导入tmpdir目录下的文件到sesame/trunk中,等于添加而不是修改:
D:\svnworkspace\tmpdir>svn import -m "import Sesame project" .  file:///d:/svn-repos/sesame/trunk

-m表现可以提供一些注释;.表现把当前目录下的文件导入;

注:只有在import时须要项目仓库的URL,在diff、commit都不须要URL;

在svnworkspace下checkout指定最新的项目,并命名为sesame:D:\svnworkspace>svn co file:///d:/svn-repos/sesame/trunk sesame

checkout指定版本(此处为第一版本)的项目:svn checkout -r 1 svn://xiazdong-PC/sesame/trunk test3

查看文件状态:svn status Day.txt

查看项目仓库是不是有更新:svn status --show-updates
注:

    (1)M:当地被修改,但是没有提交;
(2)C(Conflict):更新时有冲突存在;
(3)G(Gather):当地版本和项目仓库版本合并到一同;
(4)U(Update):当地版本被成功更新;
(5)A(Add):任务拷贝中添加新文件;
(6)D(Delete):文件在项目仓库中被删除,所以任务拷贝中此文件也被删除;

查看当地拷贝的文件改动(如果项目仓库有改动,检查不出):svn diff Day.txt

查看项目仓库和当地任务拷贝的区分:svn diff -rHEAD Number.txt

查看两版本之间的差别:svn diff -r2:4 Number.txt

查看近来的改动:svn diff -r PREV:BASE Number.txt

更新当地拷贝:svn update

更新指定目录或文件:svn update Number.txt dir1/ dir2/

注:当发生冲突时,会涌现提示修改;
选择: (p) 推迟,(df) 显示全部差异,(e) 编辑,
       (mc) 我的版本, (tc) 他人的版本,
       (s) 显示全部选项: 

提交改动:D:\svnworkspace\sesame>svn commit -m "注释"
但是注意:commit只会提交改动,如果在当地拷贝中创建一个文件,则须要在此之前 svn add 文件
如果提交时冲突没处理,则提交失败;

获得某个文件的日志:D:\svnworkspace\sesame>svn log Day.txt

获得某个文件的详细日志:D:\svnworkspace\sesame>svn log --verbose Day.txt

获得两版本之间的日志:svn log -r 2:4 Day.txt

分页显示日志:svn log | more

注:svn log不一定是最新的日志,因为可能任务拷贝的版本和项目仓库的版本不一致,svn log只能显示任务拷贝版本的日志

每日一道理
“一年之计在于春”,十几岁的年纪,正是人生的春天,别辜负了岁月老人的厚爱与恩赐。行动起来,播种梦想吧!

    注:*表现有更新;

    

    获得sesame任务拷贝信息:svn info sesame

    

拷贝文件:svn copy Number.txt copy.txt
注:拷贝后只是在当地完成,须要提交更新项目仓库;

重命名文件:svn move copy.txt copy.py

重命名目录:svn move dir1 dir2

直接在项目仓库中重命名目录:D:\svnworkspace\test3>svn move -m "rename" svn://xiazdong-pc/sesame/trunk/Number.txt svn://xiazdong-pc/sesame/trunk/dest.txt

显示文件的每行的最新版本及谁变动的:svn blame Number.txt

还原文件:svn merge -r 7:6 Number.txt

    

 

    

联网访问的三种方法:

    (1)svnserve
(2)ssh
(3)apache

对于某个特定的项目仓库启动svnserve:start svnserve --daemon --root D:\svn-repos 

通过svnserve签出文件:svn co svn://xiazdong-PC/sesame/trunk vizier

默认svnserve管理的项目仓库是只读的,即只能签出,不能提交;在/conf/svnserve.conf中添加:
anon-access=read  //匿名用户只读
auth-access=write//授权用户可写
passowrd=passwd//在passwd文件内配置
在passwd文件中配置:xiazdong=12345表现用户名是xiazdong,密码是12345

注意:在svnserve.conf和passwd两个文件配置时必须顶格,否则无效;


属性:文件的元数据;

为Number.txt设置checked-by属性为xiazdong:svn propset checked-by "xiazdong" Number.txt

编辑Number.txt中的checked-by属性(须要配置SVN_EDITOR设置默认编辑器):svn propedit checked-by Number.txt

列出Number.txt的所有属性:svn proplist Number.txt


获得某个属性:svn propget checked-by Number.txt


经常使用属性:
(1)svn:ignore:疏忽某些文件; *.java表现疏忽java文件
(2)svn:eol-style:设置换行符,一般为 native,表现随着操作系统而变化;
(3)svn:mime-type:设置文件的mime类型;
(4)svn:needs-lock:设置文件加锁

一般我们可以在文件中配置autoprops,主动设置;
1.寻觅config文件:
(1)echo %APPDATA%
(2)\subversion\config
2.设置enable-auto-props = true
3.找到[auto-props],并设置主动属性

    

文件加锁

 

    严格加锁:只允许一个人改动一个文件;
悲观加锁:比如有A、B两人同时checkout了一个文件File.java,并且同时对他们修改了,A先提交,当B想提交时,必须先svn update,把自己的目录酿成最新的当前才能够提交,更新时会涌现两种情况:
(1)如果A和B改动的不是同一行,那么会畸形合并;
(2)如果A和B改动的是同一行,则会在源代码中标记出冲突:

    而Subversion默认是采用悲观加锁;

    

    对于文本文件,可以通过合并的方式处理冲突,但是对于二进制文件,则须要文件加锁处理;

为文件开启文件加锁:为某个文件添加svn:needs-lock属性,并且commit到文件仓库;

文件加锁:svn lock Day.txt -m "lock"

强制解锁(虽然别人有锁,但是另外一个人可以强制解开锁,但没有获得锁):svn unlock --force svn://xiazdong-pc/sesame/trunk/Day.txt

强制加锁(不管有没有人有锁,都抢过来):svn lock --force Day.txt

    

    转向其他目录:svn switch svn://xiazdong-pc/sesame/branches/b1

    

    冲突:

    <<<<<<< .mine

    本来代码

    =======

    项目仓库代码

    >>>>>>> .r4

    

    分支和标签:简单地来说就是某个任务拷贝的复制;

    在分支上开辟:

    (1)在项目仓库中创建branches目录; svn mkdir svn://xiazdong-pc/sesame/branches

    (2)在项目仓库中将骨干复制到b1目录中; svn copy svn://xiazdong-pc/sesame/trunk svn://xiazdong-pc/sesame/branches/b1

    (3)通过b1目录checkout一份任务拷贝;   svn co svn://xiazdong-pc/sesame/branches/b1 b1

    (4)提交;

    

    

三、TortoiseSVN使用分析

    

    如果晓得SVN中的术语,其实此工具非常易于入门和使用;

    

    

1.checkout

    文件和项目 文件和项目

    

2.冲突问题

    文件和项目

    

    文件和项目

    文件和项目

    文件和项目

 

    

四、Subclipse使用分析

    


1.checkout

    文件和项目

    文件和项目

    文件和项目

 

    

2.commit等

    文件和项目

文章结束给大家分享下程序员的一些笑话语录: 一程序员告老还乡,想安度晚年,于是决定在书法上有所造诣。省略数字……,准备好文房4宝,挥起毛笔在白纸上郑重的写下:Hello World

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP中常见的五种设计模式

设计模式只是为 Java架构师准备的 — 至少您可能一直这样认为。实际上&#xff0c;设计模式对于每个人都非常有用。如果这些工具不是 “架构太空人” 的专利&#xff0c;那么它们又是什么&#xff1f;为什么说它们在 PHP 应用程序中非常有用&#xff1f;本文解释了这些问题。 设…

Java常用类集接口以及实现方式总结

最近学习map-reduce原理以及map-reduce编程&#xff0c;于是顺带着学习下Java编程&#xff0c;对于Java常用的数据结构和类集&#xff0c;我总结到mind图中&#xff0c;便于理清相互之间的关系 package leiji; import java.util.ArrayList; import java.util.List; import java…

Android之Launcher分析和修改1——Launcher默认界面配置(default_workspace)

www.cnblogs.com/mythou/p/3153880.html 最近工作都在修改Launcher&#xff0c;所以打算把分析源码和修改源码的过程记录下来&#xff0c;最近会写一些关于Launcher的分析和修改博文。因为我是修改4.0.3的Launcher&#xff0c;所以后面文章里面的Launcher都是基于Android4.0.…

如果你喜欢上了一个程序员小伙 献给所有程序员女友(来自ITeye博客的文章 作者:talent2012)...

程序员向来是善于幽默自嘲的群体&#xff0c;但从某种程度上影响了咱程序员在广大女同胞心中的印象啊&#xff5e;&#xff5e; 于是写下此篇&#xff08;有从别处看到的3句加进来的&#xff09;&#xff0c; 就算是为咱程序员做个广告&#xff5e;&#xff5e;要是觉得有点过的…

豆瓣9.6分!这部BBC的纪录片太让人震撼!

全世界只有3.14 % 的人关注了爆炸吧知识英国广播公司BBC的纪录片素来就是高质量的代名词&#xff0c;推出的《地球无限》(Planet Earth)、《地球的力量》(Earth The Power of the Planet)、《冷血生命》(Life In Cold Blood)等片不仅在英国播放时获得极高收视&#xff0c;还获得…

vim-snipmate编写snippet的语法

vim-snipmate真的很好用&#xff0c;以前好多编写代码的问题得到完美的解决。还附带提升我对vim的理解和信心&#xff0c;在这里感谢一下作者。thank you。 1、现说一下我浓缩的重要语法。 1、定义是下面这样&#xff0c;注意中间必须是一个制表符<TAB>不能用空格代替。 …

Android之Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置

上一篇文章说了如何修改Android自带Launcher2的默认界面设置&#xff08;http://www.cnblogs.com/mythou/p/3153880.html&#xff09;。 今天主要是说说Launcher里面图标、布局、壁纸等的设置问题。毕竟我们一般修改Launcher&#xff0c;这些都是需要修改的地方&#xff0c;也是…

N 年沉淀,腾讯这套系统终于开源!

大家好&#xff0c;我是鱼皮&#xff0c;前段时间给大家介绍了字节跳动开源的两套设计系统&#xff0c;分别是 Arco Design 和抖音 Semi Design。而就在几天前&#xff0c;腾讯终于也开源了自家的设计系统 TDesgin &#xff01;这次&#xff0c;终于能介绍自己公司的项目了。如…

Android之Launcher分析和修改3——Launcher启动和初始化

前面两篇文章都是写有关Launcher配置文件的修改&#xff0c;代码方面涉及不多&#xff0c;今天开始进入Launcher代码分析。 我们开机启动Launcher&#xff0c;Launcher是由Activity Manager启动的&#xff0c;而Activity Manager是由system server启动。 原创博文&#xff0c…

史上最强物理科普!

全世界只有3.14 % 的人关注了爆炸吧知识一沙见世界 一花窥天堂手心握无限 须臾纳永恒杨振宁曾说读上面的四句诗可以感受到物理的美但物理的美不止于此物理还有一种庄严美一种神秘美一种初窥宇宙奥秘的畏惧美物理就是如此的迷人任何语言在它的面前都很贫瘠数学让人摆脱了愚昧而…

mysql 怎么实现随机查询并分页,不重复查询

2019独角兽企业重金招聘Python工程师标准>>> 需求&#xff1a; 企业应用中&#xff0c;一般数据量不是很特别多&#xff0c;同时大多在局域网内&#xff0c;性能不会有问题&#xff0c;一般不会分页处理&#xff0c;随机排序数据一般不会有问题 web网站中&#xf…

主机远程唤醒配置

配置&#xff1a;win10戴尔主机F2进biosbios设置2.系统设置3.以太网设置4.电源管理设置以上设置完成后关机&#xff0c;就可以在远程电脑上打开WakeMeOnLan&#xff0c;然后添加或者搜索需要唤醒的电脑的ip&#xff0c;mac和主机名称&#xff0c;然后就可以唤醒远程主机了查看m…

unix高级编程apue.h问题

2019独角兽企业重金招聘Python工程师标准>>> apue.h头文件为作者自己编写而非系统自带&#xff0c;故需要自行添加&#xff01;第一&#xff1a;打开网站 http://www.apuebook.com/第二&#xff1a;选择合适的版本&#xff08;一共有三个版本&#xff0c;根据书的版…

EIGRP stub SIA

转载于:https://blog.51cto.com/liushuo890/1202399

岛国人气美少女竟然每晚跟 3 个人通宵打麻将?

1 桥本怕不是四川人?▼2 借口总比困难多▼3 突然觉得自己是大厨▼4 连自己都不放过▼5 这就是纹身的烦恼▼6 这又是什么黑暗料理&#xff08;via.坏蛋王师傅&#xff09;▼7 哦吼&#xff0c;是在下输了▼7 哦吼&#xff0c;是在下输了▼你点的每个赞&#xff0c;我都认…

java获取ResultSet长度

2019独角兽企业重金招聘Python工程师标准>>> public class Test { public static void main(String[] args) throws SQLException { Connection conn WLMGlobal.connMgr_stat_instance().getConnection(); Statement stmt conn.createStatement(Result…

浅谈协同过滤推荐算法

在现今的推荐技术和算法中&#xff0c;最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。 1 什么是协同过滤 协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF)&#xff0c;首先想一个简…

C# wpf编程CM框架快速入门项目实例

01—事件连接这会自动将控件上的事件关联到ViewModel上的方法。常规约定&#xff1a;<Button x:Name"Save">这将导致按钮的单击事件调用ViewModel上的“Save”方法。简短语法&#xff1a;<Button cal:Message.Attach"Save">这将再次导致按钮的…