﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-橡皮果实-随笔分类-SVN</title><link>http://www.blogjava.net/risn/category/40543.html</link><description>Just Eat It,Waiting For The Arrangement Of Fate.</description><language>zh-cn</language><lastBuildDate>Wed, 01 Jul 2009 04:37:53 GMT</lastBuildDate><pubDate>Wed, 01 Jul 2009 04:37:53 GMT</pubDate><ttl>60</ttl><item><title>[转载]关于在Eclipse下使用Subversion教程</title><link>http://www.blogjava.net/risn/archive/2009/07/01/284907.html</link><dc:creator>Allen Yu</dc:creator><author>Allen Yu</author><pubDate>Wed, 01 Jul 2009 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/risn/archive/2009/07/01/284907.html</guid><wfw:comment>http://www.blogjava.net/risn/comments/284907.html</wfw:comment><comments>http://www.blogjava.net/risn/archive/2009/07/01/284907.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/risn/comments/commentRss/284907.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/risn/services/trackbacks/284907.html</trackback:ping><description><![CDATA[<div><strong>转载来源：</strong><a href="http://hi.baidu.com/easonxiang/blog/item/167de41125229fc6a6ef3f0b.html"><strong>http://hi.baidu.com/easonxiang/blog/item/167de41125229fc6a6ef3f0b.html</strong></a><br />
环境：win2000</div>
<div style="text-indent: 31.5pt">svn-1.3.2-setup.exe&nbsp;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&nbsp;SVN服务端</div>
<div style="text-indent: 31.5pt">TortoiseSVN-1.3.5.6804-svn-1.3.2.msi&nbsp;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&nbsp;SVN客户端</div>
<div style="text-indent: 31.5pt">LanguagePack-1.3.5.6804-win32-zh_CN.exe&nbsp;&#8230;&#8230;&#8230;&#8230;中文语言包</div>
<div style="text-indent: 31.5pt">Subclipse&nbsp;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;Eclipse插件</div>
<div>使用步骤：</div>
<div>&nbsp;</div>
<div>第一步：建立推荐的虚拟目录结构：例如：我建了一个这样的目录：D:\temp\New\,&nbsp;并且,&nbsp;在这个目录下创建三个文件夹，名称依次为：trunk，branches，tags。&nbsp;接着把我们要控制的项目复制到trunk中。(trunk中保存)</div>
<div>第二步：创建Subversion仓库：例如：我在D盘建了一个名称为SVN的文件夹，再鼠标右击，&nbsp;选中TortoiseSVN-&gt;create&nbsp;restore&nbsp;here&nbsp;,&nbsp;在点击确定即可</div>
<div><span style="color: red">注：</span></div>
<div style="text-indent: 10.5pt"><span style="color: red">Subversion</span><span style="color: red">的使用主要在于创建服务器端的仓库，其中关键文件在于</span><span style="color: red">conf</span><span style="color: red">文件夹中的</span></div>
<div style="text-indent: 10.5pt"><span style="color: red">authz,&nbsp;svnserve.conf,&nbsp;passwd</span><span style="color: red">三个文件</span></div>
<div><span style="color: red">其中</span><span style="color: red">authz</span><span style="color: red">用于部署访问权限，</span><span style="color: red">passwd</span><span style="color: red">文件存放访问者密码，</span><span style="color: red">svnserve.conf</span><span style="color: red">属于基本的配置文件，用于配置访问其他文件。</span></div>
<div>第三步：修改配置文件，&nbsp;在Subversion仓库中的conf文件夹中的authz&nbsp;中依次修改为：</div>
<div>[groups]</div>
<div>harry_and_sally&nbsp;=&nbsp;harry,sally</div>
<div>&nbsp;</div>
<div>#&nbsp;[/foo/bar]</div>
<div>harry&nbsp;=&nbsp;rw</div>
<div>*&nbsp;=</div>
<div>&nbsp;</div>
<div>[/]</div>
<div>@harry_and_sally&nbsp;=&nbsp;rw</div>
<div>*&nbsp;=&nbsp;r</div>
<div>在passwd中依次修改为：</div>
<div>[users]</div>
<div>harry&nbsp;=&nbsp;harry</div>
<div>sally&nbsp;=&nbsp;sally</div>
<div>在svnserve.conf中依次修改为：</div>
<div>[general]</div>
<div>anon-access&nbsp;=&nbsp;none</div>
<div>auth-access&nbsp;=&nbsp;write</div>
<div>password-db&nbsp;=&nbsp;passwd</div>
<div>authz-db&nbsp;=&nbsp;authz</div>
<div>第四步：启动服务器：在命令行中依次输入：svnserve&nbsp;&#8211;d&nbsp;&#8211;r&nbsp;创建Subversion仓库，</div>
<div>我的路径是D:\SVN</div>
<div>第五步：导入数据：将刚才建的虚拟目录的内容导入到Subversion仓库，按照我的例子</div>
<div>就应该是在New文件夹下右击，选择check&nbsp;out,&nbsp;如图：</div>
<div><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104800478.png"  alt="" /></div>
<div>这将会在Subversion仓库中创建这些内容,我们可以在SVN文件夹上右击，选中TortoiseSVN-&gt;&nbsp;Repo-brower&nbsp;就会看到如图的内容：</div>
<div><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104801448.png"  alt="" /></div>
<div>（注意开始的时候里面文件的版本都为1，&nbsp;我这是对它操作以后的截图，&nbsp;不好意思哦）</div>
<div>第五步：在Eclipse中装上Subclipse插件，装好之后，&nbsp;在Eclipse中选择Windows-&gt;&nbsp;Show&nbsp;View-&gt;others&nbsp;就会出现如图：</div>
<div><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104801879.png"  alt="" />选中SVN资源库，再在控制台上右击，选择新建-&gt;&nbsp;数据库位置，&nbsp;就会出现：</div>
<div><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104801759.png"  alt="" /></div>
<div>
<div>点Finish之后，就会在控制台上看到如图：&nbsp;<img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104801747.png" width="700"  alt="" /></div>
<div>第六步：选中truck&nbsp;,右击选中取出为：如图所示：</div>
<div><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104802614.png"  alt="" /></div>
<div>选中Finish之后就在Eclipse&nbsp;中加入了一个工作副本</div>
<div>如图所示：</div>
<div><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104802998.png" width="700"  alt="" /></div>
<div>这个时候相当于在磁盘的某一个位置上建立了一个客户端，默认在Eclipse的&nbsp;workspace下的某一个文件夹下</div>
<div>第七步：建立分支与标记：单击需要分支与标记的项目；选中Team-&gt;&nbsp;分支/标记,&nbsp;会出现如图：</div>
<div><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104803839.png"  alt="" /></div>
<div>
<div>点OK&nbsp;之后，就会在控制台出现：<span style="font-size: 10pt; color: black">Copy-rHEADsvn://localhost/trunk/News&nbsp;&nbsp;svn://localhost/branches/branches_4.1</span>&nbsp;</div>
<div>表示已经建立了这个分支，和上面相同，在建立一个标记副本&nbsp;<br clear="all" />
<img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104803691.png"  alt="" /></div>
<div align="left">就会在控制台出现：<span style="font-size: 10pt; color: black">copy&nbsp;-rHEAD&nbsp;svn://localhost/trunk/News&nbsp;svn://localhost/tags/tags_4.1</span></div>
<div>第八步：建立切换，作用在于对此分支的操作不会影响到对tunck中的程序了</div>
<div>&nbsp;选中刚才建立分支的文件夹，右击选择Team-&gt;切换&nbsp;如图所示：</div>
<div>&nbsp;<img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104803197.png"  alt="" />&nbsp;</div>
<div>&nbsp;点OK&nbsp;之后，&nbsp;就会在控制台上显示：<span style="font-size: 10pt; color: black">switch&nbsp;svn://localhost/trunk/News&nbsp;E:/javaStady/trunk/News&nbsp;-rHEAD</span>&nbsp;</div>
<div align="left">第九步：合并操作.&nbsp;对某些文件就可以进行一下同步了，&nbsp;将新版本改变的内容整合到trunk中，在控制台上我们可以看到：<span style="font-size: 10pt; color: black">merge&nbsp;-rHEAD:HEAD&nbsp;svn://localhost/branches/branches_4.1&nbsp;E:/javaStady/trunk/News</span></div>
<div align="left"><span style="font-size: 10pt; color: blue">&nbsp;&nbsp;&nbsp;&nbsp;Merge&nbsp;complete.</span></div>
<div align="left"><span style="font-size: 10pt; color: black">merge&nbsp;-rHEAD:HEAD&nbsp;svn://localhost/branches/branches_4.1&nbsp;E:/javaStady/trunk/News</span></div>
<div style="text-indent: 21pt"><span style="font-size: 10pt; color: blue">Merge&nbsp;complete.</span></div>
<div style="text-indent: 21pt">&nbsp;</div>
<div style="text-indent: 21pt">最后我们看一下TortoiseSVN-&gt;&nbsp;Repo-brower中的变化：</div>
<div style="text-indent: 21pt"><img src="http://java.chinaitlab.com/UploadFiles_8734/200701/20070129104803835.png"  alt="" /></div>
<div>&nbsp;merge实际是比较前后两个版本之间的差别，然后将这些差别应用到工作拷贝上的一个操作，根据源与目的版本号的先后，出现了&#8220;合并&#8221;、&#8220;撤销&#8221;等不同效果，然后通过提交（commit）来将这些效果保存到服务器端中。</div>
</div>
</div>
<img src ="http://www.blogjava.net/risn/aggbug/284907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/risn/" target="_blank">Allen Yu</a> 2009-07-01 11:23 <a href="http://www.blogjava.net/risn/archive/2009/07/01/284907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]使用eclipse和subversion进行版本管理</title><link>http://www.blogjava.net/risn/archive/2009/07/01/284904.html</link><dc:creator>Allen Yu</dc:creator><author>Allen Yu</author><pubDate>Wed, 01 Jul 2009 03:15:00 GMT</pubDate><guid>http://www.blogjava.net/risn/archive/2009/07/01/284904.html</guid><wfw:comment>http://www.blogjava.net/risn/comments/284904.html</wfw:comment><comments>http://www.blogjava.net/risn/archive/2009/07/01/284904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/risn/comments/commentRss/284904.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/risn/services/trackbacks/284904.html</trackback:ping><description><![CDATA[<p><strong>转载来源：</strong><a href="http://blog.csdn.net/keelsike/archive/2006/05/30/762892.aspx"><strong>http://blog.csdn.net/keelsike/archive/2006/05/30/762892.aspx</strong></a><br />
<br />
令人头疼不已的版本错误，误删源码情况再度发生，忍无可忍只好想办法上subversion了。<br />
主要思路是先在一个SERVER上建立svn的服务，再用eclipse的SVN插件作为客户端连上去，进行相关操作。这里因为服务器未提供WEB服务，而且eclipse的插件功能还不错，所以SVN不采用Apache的加载方式。</p>
<p>步骤如下(windows系统)：<br />
1.下载相关安装程序:<br />
http://subversion.tigris.org/ 下载subversion的编绎后程序(本人是1.3.1版);<br />
http://clanlib.org/~mbn/svnservice/ 下载一个程序,可将subversion变成windows的一项服务;<br />
http://subclipse.tigris.org/&nbsp; 安装eclipse的SVN插件(安装说明:http://subclipse.tigris.org/install.html)(版本:1.0.1)</p>
<p>推荐安装：<br />
http://tortoisesvn.tigris.org/ 有名的SVN客户端软件(版本:1.3.3.6219)<br />
注意它有个中文的语言包可下载的.<br />
&nbsp;<br />
2.在SERVER上安装配置SVN服务</p>
<p>a.建立SVN服务所用到的repository文件夹作为文件库，如:E:\svn\repository</p>
<p>b.命令行方式或者通过TortoiseSVN插件进行GUI操作，命令行运行如下:</p>
<p>svnadmin create E:\svn\repository </p>
<p>TortoiseSVN的GUI方式，在E:\svn\repository下点击右键选择[TotoiseSVN]-&gt;[Create Repository href...]进行创建，版本库模式指定为默认的即可。</p>
<p>c.repository创建完毕后会在目录下生成若干个文件和文件夹，dav目录是提供给Apache与mod_dav_svn使用的目录，让它们存储内部数据；db目录就是所有版本控制的数据文件；hooks目录放置hook脚本文件的目录；locks用来放置Subversion文件库锁定数据的目录，用来追踪存取文件库的客户端；format文件是一个文本文件，里面只放了一个整数，表示当前文件库配置的版本号;</p>
<p>d.配置conf:<br />
找到E:\svn\repository\conf\svnserve.conf文件，其中[general]中的三行可以解除注释并保存,具体含意文件中有:</p>
<p>anon-access = none<br />
auth-access = write<br />
&nbsp;<br />
password-db = passwd<br />
&nbsp;<br />
设置用户与密码，找到E:\svn\repository\conf\passwd文件，打开看[users]中已经有了两个例子，照着加几个用户即可(格式与例子完全一致)，将不需要的用户注释掉,这里可以多建立几个不同的用户,以方便你在不同地方导出时用不同用户区分出在何处何时更改的,如建立admin_home(在家用的),admin_company(在公司用的),admin_out(出差时用的).</p>
<p>e.注册并运行服务:<br />
这里提一下一般的起动服务的命令行方式:</p>
<p>svnserve --daemon --root E:\svn\repository</p>
<p>如果要建立WINDOWS的服务,按以下操作:<br />
e.1.将SVNService.exe复制到subversion安装的bin目录中,注意:Make sure you place SVNService.exe in the same directory as svnserve.exe.</p>
<p>e.2.在命令行中执行:</p>
<p>SVNService -install -d -r E:\svn\repository</p>
<p>将此服务注册为E:\svn\repository文件库的服务.这样你在上一步做的配置才会生效,如果还建有另一个文件库,那要千万注意是启用的哪一个;</p>
<p>e.3.打开管理工具中的"服务",将SVNService启动,并将服务更改为自动启动. <br />
&nbsp;<br />
至此,服务器所有工作完成,可以关掉远程终端了.<br />
&nbsp;<br />
3.用eclipse进行SVN管理:</p>
<p>a.安装:<br />
没什么好说的,看安装说明:<br />
http://subclipse.tigris.org/install.html<br />
如果安装失败,注意清空localsetting/temp中与eclipse相关的.update临时文件夹,再重启eclipse再试安装,我就是装了好几次才成功,主要是因为网络原因下载的包有错误.(http://subclipse.tigris.org/servlets/ProjectDocumentList 可下载ZIP包到本地,用eclipse从ZIP包安装,解决网络问题)<br />
&nbsp;<br />
另外推荐安装tortoisesvn,再另上中文语言包,安装过程很简单,无需作任何复杂设置.当然不装只使用eclipse也可以.</p>
<p>b.使用:<br />
重启eclise后,可以在Customize Perspective中设置相关svn的选项.<br />
在需要的项目上点右键,Team&gt;share project,连接svn://202.XXX.XXX.XXX,进行相关设置和填入用户名密码后,即可进行SVN管理了.<br />
主要的管理功能可以在Team菜单中看到.</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/keelsike/archive/2006/05/30/762892.aspx</p>
<img src ="http://www.blogjava.net/risn/aggbug/284904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/risn/" target="_blank">Allen Yu</a> 2009-07-01 11:15 <a href="http://www.blogjava.net/risn/archive/2009/07/01/284904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]如何结合使用 Subversion 和 Eclipse</title><link>http://www.blogjava.net/risn/archive/2009/07/01/284896.html</link><dc:creator>Allen Yu</dc:creator><author>Allen Yu</author><pubDate>Wed, 01 Jul 2009 02:56:00 GMT</pubDate><guid>http://www.blogjava.net/risn/archive/2009/07/01/284896.html</guid><wfw:comment>http://www.blogjava.net/risn/comments/284896.html</wfw:comment><comments>http://www.blogjava.net/risn/archive/2009/07/01/284896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/risn/comments/commentRss/284896.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/risn/services/trackbacks/284896.html</trackback:ping><description><![CDATA[<blockquote>
<p><strong>转载来源：</strong><a href="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/" target="_blank"><strong>www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/</strong></a><br />
</p>
<p>从一开始，Eclipse 便包含了与 Concurrent Versions System（CVS）的紧密集成，以便提供具有变更管理能力的访问权限。现在，许多项目（特别是 Apache Software Foundation 运行的项目）正在使用的是另外一种变更管理系统：Subversion。本文介绍如何为使用 Subversion 存储库的项目使用 Eclipse。</p>
</blockquote>
<p>原有的 Eclipse 安装已集成了对 CVS（一种流行的开放源码变更管理系统）的支持。CVS 的功能及其局限性众所周知，但是许多小组一直在研究其他版本控制的系统，以便提供更好的伸缩性、对合并变更和分支版本的更好支持以及对二进制文件格式的更好支持。</p>
<p>Subversion（SVN）是最受欢迎的 CVS 替代品，它提供了更好的性能（允许智能本地缓存和数据库后端）、轻松而又快速的分支（branching）以及对使用 CVS 时常见的所有问题的应答。</p>
<p>继续阅读本文，了解如何向 Eclipse 添加 Subversion 支持，以及如何通过 IDE 执行基本的版本控制活动。</p>
<p><a name="N10053"><span class="atitle">开始之前</span></a></p>
<p>为顺利学习本文内容，您需要下载并安装 Eclipse（参见<a href="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/#resources"><font color="#996699">参考资料</font></a>）。为您的平台下载 Eclipse SDK 包将为您提供基本的 Eclipse IDE（也称为 Eclipse Platform）和 Java&#8482; Development Kit。如果您计划使用 C/C++ （我正打算这么做），请访问 C Development Tooling（CDT）Web 站点并使用更新管理器安装 CDT（下一节将介绍如何使用更新管理器）。</p>
<p>您还需要访问 Subversion 存储库。如果需要建立一个 Subversion 存储库，可在 Subversion 的 Web 站点（参见 <a href="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/#resources"><font color="#996699">参考资料</font></a>）中找到一些出色的参考资料。出于演示目的，我将向您展示如何检出 Subclipse 项目，并在局域网上使用存储库中的项目。<br />
</p>
<p><a name="N10069"><span class="atitle">将 Subclipse 添加到 Eclipse</span></a></p>
<p>Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目。我们将使用 Eclipse 的更新管理器将 Subclipse 添加到 Eclipse IDE。在 Eclipse 中的 &#8220;Help&#8221; 菜单中选择 <strong>Software Updates &gt; Find and Install</strong> 打开更新管理器。</p>
<br />
<a name="N10077"><strong>图 1. Eclipse 更新管理器</strong></a><br />
<img height="572" alt="Eclipse 更新管理器" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig01.jpg" width="572" /> <br />
<br />
<p>除了使用这个更新管理器查找软件更新外，我们还可以使用该更新管理器查找并安装新特性，如 Subclipse。务必选中 <strong>Search for new features to install</strong>，然后单击 <strong>Next</strong> 以继续。Eclipse 会显示更新管理器的下一个面板。</p>
<br />
<a name="N10090"><strong>图 2. 更新管理器站点</strong></a><br />
<img height="572" alt="更新管理器站点" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig02.jpg" width="572" /> <br />
<br />
<p>由于我们需要的是特定特性，所以取消选中现有站点，然后单击 <strong>New Remote Site</strong>，显示 New Update Site 对话框（参见图 3）。我们将使用此对话框将 Subclipse 更新站点添加到列表。</p>
<br />
<a name="N100A6"><strong>图 3. 添加新的更新站点</strong></a><br />
<img height="165" alt="添加新的更新站点" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig03.jpg" width="350" /> <br />
<br />
<p>在 Name 中输入您需要的内容（<code><font face="新宋体">Subclipse</font></code> 是最佳选择），并输入以下 URL：<code><font face="新宋体">http://subclipse.tigris.org/update_1.0.x</font></code>（当前 Subclipse 更新站点）。单击 <strong>OK</strong> 将 Subclipse 更新站点添加到更新管理器的列表中。</p>
<p>在更新管理器窗口中，单击 <strong>Finish</strong>，开始搜索新特性。在本例中，我们需要的新特性是 Subclipse。片刻之后，更新管理器的搜索完成，并显示搜索结果。</p>
<br />
<a name="N100CA"><strong>图 4. 可以安装的新特性</strong></a><br />
<img height="477" alt="可以安装的新特性" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig04.jpg" width="572" /> <br />
<br />
<p>选中 Subclipse（您可以单击提示三角符号来查看此特性的详细内容），然后单击 <strong>Next</strong> 查看该特性的许可条款。接受条款，然后单击 <strong>Next</strong> 检查您选择安装的特性。单击 <strong>Finish</strong> 下载并安装 Subclipse。</p>
<p>更新管理器下载 Subversion 组件。在安装任何内容之前，Eclipse 都将通知您该特性没有数字签名（图 5）。这是您取消安装的最后一次机会。单击 <strong>Install All</strong> 继续安装。</p>
<br />
<a name="N100EC"><strong>图 5. Subclipse 没有数字签名</strong></a><br />
<img height="477" alt="Subclipse 没有数字签名" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig05.jpg" width="572" /> <br />
<br />
<p>安装 Subversion 后，Eclipse 会立即通知您可能需要重新启动 IDE 才能激活新特性（参见图 6）。周全起见，重新启动 Eclipse。<br />
<a name="N100FF"><strong>图 6. 安装新特性后重新启动 Eclipse</strong></a></p>
<div forimg="1"><img class="blogimg" src="http://hiphotos.baidu.com/ilovemy77lovem/pic/item/587be612c28388c2c3fd7892.jpg" border="0" small="0"  alt="" /><br />
<p>备份 Eclipse 后，才能安装并顺利使用 Subclipse。</p>
<p>如果在 Mac OS X 或 Linux&#174; 上运行 Eclipse，您可能需要安装 JavaHL 库，在 Subclipse FAQ 中的 Troubleshooting 部分对该库进行了描述（请参阅<a href="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/#resources"><font color="#996699">参考资料</font></a>）。在继续尝试使用 Subclipse 之前，请做好这些准备工作。</p>
<p><a name="quicktest"><span class="smalltitle"><strong><font size="3">快速测试</font></strong></span></a></p>
<p>完成安装之后，测试新特性总是令人愉快；我们将从 Subversion 存储库检出 Subclipse 的副本，以确保其安装正确。</p>
<p>在 Eclipse 的 File 菜单中选择 <strong>Import</strong> 打开导入管理器（参见图 7）。选择 <strong>Checkout Projects</strong> from SVN，然后单击 <strong>Next</strong>。</p>
<br />
<a name="N10130"><strong>图 7. 导入管理器</strong></a><br />
<div forimg="1"><img class="blogimg" src="http://hiphotos.baidu.com/ilovemy77lovem/pic/item/665a55558f66a0c8b745ae93.jpg" border="0" small="0"  alt="" /><br />
<p>在 Select/Create Location 面板中（参见图 8），我们需要创建一个新位置（因为尚未进行任何配置），因而单击 <strong>Next</strong> 继续。若 <strong>Next</strong> 按钮禁用，请切换到 <strong>Use existing repository location</strong> 选项，然后返回到 <strong>Create a new repository location</strong> 以启用 <strong>Next</strong> 按钮。<br />
<a name="N10152"><strong>图 8. 创建新的存储库位置</strong></a></p>
<div forimg="1"><img class="blogimg" src="http://hiphotos.baidu.com/ilovemy77lovem/pic/item/4a90edfb3b69262e4f4aea93.jpg" border="0" small="0"  alt="" /><br />
在接下来的部分（参见图 9）中，将存储库 URL（<code><font face="新宋体">http://subclipse.tigris.org/svn/subclipse/</font></code>）添写到 Url 字段中，然后单击 <strong>Next</strong>。片刻之后，Eclipse 提示您输入用户 ID 和口令。如果您在 Subclipse 站点上没有账号，请输入 <code><font face="新宋体">guest</font></code> 作为用户 ID，并输入空格作为口令，选中 <strong>Save Password</strong> 框，并单击 <strong>OK</strong>。<br />
<div forimg="1"><img class="blogimg" src="http://hiphotos.baidu.com/ilovemy77lovem/pic/item/1358d84467875140510ffe93.jpg" border="0" small="0"  alt="" /><br />
<p>Eclipse 会显示 Subclipse 存储库中的文件夹（参见图 10）。展开 trunk 选中 subclipse 文件夹，然后单击 <strong>Finish</strong> 即可检出您自已的 Subclipse 项目的源代码副本。由于您对此没有任何概念，所以在 New Project 向导提示您时，请选择 <strong>Simple &gt; Project</strong>。</p>
<div forimg="1"><img class="blogimg" src="http://hiphotos.baidu.com/ilovemy77lovem/pic/item/e499ed11356cfb72ca80c493.jpg" border="0" small="0"  alt="" /><br />
<p><a name="N1019B"><span class="atitle">基本的 Subversion 操作</span></a></p>
<p>至此，我们已成功地安装了 Subclipse，并在 Eclipse 设置中添加了对 Subversion 服务器的支持，通过从存储库下载最新的 Subclipse 源代码，我们对 Subclipse 进行了测试。现在该考虑使用我们自已的代码和 Subversion 存储库来做些事情了。</p>
<p>向您展示如何使用 Subversion 之前，先简单介绍一下我的存储库。它驻留在称为 dogma 的机器上，端口为 8000，我为与我的 developerWorks 文章相关的代码新建了一个 developerworks 存储库。我将项目直接放置在存储库的根目录中。其他存储库的根目录下通常会有 trunk、tags 和 branches 文件夹，分别用于存放开发版本、标签和分支。但我不希望为 developerWorks 文章中代码的标签和分支操作而烦心。</p>
<p>我已经添加了两个项目，即 forkWork 和 threadWork，这两个项目来自我的第一篇 developerWorks 文章。我的 Eclipse 工作区（参见图 11）还包含三个来自 developerWorks 文章的其他项目（getopt_demo、getopt_long_demo 和 readdir_demo）。</p>
<br />
<a name="N101AB"><strong>图 11. 我的 Eclipse C/C++ 项目</strong></a><br />
<div forimg="1"><img class="blogimg" src="http://hiphotos.baidu.com/ilovemy77lovem/pic/item/696214361bd065d1a3cc2b93.jpg" border="0" small="0"  alt="" /><br />
<p>现在，我们做好了一切准备，可以开始工作。</p>
<p><a name="N101BC"><span class="smalltitle"><strong><font size="3">将项目添加到存储库</font></strong></span></a></p>
<p>要将新的项目添加到 Subversion 存储库，请右击该项目（可以在任何 Eclipse 的项目视图或 Navigator 视图），并且从菜单中选择 <strong>Team &gt; Share Project</strong>。Eclipse 会显示 Share Project 对话框。</p>
<br />
<a name="N101CA"><strong>图 12. Share Project 对话框</strong></a><br />
<img height="415" alt="Share Project 对话框" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig11.jpg" width="461" /> <br />
<br />
<p>从 Eclipse 当前支持的存储库列表中选择 SVN，然后单击 <strong>Next</strong>。接下来的对话框（参见图 13）让您选择现有存储库位置，或者创建一个新位置。</p>
<br />
<a name="N101E0"><strong>图 13. 选择存储库位置</strong></a><br />
<img height="415" alt="选择存储库位置" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig12.jpg" width="461" /> <br />
<br />
<p>如果您的存储库已列出（如您所见，我已经添加了自已的库），选中它，并单击 <strong>Finish</strong>。如果您的存储库未列出，请添加它（有关说明，请参阅 <a href="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/#quicktest"><font color="#996699">快速测试</font></a>），并继续。Eclipse 将在存储库中创建新目录，其名称与项目相同，并显示项目中的所有文件和文件夹的列表。</p>
<br />
<a name="N101FA"><strong>图 14. 添加项目的内容</strong></a><br />
<img height="436" alt="添加项目的内容" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig13.jpg" width="559" /> <br />
<br />
<p>在顶部的字段中输入适当的内容来描述此项目，然后单击 <strong>Select All</strong> 选中该项目的所有文件。单击 <strong>OK</strong> 以检入项目，并将其当前状态传递给 Subversion 存储库。</p>
<p>Subversion 的命令和输出结果显示在 Console 视图中，通常位于 Eclipse 窗口的底部（如果您查看 Subclipse 究竟对项目执行了什么操作）。</p>
<p><a name="N10214"><span class="smalltitle"><strong><font size="3">更新项目</font></strong></span></a></p>
<p>版本控制系统的重要特性之一是其他开发人员能够随时继续开发，并在准备好时提交其变更。要下载这些变更，并将其与本地副本集成，您需要更新项目。</p>
<p>右击您要更新的项目，然后从菜单中选择 <strong>Team &gt; Update</strong>。Eclipse 将从存储库中检索任何变更，并尝试将它们与本地副本合并。</p>
<p><a name="N10223"><span class="smalltitle"><strong><font size="3">添加文件或目录</font></strong></span></a></p>
<p>如果将文件添加到项目中（参见图 15），它不会自动成为版本控制的一部分 —— 您需要明确将其添加到特定的存储库中。在下面的屏幕快照中，您可以看到，我已经将 ReadMe.txt 文件添加到了 threadWork 项目中。</p>
<br />
<a name="N1022E"><strong>图 15. 添加新文件</strong></a><br />
<img height="265" alt="添加新文件" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig14.jpg" width="251" /> <br />
<br />
<p>右击新文件，然后选择 <strong>Team &gt; Add to Version Control</strong>。就是这样！下一次将此项目中的变更提交给存储库时，新文件也会检入。</p>
<p><a name="N10242"><span class="smalltitle"><strong><font size="3">删除文件或目录</font></strong></span></a></p>
<p>如果将文件添加到了与项目不在相关的存储库中，您可以轻松地删除它。右击文件，然后选择 <strong>Delete</strong>。不需要使用 Team 菜单，Subclipse 自动将标记要删除的文件，并将它从项目中移除。下一次将变更提交给存储库时，该文件被删除了。</p>
<p><a name="N1024E"><span class="smalltitle"><strong><font size="3">重命名文件或目录</font></strong></span></a></p>
<p>要重命名 Subclipse 控制的文件或目录，请右击它，然后选择 <strong>Rename</strong>。在输入字段中键入项的新名称，按 <strong>Enter</strong> 键。文件是在项目中重命名的，重命名操作（通过 Add 操作添加新名称、通过 Delete 操作删除旧名称）排队等待您下一次提交。在图 16 中，您可以看到将 main.c 重命名为 threadWork.c 之后、提交更改之前的 threadWork 项目。注意，Subclipse 为 &#8220;新&#8221; 文件添加的蓝色小加号表示该文件被安排在下一次提交时添加。</p>
<br />
<a name="N1025F"><strong>图 16. 重命名文件是原子操作，尽管它包含一个 add 操作和一个 delete 操作</strong></a><br />
<img height="265" alt="重命名文件是原子操作,尽管它包含一个 add 操作和一个 delete 操作" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig15.jpg" width="251" /> <br />
<p><a name="N1026B"><span class="smalltitle"><strong><font size="3">忽略文件</font></strong></span></a></p>
<p>如果项目生成文件，或者包括您不想检入的 Subversion 存储库文件，则可以通知 Subclipse 忽略它们。右击您要在版本控制中排除的文件或目录，然后选择 <strong>Team &gt; Add to svn:ignore</strong> 即可显示Add to svn:ignore 对话框。</p>
<br />
<a name="N10279"><strong>图 17. 忽略不纳入版本控制的资源</strong></a><br />
<img height="259" alt="忽略不纳入版本控制的资源" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig16.jpg" width="288" /> <br />
<br />
<p>单击 <strong>OK</strong> 将这个特定的文件添加到项目目录的 svn:ignore 属性中。选择 <strong>Wildcard extension</strong> 忽略具有当前文件扩展名的所有文件，或选择 <strong>Custom pattern</strong> 在忽略列表中添加您自己的通配符。下一次提交变更时，对忽略列表的这些更改将添加到存储库中。</p>
<p><a name="N10293"><span class="smalltitle"><strong><font size="3">提交更改</font></strong></span></a></p>
<p>如果您对项目的变更感到满意，确定了您的代码可以编译，并且已经对变更进行测试，则应将它们提交给 Subversion 存储库。在您的工作站崩溃时，它可以作为一个备份，并允许其他开发人员更新其本地副本以包含您的变更。</p>
<p>在尝试提交变更之前，请确保更新您的项目（参阅 &#8220;更新项目&#8221;）。右击项目，并从菜单中选择 <strong>Team &gt; Commit</strong>。Eclipse 会显示一个 Commit 对话框（参见图 18），其中汇总了您作出的变更。</p>
<br />
<a name="N102A4"><strong>图 18. 将变更提交给存储库</strong></a><br />
<img height="436" alt="将变更提交给存储库" src="http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/fig17.jpg" width="559" /> <br />
<br />
<p>如果仔细观察，您会看到一个属性更改为项目目录（我已经添加了 <code><font face="新宋体">svn:ignore</font></code> 属性，以使某些文件保留在存储库外），并且在添加 threadWork.c 时，删除了 main.c。这一变更对实际上表示的是一个操作（文件重命名）。</p>
<p>此时，如果您要使某些资源保留在存储库外，则可以取消对这些资源选择。如果您在一个文件中完成了部分工作，并且不希望检入未完成的变更，则这种方法非常有用。在顶部的文本字段中输入适当的注释，然后单击 <strong>OK</strong> 将变更检入存储库。</p>
</div>
</div>
</div>
</div>
</div>
</div>
<img src ="http://www.blogjava.net/risn/aggbug/284896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/risn/" target="_blank">Allen Yu</a> 2009-07-01 10:56 <a href="http://www.blogjava.net/risn/archive/2009/07/01/284896.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]SVN快速入门2——windows下的操作</title><link>http://www.blogjava.net/risn/archive/2009/06/30/284760.html</link><dc:creator>Allen Yu</dc:creator><author>Allen Yu</author><pubDate>Tue, 30 Jun 2009 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/risn/archive/2009/06/30/284760.html</guid><wfw:comment>http://www.blogjava.net/risn/comments/284760.html</wfw:comment><comments>http://www.blogjava.net/risn/archive/2009/06/30/284760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/risn/comments/commentRss/284760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/risn/services/trackbacks/284760.html</trackback:ping><description><![CDATA[<strong>转载来源：</strong><a href="http://www.blogjava.net/gdhqs"><strong>http://www.blogjava.net/gdhqs</strong></a><br />
<br />
上一篇文章介绍了如果用命令行执行svn命令，比较繁琐，下面将介绍在windows下进行svn操作。
<p>&nbsp;&nbsp;&nbsp;&nbsp; 为了安全着想，一般不允许匿名用户。所以将repository\conf目录下的svnserve.conf文件的anon-access = read和anon-access = write加上#注释掉，并将password-db = passwd前面的#去掉。意思为使同目录下的passwd文件生效。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_2.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="209" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb.png" width="562" border="0" /></a> </p>
<p>&nbsp;&nbsp;&nbsp; 在同目录下的passwd文件里创建用户：qishan = qishan123&nbsp;&nbsp; 其中等号左边是用户名，右边是密码。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_4.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="207" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_1.png" width="518" border="0" /></a> </p>
<p>&nbsp;&nbsp;&nbsp; 注意：在一次登录后，SVN会将我们的登录信息保存起来存放在硬盘上的文件中，其存放位置为：C:\Documents and Settings\[你的登录系统用户名] \Application Data\Subversion，如果想要删除该信息，只需要将该目录中的auth文件夹删除即可。</p>
<p>&nbsp;&nbsp;&nbsp; 安装TortoiseSVN <a href="http://tortoisesvn.tigris.org/">http://tortoisesvn.tigris.org</a>&nbsp;&nbsp; 的下载地址如下：<a title="http://tortoisesvn.net/downloads" href="http://tortoisesvn.net/downloads">http://tortoisesvn.net/downloads</a></p>
<p><strong><font size="5">&nbsp;&nbsp;&nbsp; import命令</font></strong></p>
<p>&nbsp;&nbsp;&nbsp; 安装成功后，新建一个文件夹，里面建一个文件，在次文件夹点击鼠标右键，出现TortoiseSVN的命令菜单，然后选择import命令。将该目录导入服务器中。纳入svn的管理之下。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_34.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="135" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_16.png" width="244" border="0" /></a> </p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_6.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="386" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_2.png" width="391" border="0" /></a> </p>
<p>宿儒服务器地址及其说明</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_8.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="291" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_3.png" width="397" border="0" /></a> </p>
<p>import成功！</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_12.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="251" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_5.png" width="549" border="0" /></a> </p>
<p><font size="5"><strong>checkout命令</strong></font></p>
<p>新建一个文件夹test4，点击鼠标右键，选择checklou</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_14.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="345" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_6.png" width="432" border="0" /></a> </p>
<p>输入要checkout的目录。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_16.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="342" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_7.png" width="438" border="0" /></a> </p>
<p>绿色图标表示文件版本和svn服务器版本一致.</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_18.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="181" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_8.png" width="178" border="0" /></a> </p>
<p>修改text2.txt文件,保存后图标变成红色,表示与服务器版本不一致.</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_36.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="90" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_17.png" width="244" border="0" /></a> </p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_20.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="207" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_9.png" width="191" border="0" /></a> </p>
<p>若确认修改,使svn服务器版本的文件和你所修改的文件一直,则需要<strong><font size="5">commit命令</font></strong></p>
<p><strong><font size="5"></font></strong></p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_22.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="281" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_10.png" width="330" border="0" /></a> </p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_26.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="344" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_12.png" width="347" border="0" /></a> </p>
<p>&nbsp;</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_28.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="241" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_13.png" width="542" border="0" /></a> </p>
<p>commit成功，图标又变成绿色，说明svn服务器里文件的版本已经更新为和你所修改的一致。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_30.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="204" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_14.png" width="210" border="0" /></a> </p>
<p>当别人提交修改后的text2.txt后.你原先checkout的是图标变成红色。</p>
<p>&nbsp;</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_32.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="213" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_15.png" width="213" border="0" /></a> </p>
<p>如果你想更新至svn服务器最新的版本。这个时候用<strong><font size="5">update命令</font></strong>。</p>
<p>注意：此时应该在text2.txt所在的文件夹鼠标右键点击svn update</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_42.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="253" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_20.png" width="490" border="0" /></a> </p>
<p>此时图标将变回绿色，说明你的文件版本和服务器最新版本一致。</p>
<p>这个时候有个地方需要注意的是，如果你修改文件后，没有commit，但是想回复以前的版本，这个时候不能用update，只能删掉这个文件，重新checkout你想要的版本。</p>
<p>最后讲述<strong><font size="5">add命令</font></strong></p>
<p>在checkout的文件夹里新建一个文件。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_44.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="196" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_21.png" width="192" border="0" /></a> </p>
<p>执行add命令:</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_46.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="332" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_22.png" width="399" border="0" /></a> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>此时图标变成蓝色，说明此文件是新增的文件，但还没在服务器里面更新。</strong></p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_48.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="224" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_23.png" width="220" border="0" /></a> </p>
<p>若要是svn服务器更新次文件，则对次文件执行commit命令。然后文件图标变成绿色。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_50.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="258" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_24.png" width="337" border="0" /></a> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_52.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="360" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_25.png" width="371" border="0" /></a> </p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_54.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="179" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVNwindows_11A6/image_thumb_26.png" width="244" border="0" /></a> </p>
<p>到此，windows下的svn操作已经描述完了。敬请期待下一篇哈</p>
<img src ="http://www.blogjava.net/risn/aggbug/284760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/risn/" target="_blank">Allen Yu</a> 2009-06-30 14:17 <a href="http://www.blogjava.net/risn/archive/2009/06/30/284760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]SVN快速入门1——SVN的安装及常用命令</title><link>http://www.blogjava.net/risn/archive/2009/06/30/284743.html</link><dc:creator>Allen Yu</dc:creator><author>Allen Yu</author><pubDate>Tue, 30 Jun 2009 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/risn/archive/2009/06/30/284743.html</guid><wfw:comment>http://www.blogjava.net/risn/comments/284743.html</wfw:comment><comments>http://www.blogjava.net/risn/archive/2009/06/30/284743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/risn/comments/commentRss/284743.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/risn/services/trackbacks/284743.html</trackback:ping><description><![CDATA[<strong>转载来源：</strong><a href="http://www.blogjava.net/gdhqs/"></a><strong>http://www.blogjava.net/gdhqs/</strong><a href="http://www.blogjava.net/gdhqs/"></a><br />
<br />
SVN相信大家都有使用过或者听说过吧？它的好处我这里就不说了，网上介绍多的是。因为是版本控制，所以个人认为其设计的原理不需要懂得太多，只需要了解常识即可。小弟google了许久，也没找到一篇介绍快速入门的文章。无奈之下，看了几篇长篇大论，终于学了点点的皮毛。下面我将写一个svn快速入门系列，因为是快速入门，所以一般只讲操作。（这里有些内容都是参考 深入浅出系列之二_SubVersion）
<p>&nbsp;&nbsp;&nbsp; 首先，我们下载svn安装文件，输入网址：<a href="http://subversion.tigris.org/">http://subversion.tigris.org</a> ，找到<a href="http://subversion.tigris.org/getting.html#binary-packages">...more downloads...</a>，然后找到windows那一块下载，注意，有两个版本<a href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91">Apache 2.0</a> or <a href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100">Apache 2.2</a> ，可以选择和你电脑里面apache服务器同样的版本下载。</p>
<p>&nbsp;&nbsp;&nbsp; 安装完成后，可在命令行输入svn --version查看是否安装成功,以及在系统变量里查看path是否增加了svn的安装目录。如下图：</p>
<p><img title="未命名" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="98" alt="未命名" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/%E6%9C%AA%E5%91%BD%E5%90%8D_thumb.jpg" width="578" border="0" /></p>
<p>&nbsp;&nbsp;&nbsp; 接着，在服务器端创立创库（repository）。a.手动在硬盘上创建一个文件夹。</p>
<p>&nbsp;&nbsp;&nbsp; <a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_4.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="195" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_1.png" width="339" border="0" /></a></p>
<p>&nbsp;&nbsp;&nbsp; b.在命令行输入svnadmin create + 仓库目录。&nbsp; 创建版本库。如图：</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_6.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="115" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_2.png" width="584" border="0" /></a> </p>
<p>&nbsp;&nbsp;&nbsp; 此时。仓库所在文件夹会多出几个文件，说明仓库创建成功。</p>
<p>&nbsp;&nbsp;&nbsp; SVN此时已经在你的电脑里准备就绪，下面将介绍SVN的几个常用命令：import ，checkout，commit，update以及mkdir。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 在执行import，commit，update，mkdir的时候，svn需要记录操作日志，方法一：在系统环境变量增加一个SVN_EDITOR变量，该变量的值取为系统自带的记事本：notepad。方法二，建立一个log.txt，作为日志。（一般建议用方法二，所以我下面将用方法二）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 为了便于在命令行下的操作，先设置svn为允许匿名帐号进行读写的操作：在仓库的conf目录下有一个文件svnserve.conf，用记事本打开，可以看到一行：#anon-access = read，意思为匿名用户有读的权限。将其前面的注释符#去掉。这一行即生效。再加上一行：anon-access = write，赋予匿名用户写的操作。如图：
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_10.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="246" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_4.png" width="518" border="0" /></a>
<p>&nbsp;&nbsp;&nbsp; 首先，启动服务： svnserve &#8211;d &#8211;r k:\repository，该命令含义为让SVN将此目录作为仓库，并侦听客户端的请求。其中-d的作用为后台模式，而-r的作用为指定服务器的仓库路径。
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_26.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="104" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb.png" width="620" border="0" /></a>
<p>&nbsp;&nbsp;&nbsp; 建立新的命令提示符，执行mkdir命令在svn创建一个test的虚拟目录：&nbsp; svn mkdir svn://localhost/test1 &#8211;F k:\log.txt&nbsp;&nbsp; 如图
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_12.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="125" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_5.png" width="601" border="0" /></a> </p>
<p>&nbsp; 接着，创建一个test目录，里面新建一个text1.txt文件。：</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_14.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="260" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_6.png" width="453" border="0" /></a> </p>
<p>&nbsp;&nbsp;&nbsp; 命令行转到test目录，执行import命令，将test上传到svn服务器。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_16.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="142" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_7.png" width="584" border="0" /></a></p>
<p>&nbsp;&nbsp; 下面讲述checkout命令。</p>
<p>&nbsp;&nbsp; 首先新建一个文件夹test2，在命令行转到这个文件夹，执行：&nbsp; svn checkout svn://localhost/test1。注意，check操作不需要写入log</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_18.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="147" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_8.png" width="588" border="0" /></a>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp; 接着讲述commit命令.</p>
<p>&nbsp;&nbsp; 如图,更改checkout下来的text1.txt文件</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_20.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="232" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_9.png" width="431" border="0" /></a>&nbsp;</p>
<p>在命令行执行commit命令:&nbsp; svn commit text1.txt &#8211;F k:\log.txt</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_22.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="136" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_10.png" width="590" border="0" /></a> </p>
<p>&nbsp;&nbsp;&nbsp; 最后讲述update命令:执行svm update text1.txt 取出text1.txt的最新版本。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_24.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="82" alt="image" src="http://www.blogjava.net/images/blogjava_net/gdhqs/WindowsLiveWriter/SVN1SVN_4BB/image_thumb_11.png" width="592" border="0" /></a> </p>
<p>到此.svn的基本命令讲完了,大家是不是觉得比较麻烦?没关系,下一篇将会介绍svn在windows下的操作.</p>
<img src ="http://www.blogjava.net/risn/aggbug/284743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/risn/" target="_blank">Allen Yu</a> 2009-06-30 11:41 <a href="http://www.blogjava.net/risn/archive/2009/06/30/284743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>