﻿<?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-思想比知识更重要 成长比成功更重要-随笔分类-PM</title><link>http://www.blogjava.net/renyangok/category/28172.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 24 Dec 2007 23:13:20 GMT</lastBuildDate><pubDate>Mon, 24 Dec 2007 23:13:20 GMT</pubDate><ttl>60</ttl><item><title>subversion学习笔记</title><link>http://www.blogjava.net/renyangok/archive/2007/12/17/168293.html</link><dc:creator>保尔任</dc:creator><author>保尔任</author><pubDate>Mon, 17 Dec 2007 10:23:00 GMT</pubDate><guid>http://www.blogjava.net/renyangok/archive/2007/12/17/168293.html</guid><wfw:comment>http://www.blogjava.net/renyangok/comments/168293.html</wfw:comment><comments>http://www.blogjava.net/renyangok/archive/2007/12/17/168293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/renyangok/comments/commentRss/168293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/renyangok/services/trackbacks/168293.html</trackback:ping><description><![CDATA[1, svn property设置：<br />
设置svn忽略某些文件：<br />
svn propedit|pe svn:ignore ~/work/src<br />
在打开的编辑器里面输入要忽略的文件格式(一种格式一行)：<br />
*.pyc<br />
*.swo<br />
<br />
设置svn使某文件可执行：<br />
svn propset|ps svn:executable ON ~/work/test.py<br />
<br />
2，svn merge<br />
svn merge https://nordicbet.dev.exoweb.net/svn/trunk/src@12159 https://nordicbet.dev.exoweb.net/svn/branches/etch@12163 <br />
把从src@12159到etch@12163的改变都输出到当前工作目录。（src和etch的顺序不能颠倒，都则是相反的改变）<br />
<br />
-------------------修订版本关键字解释：转自http://kstack.blogbus.com/logs/3080410.html--------------------<br />
<p><font color="#990033" size="4">1. 概念</font><br />
-------------</p>
<p>HEAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The lastest revision in the repository.<br />
BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The &#8220;pristine&#8221; revision of an item in a working copy.<br />
COMMITTED - The last revision in which an item changed before (or at) BASE.<br />
PREV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The revision just before the last revision in which an item changed. (Technically, COMMITTED - 1.)</p>
<p>HEAD - 目前repository上最新的revision，也许个人在操作wc的时候，有其他的成员commit成果，那么HEAD会变化的。</p>
<p>BASE - 对于一个item，BASE指我们check out的那个revision。</p>
<p>COMMITTED - 其必然 &lt;= BASE，对于一个item，COMMITTED是最后修改时的那个revision。</p>
<p>PREV - (COMMITTED - 1)</p>
<p>上面的解释看不明白就是正常，请继续阅读&#8230;&#8230;</p>
<p><br />
<font color="#990033" size="4">2. 从item &amp; revision引发的讨论</font><br />
-------------</p>
<p>item，
就是SVN中被管理的东东（包括folder、file）。而每次commit都会产生一个snapshot，并记录一个revision。对于
revision，it's not valid to talk about &#8220;revision 5 of foo.c&#8221;. Instead,
one would say &#8220;foo.c as it appears in revision 5&#8221;.</p>
<p>例如：<br />
有文件 foo.c、bar.c</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26<br />
-----|----...----|-------...------|-----------|------------|--------- trunk<br />
&nbsp; M foo.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M foo.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M bar.c&nbsp;&nbsp;&nbsp;&nbsp; M bar.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; others ...<br />
&nbsp; <br />
我们在r24之前，都没有对bar.c进行改动，因此，bar.c在 1 ~ 23 里面的内容是一样的。而在r24, r25，foo.c 的内容与其在 r23 的时候没有区别。</p>
<p>这时，我们check out [trunk@24]。并在trunk目录下<br />
svn st -v<br />
则可以看到<br />
---------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BASE&nbsp;&nbsp; COMMITTED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 这一行SVN不会显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24&nbsp;24&nbsp;. <br />
&nbsp;24&nbsp;17&nbsp;foo.c<br />
&nbsp;24&nbsp;24&nbsp;bar.c<br />
&nbsp;...<br />
&nbsp;<br />
其中foo.c与bar.c的COMMITTED是不一样的。</p>
<p>这时，我们进行r25的行为，修改了bar.c，并commit了。并<br />
svn st -v<br />
可以看到<br />
---------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BASE&nbsp;&nbsp; COMMITTED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 这一行SVN不会显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24&nbsp;24&nbsp;.<br />
&nbsp;24&nbsp;17&nbsp;foo.c<br />
&nbsp;25&nbsp;25&nbsp;bar.c<br />
&nbsp;...</p>
<p>这说明了此时bar.c的变化情况。为何foo.c的BASE还是24呢？因为此时的foo.c是r24那时的foo.c。ok，我们<br />
svn up<br />
然后<br />
svn st -v<br />
---------------------------------------------<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BASE&nbsp;&nbsp; COMMITTED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 这一行SVN不会显示<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;25&nbsp;.<br />
&nbsp;25&nbsp;17&nbsp;foo.c<br />
&nbsp;25&nbsp;25&nbsp;bar.c<br />
&nbsp;...</p>
<p>Yeah~，一切ok。</p>
<p><br />
说完了最麻烦的BASE和COMMITTED。<br />
PREV没什么好说的。而HEAD，如果r26为最后一个提交到repository的改动，那么r26就是HEAD罗～</p>
<p><br />
<font color="#990033" size="4">3. 总结</font><br />
-------------</p>
<p>感谢阅读到这里，打字很辛苦。来，给点掌声。:o)<br />
这里的理解不一定正确，欢迎讨论。</p>
<br />
<br />
<img src ="http://www.blogjava.net/renyangok/aggbug/168293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/renyangok/" target="_blank">保尔任</a> 2007-12-17 18:23 <a href="http://www.blogjava.net/renyangok/archive/2007/12/17/168293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>