<?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>爱周末 &#187; svn</title>
	<atom:link href="http://zhoumo123.cn/tag/svn/feed" rel="self" type="application/rss+xml" />
	<link>http://zhoumo123.cn</link>
	<description>知识分享，共同进步。zhoumo123.cn</description>
	<lastBuildDate>Thu, 07 Nov 2019 05:53:49 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0.1</generator>
	<item>
		<title>linux svn服务器部署linux svn备份与恢复</title>
		<link>http://zhoumo123.cn/linux/2405.html</link>
		<comments>http://zhoumo123.cn/linux/2405.html#comments</comments>
		<pubDate>Sat, 10 Jan 2015 14:40:29 +0000</pubDate>
		<dc:creator><![CDATA[zhangc]]></dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://zhoumo123.cn/?p=2405</guid>
		<description><![CDATA[一、linux svn服务器部署 1、安装svn [root@yang~]#yum install -y subversion [root@yang~]#svnserve&#8211;version svnserve,version 1.6.11 (r934486) 2、创建SVN版本库 [root@yang~]# mkdir /data/svn [root@yang~]# svnadmin create /data/svn/project [root@yangproject]# ls /data/svn/project/ conf db format hooks locks README.t ...  <a href="http://zhoumo123.cn/linux/2405.html">  阅读全文 </a>]]></description>
				<content:encoded><![CDATA[<p><strong>一、linux svn服务器部署</strong></p>
<p><strong>1、安装svn</strong><br />
[root@yang~]#yum install -y subversion<br />
[root@yang~]#svnserve&#8211;version<br />
svnserve,version 1.6.11 (r934486)</p>
<p><strong>2、创建SVN版本库</strong><br />
[root@yang~]# mkdir /data/svn<br />
[root@yang~]# svnadmin create /data/svn/project<br />
[root@yangproject]# ls /data/svn/project/<br />
conf db format hooks locks README.txt</p>
<p><strong>3、配置SVN</strong><br />
[root@yangproject]# cd /data/svn/project/conf/<br />
[root@yangconf]# ls<br />
authz passwd svnserve.conf</p>
<p><strong>文件说明：</strong><br />
1）svnserve.conf： svn服务配置文件下。<br />
2）passwd： 用户名密码文件。<br />
3）authz： svn权限配置文件。</p>
<p><strong>svnserve.conf文件</strong><br />
<strong> 该文件配置项分为以下5项：</strong><br />
anon-access： 控制非鉴权用户访问版本库的权限。<br />
auth-access： 控制鉴权用户访问版本库的权限。<br />
password-db： 指定用户名口令文件名。<br />
authz-db： 指定权限配置文件名，通过该文件可以实现以路径为基础的访问控制。<br />
realm： 指定版本库的认证域，即在登录时提示的认证域名称。若两个版本库的认证域相同，建议使用相同的用户名口令数据文件</p>
<p><strong>配置如下：</strong><br />
[root@yangconf]# grep -E &#8220;anon-access =|auth-access =|password-db =|authz-db =|realm=&#8221; svnserve.conf<br />
anon-access = none<br />
auth-access = write<br />
password-db = passwd<br />
authz-db = authz<br />
realm = /data/svn/project</p>
<p><strong>passwd文件</strong><br />
作用是配置用户名和密码<br />
[root@yangconf]# cat passwd<br />
[users]<br />
yangyun= yangyunpasswd<br />
test = testpasswd</p>
<p><strong>authz文件</strong><br />
配置用户访问权限<br />
[root@yangconf]# cat authz |grep -v &#8216;#&#8217;<br />
[aliases]<br />
[groups]<br />
project_w=yangyun<br />
project_r=test<br />
[/]<br />
project_w=rw<br />
project_r=r</p>
<p><strong>4、启动svn服务</strong><br />
[root@yangconf]# svnserve -d -r /data/svn</p>
<p><strong>5、初始化svn数据</strong><br />
[root@yangdjango]# svn import mysite file:///data/svn/project/ -m &#8216;initial import&#8217;<br />
将会拷贝目录mysite到版本库的project下<br />
[root@yangdjango]# svn list file:///data/svn/project<br />
manage.py<br />
mysite/<br />
static/<br />
templates/<br />
web02/<br />
在导入之后，原来的目录树并没有转化成工作拷贝，为了开始工作，还是需要运行svn checkout导出一个工作拷贝。</p>
<p><strong>二、linux svn客户端命令操作</strong></p>
<p><strong>1、将文件checkout到本地目录</strong><br />
svn checkout path（path是服务器上的目录）<br />
简写：svn co<br />
例：<br />
svn co svn://115.28.24.178/project &#8211;username=yangyun &#8211;password=yangyunpasswd<br />
#指定版本的文件<br />
svn co svn://115.28.24.178/project &#8211;username=yangyun &#8211;password=yangyunpasswd -r 5</p>
<p><strong>2、往本地版本库中添加新的文件</strong><br />
svn add file #此命令得在checkout出来的路径里才能操作<br />
例如：<br />
cp /root/123.txt./<br />
svn add 123.txt #把123.txt加入到本地库中<br />
A 123.txt</p>
<p><strong>3、将改动的文件提交到版本库</strong><br />
svn commit -m &#8220;LogMessage&#8221; [-N] [&#8211;no-unlock] PATH(如果选择了保锁，就使用&#8211;no-unlock开关)<br />
简写：svn ci<br />
例：<br />
svn commit 123.txt -m &#8216;add 123.txt&#8217; #只提交123.txt<br />
svn commit -m &#8216;add 123.txt&#8217; #默认提交当前目录下的所以文件<br />
svn commit *.txt -m &#8216;add 123.txt&#8217; #也可以正则匹配文件提交</p>
<p><strong>4、加锁/解锁</strong><br />
svn lock -m &#8220;LockMessage&#8221; [&#8211;force] PATH<br />
例如：<br />
svn lock -m &#8220;lock test file&#8221; test.php<br />
svn unlock PATH</p>
<p><strong>5、更新到某个版本</strong><br />
svn update -r m path<br />
例如：<br />
svn update如果后面没有目录，默认将当前目录以及子目录下的所有文件都更新到最新版本。<br />
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200<br />
svn update test.php(更新，于版本库同步。如果在提交的时候提示过期的话，是因为冲突，需要先update，修改文件，然后清除svn resolved，最后再提交commit<br />
简写：svn up</p>
<p><strong>6、删除文件</strong><br />
svn delete path -m &#8220;delete test fle&#8221;<br />
例如：svn delete svn://192.168.1.1/pro/domain/test.php -m &#8220;delete testfile&#8221;<br />
或者直接svn delete test.php 然后再svn ci -m &#8216;delete testfile‘，推荐使用这种<br />
简写：svn (del, remove, rm)</p>
<p><strong>7、查看日志</strong><br />
svn log path<br />
例如：svn log test.php 显示这个文件的所有修改记录，及其版本号的变化</p>
<p><strong>8、查看文件详细信息</strong><br />
svn infopath<br />
例如：svn info test.php #可知道路径版本，时间，提交者等信息</p>
<p><strong>9、比较差异</strong><br />
svn diff path(将修改的文件与基础版本比较)<br />
例如：svn diff test.php<br />
svn diff -r m:n path(对版本m和版本n比较差异)<br />
例如：svn diff -r 200:201 test.php #可知道修改了哪些内容<br />
简写：svn di</p>
<p><strong>10、将两个版本之间的差异合并到当前文件</strong><br />
svn merge -r m:n path<br />
例如：svn merge -r 200:205 test.php（将版本200与205之间的差异合并到当前文件，但是一般都会产生冲突，需要处理一下）</p>
<p><strong>11、SVN 帮助</strong><br />
svn help<br />
svn help ci</p>
<p><strong>12、版本库下的文件和目录列表</strong><br />
svn list path #显示path目录下的所有属于版本库的文件和目录<br />
简写：svn ls</p>
<p><strong>13、创建纳入版本控制下的新目录</strong><br />
svn mkdir:创建纳入版本控制下的新目录。<br />
用法:<br />
svn mkdirPATH #效果等同：mkdir test;svn add test;</p>
<p><strong>14、恢复本地修改</strong><br />
svn revert:恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。<br />
revert:<br />
用法: revert PATH&#8230;<br />
注意: 本子命令不会存取网络，并且会解除冲突的状况。但是它不会恢复被删除的目录</p>
<p><strong>三、linux svn备份与恢复</strong></p>
<p><strong>1、全量备份：</strong><br />
curr=`svnlook youngest /data/svn/project/` #此处是查询工程目录的最新版本<br />
svnadmin dump /data/svn/repos/test &#8211;revision 0:$cur &#8211;incremental &gt;0-&#8220;$curr&#8221;svn.bak<br />
echo $curr &gt;/tmp/svn_revision</p>
<p><strong>2、增量备份</strong><br />
old=`cat /tmp/svn_revision`<br />
new=`svnlook youngest /data/svn/project/`<br />
svnadmin dump /data/svn/repos/test &#8211;revision $old:$new &#8211;incremental &gt;$old&#8221;-&#8220;$new&#8221;svn.bak</p>
<p><strong>3、svn恢复</strong><br />
恢复顺序从低版本逐个恢复到高版本；即，先恢复最近的一次完整备份，然后恢复紧挨着这个文件的增量备份。<br />
cd /data/svn/repos/<br />
svnadmin create test2<br />
svnadmin load test2 &lt; /data/svnback/20110719/0-1112svn.bak<br />
svnadmin load test2 &lt; /data/svnback/20110719/1113-1120svn.bak</p>
<p>摘自：http://yangrong.blog.51cto.com/6945369/1600896</p>
]]></content:encoded>
			<wfw:commentRss>http://zhoumo123.cn/linux/2405.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
