<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>版本控制 &#8211; LPC影子技术分享</title>
	<atom:link href="https://www.mudbest.com/tag/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mudbest.com</link>
	<description>行影不离,忘之却步.</description>
	<lastBuildDate>Mon, 19 Mar 2012 07:56:39 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>
	<item>
		<title>SVN服务端安装与客户端配置</title>
		<link>https://www.mudbest.com/svn%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%ab%af%e5%ae%89%e8%a3%85%e4%b8%8e%e5%ae%a2%e6%88%b7%e7%ab%af%e9%85%8d%e7%bd%ae/</link>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Mon, 19 Mar 2012 06:27:13 +0000</pubDate>
				<category><![CDATA[分享]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[TortoiseSVN]]></category>
		<category><![CDATA[版本控制]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=973</guid>

					<description><![CDATA[# 下载地址见本文下方 一、安装服务器端和客户端 安装 Subversion（以下简称SVN）的服务器端和客户 ... <a title="SVN服务端安装与客户端配置" class="read-more" href="https://www.mudbest.com/svn%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%ab%af%e5%ae%89%e8%a3%85%e4%b8%8e%e5%ae%a2%e6%88%b7%e7%ab%af%e9%85%8d%e7%bd%ae/" aria-label="阅读 SVN服务端安装与客户端配置">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p># 下载地址见本文下方</p>
<p><strong>一、安装服务器端和客户端</strong><br />
安装 Subversion（以下简称SVN）的服务器端和客户端。下载下来的服务器端是个 zip 压缩包，直接解压缩即可，比如我解压到 E:\subversion 。客户端安装文件是个 exe 可执行文件，直接运行按提示安装即可，客户端(TortoiseSVN)安装完成后提示重启。</p>
<p><strong>二、建立版本库（Repository）</strong></p>
<p>运行Subversion服务器需要首先要建立一个版本库（Repository）。版本库可以看作是服务器上集中存放和管理数据的地方。</p>
<p>开始建立版本库。首先建立 F:\svn 空文件夹作为所有版本库的根目录。然后，进入命令行并切换到subversion的bin目录。输入如下命令：</p>
<p>svnadmin create f:\svn\repos1<br />
<span id="more-973"></span><br />
此命令在 f:\svn 下建立一个版本库 repos1 。repos1 下面会自动生成一些文件夹和文件。</p>
<p>我们也可以使用 TortoiseSVN 图形化的完成这一步：</p>
<p>先建立空目录 f:\svn\repos1 ，注意一定是要空的。然后在 repos1 文件夹上“右键-&gt;TortoiseSVN-&gt;Create Repository here&#8230;”，然后可以选择版本库模式，这里使用默认的FSFS即可，然后就创建了一系列文件夹和文件，同命令行建立的一样。</p>
<p><strong>三、运行独立服务器</strong></p>
<p>此时 subversion 服务还没有开始，只是通过它的命令建立了版本库。继续在刚才的命令窗口输入：</p>
<p>svnserve.exe &#8211;daemon</p>
<p>svnserve 将会在端口 3690 等待请求，&#8211;daemon（两个短横线）选项告诉 svnserve 以守护进程方式运行，这样在手动终止之前不会退出。注意不要关闭命令行窗口，关闭窗口会把 svnserve 停止。</p>
<p>为了验证svnserve正常工作，使用TortoiseSVN -&gt; Repo-browser 来查看版本库。在弹出的 URL 对话框中输入：</p>
<p>svn://localhost/svn/repos1</p>
<p>点 OK 按钮后就可以看见 repos1 版本库的目录树结构了，只不过这时 repos1 是个空库。</p>
<p>你也可以使用&#8211;root选项设置根位置来限制服务器的访问目录，从而增加安全性和节约输入svnserve URL的时间：</p>
<p>svnserve.exe &#8211;daemon &#8211;root drive:\path\to\repository</p>
<p>以前面的测试作为例，svnserve 将会运行为：</p>
<p>svnserve.exe &#8211;daemon &#8211;root e:\svn</p>
<p>然后TortoiseSVN中的版本库浏览器URL缩减为：</p>
<p>svn://localhost/repos1</p>
<p>将SVN服务注册到Windows系统服务,在Windows命令提示符里执行命令<br />
<span style="color: #ff0000;">sc create SVN binpath= &#8220;\&#8221;f:\Program Files\Subversion\bin\svnserve.exe\&#8221; –service -r F:\SVN&#8221; displayname= &#8220;SVN Service&#8221; depend= Tcpip start= auto</span><br />
这个命令是不是有点长?其实很容易理解,sc是Windows自带的系统服务注册工具,微软支持中心提供了详细的说明,这里我就不再复述了,参数binpath= &#8220;\&#8221;d:\subversion\bin\svnserve.exe\&#8221; &#8211;service -r F:\SVN&#8221;和我们前面手动启动SVN服务器的命令很像吧?只是把-d改成了&#8211;service,这不难理解,因为现在是服务嘛。好了,现在已经大功告成了,重起一下试试吧。<br />
PS:如果想从系统服务里删除刚才注册的SVN服务可以使用sc delete SVN命令。</p>
<p><strong>四、启动subversion服务两种方式启动:</strong></p>
<p>(1).以Dos的命令行方式运行:svnserve -d -r e:\svnroot\默认端口是3690,如果不幸这个端口被别的程序暂用，可以通过选项 &#8211;listem &#8211;port=绑定端口. 我的电脑端口因为没有被别的程序占用，所以输入上面的svnserve -d -r e:\svnroot就可以.</p>
<p>(2)subversion服务:默认情况下载window service中是没有的，必须通过svnservice -install -d -r  e:\svnroot\projects，(svnservice必须和svnserve在同一个目录下)(在后面我单独给介绍，我们先以第一种方式先运行程序) 再用net start svnservice来将其作为服务运行，建议打开控制面板找到SVNService，将其启动类型设置为自动。这样服务器的配置就架构好了。</p>
<p><strong>五、你可以安装TortoiseSVN程序，现在可以用客户端来访问刚刚配置好的服务器了，在IE窗口中输入下列的URL格式:  svn://IP地址/Repository名,  在这里是: svn://127.0.0.1/projects.</strong></p>
<p>可以进行一些客户端的简单日常操作:</p>
<p>要取得当前的服务器的最新版本文件,可以使用SVN updated.</p>
<p>要将修改的文件更新到服务器，选择SVN submit 即可(谨慎的话先更新到最新版本后再提交).</p>
<p>遇到的第一个问题就是:</p>
<p>svnserve.conf:12: Option expected，它的解决方法如下:</p>
<p>经常有新手配置基于svnserve的subversion服务器后，在客户端访问subversion版本库时出现这个错误： svnserve.conf:12: Option expected 为什么会出现这个错误呢，就是因为subversion读取配置文件svnserve.conf时，无法识别有前置空格的配置文件，</p>
<p>如</p>
<p>### This file controls the configuration of the svnserve daemon, if you</p>
<p>### use it to allow access to this repository. (If you only allow</p>
<p>### access through http: and/or file: URLs, then this file is</p>
<p>### irrelevant.)</p>
<p>### Visit http://subversion.tigris.org/ for more information.</p>
<p>[general]</p>
<p>### These options control access to the repository for unauthenticated</p>
<p>### and authenticated users.  Valid values are &#8220;write&#8221;, &#8220;read&#8221;,</p>
<p>### and &#8220;none&#8221;.  The sample settings below are the defaults.</p>
<p>anon-access = read</p>
<p>auth-access = write</p>
<p>像上面的配置文件中，anon-access是顶行的，没问题，而auth-access就存在前置空格，会导致这个错误。要避免出现这个错误，应该在去掉这些行前的#时，也要顺手去掉前面的空格,所以问题就解决了.</p>
<p>遇到的第二个问题是:启动服务的方式，我们在之前使用的是第一个启动方式，我觉得有点麻烦，就是一直都得开一个Dos窗口，这样不方便工作，所以就想到用别的办法来替换了.</p>
<p>SVNService(将svn作为windows服务运行的工具) 将你们下载的第三个软件如SVNServices.rar解压后,把SVNServices.exe放在subversion的bin目录下面,我的是在C:\Program Files\Subversion\bin. SVNService的指令如下:</p>
<p>Usage instructions:</p>
<p>SVNService -?                               to display this list</p>
<p>SVNService -install &lt;svnserve parameters&gt;   to install the service</p>
<p>SVNService -setup      to change command line parameters for svnserve</p>
<p>SVNService -remove                          to remove the service</p>
<p>SVNService -debug                           to run as a console app for debugging</p>
<p>例如, 你所有项目都在e:\svnroot下，只介绍下面两个命令的用法: 安装时用  SVNService -install -d -r e:\svnroot 更改时用  SVNService -setup -d -r e:\otherplace\svnroot 再用net start SVNService 来将其作为服务运行，建议打开控制面板找到SVNService，将其启动类型设置为自动。这样服务器的配置就架构好了.</p>
<p><strong>六、配置用户和权限</strong></p>
<p>用文本编辑器打开E:\svn\repos1\conf目录，修改svnserve.conf：</p>
<p>&nbsp;</p>
<p>将：<br />
<span style="color: #ff0000;"># password-db = passwd</span></p>
<p>改为：<br />
<span style="color: #ff0000;">password-db = passwd</span></p>
<p>即去掉前面的 # 注释符，注意前面不能有空格。</p>
<p>然后修改同目录的passwd文件，增加一个帐号：</p>
<p>将：</p>
<p><span style="color: #ff0000;">[users]</span><br />
<span style="color: #ff0000;"># harry = harryssecret</span><br />
<span style="color: #ff0000;"># sally = sallyssecret</span></p>
<p>增加帐号：<br />
<span style="color: #ff0000;">[users]</span><br />
<span style="color: #ff0000;">#harry = harryssecret</span><br />
<span style="color: #ff0000;">#sally = sallyssecret</span><br />
<span style="color: #ff0000;">test = test</span></p>
<p><strong>七、初始化导入</strong></p>
<p>下面就是将我们的数据（项目）导入到这个版本库，以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来，甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。</p>
<p>比如，我在 d:\wwwroot 下有个 guestbook 文件夹，里面存放的是我编写的留言簿程序。在此文件夹上“右键 -&gt; TortoiseSVN -&gt; Import&#8230;” ，在弹出对话框的“URL of repository”输入“svn://localhost/repos1/guestbook”。在“Import message”输入“导入整个留言簿”作为注释。<br />
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 guestbook 中的内容全部导入到了 svn://localhost/svn/repos1/guestbook 。</p>
<p>我们看到在 e:\svn\repos1 没有任何变化，连个 guestbook 文件夹都没有建立，唯一的变化就是e:\svn\repos1容量变大了。实际上我们源guestbook中的内容已经导入 repos1 版本库了，源 guestbook 文件夹可以删除了。</p>
<p>需要注意的是，这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上进行。例如运行svnserve的主机的IP是192.168.1.12，则URL部分输入的内容就是“svn://192.168.1.12” 。</p>
<p><strong>八、基本操作流程</strong></p>
<p>1、取出（check out）</p>
<p>取出版本库到一个工作拷贝：</p>
<p>来到任意空目录下，比如在f分区建立一个空文件夹 f:\work 。“右键 -&gt; SVN Checkout”。在“URL of repository”中输入“svn://localhost/svn/repos1/guestbook”，这样我们就得到了一份 guestbook 中内容的工作拷贝。</p>
<p>2、存入（check in）/提交（commit）</p>
<p>在工作拷贝中作出修改并提交：</p>
<p>在 guestbook 工作拷贝中随便打开一个文件，作出修改，然后“右键 -&gt; SVN Commit&#8230; ”。这样我们就把修改提交到了版本库，版本库根据情况存储我们提交的数据。</p>
<p>在修改过的文件上“右键 -&gt; TortoiseSVN -&gt; Show Log” ，可以看到对这个文件所有的提交。在不同的 revision 条目上“右键 -&gt; Compare with working copy”，我们可以比较工作拷贝的文件和所选 revision 版本的区别。</p>
<p><span style="color: #ff0000;"><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;Visual SVN Server作为服务器快速搭建方法&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</strong></span></p>
<p>1。下载VisualSVN 作为SVN服务器，安装</p>
<p>2. 依然使用TortoiseSVN 作为客户端程序，安装好重启</p>
<p>3. 安装VisualSVN后 运行VisualSVN Server ,选择Repositories,右键-Create New Repositories ，输入RepositoryName点击OK</p>
<p>4  在VisualSVN Server 右键User ，创建一个新用户</p>
<p>5  在刚建立好的Repositories上右键-Properities-Security选项卡-添加刚建立的用户，权限为Read/Write</p>
<p>6  在刚建立好的Repositories上右键-Browse就可以根据地址进行浏览服务器内容了</p>
<p><strong><span style="color: #ff0000;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;服务器搭建完毕&#8211;,下面是客户端的建立&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></strong></p>
<p>7 安装好TortoiesSVN后，建立空文件夹（D:\SVNRoot）在该文件夹右键-SVN Checkout，点击OK</p>
<p>8 现在可以看到SVNRoot文件夹内有了初始的branches、tags、trunk和.svn文件夹，但是我们的项目文件怎样加入？且下步</p>
<p><span style="color: #ff0000;"><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-客户端搭建完毕-下面是客户端文件对服务器端文件的基本操作&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</strong></span></p>
<p>9  将项目文件（夹）复制到D:\SVNRoot内，比如D:\SVNRoot\Project文件夹，现在该文件夹显示为问号，说明该文件夹和SVN服务器上不同步</p>
<p>10  右键Project文件夹，ToritoiesSVN-Add-点击OK,提交到服务器</p>
<p>11 当版本发生变化时，需要下载最新某个文件，在文件上右键-ToritoiesSVN-Update to reversion，即获取服务器最新版本的该文件，也可通过Show Log查看修改记录</p>
<p>12 当本地某个文件修改后，需要提交到服务器，则在该文件上点击右键 SVN Commit,即将本地最新版本同步到服务器，再通知团队其他人员从服务器更新该文件为最新版本。</p>
<p>=================================================</p>
<p><strong><span style="color: #ff0000;">svn更改用户名方法： </span></strong><br />
<strong><span style="color: #ff0000;">把 C:/Documents and Settings/cable（user）/Application Data/Subversion/auth/svn.simple 文件下的文件删除，然后在更新过提交svn代码时，可以重新输入用户名和密码.</span></strong></p>
<p>=================================================</p>
<p>&nbsp;</p>
<p>Subversion 服务器程序：<br />
本地下载：<a href="http://www.mudbest.com/973.action/setup-subversion-1-7-4" rel="attachment wp-att-974">Setup-Subversion-1.7.4</a></p>
<p>TortoiseSVN 客户端程序<br />
本地下载：<a href="http://www.mudbest.com/973.action/setup-subversion-1-7-4" rel="attachment wp-att-974">TortoiseSVN-1.7.6.22632-win32-svn-1.7.4</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
