<?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://www.ooso.net/tag/svn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ooso.net</link>
	<description>Linux + Apache + Mysql + Php + Flash</description>
	<lastBuildDate>Thu, 19 Jan 2012 01:21:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>git svn实战</title>
		<link>http://www.ooso.net/archives/576</link>
		<comments>http://www.ooso.net/archives/576#comments</comments>
		<pubDate>Mon, 17 Jan 2011 07:26:36 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[code-prettify]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git-svn]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=576</guid>
		<description><![CDATA[我之前写了几个wordpress插件，比如inline-javascript, code-prettify。这些插件都托管在wordpress.org提供的svn服务器上，但是我实在太喜欢在git下活动了，因此动了点心思，想把插件代码传到github上，开发完之后利用git-svn传到wordpress的svn服务上。
照着这个思路，捋起袖子就开干了。
用git-svn抓取插件代码
wordpress的插件svn库大且缓慢，如果直接用git-svn去clone代码，一定会慢死，所以我按照以前的笔记，用git从大型svn快速clone代码。

				<span class="readmore"><a href="http://www.ooso.net/archives/576" title="git svn实战">阅读全文（950字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>我之前写了几个wordpress插件，比如<a href="http://www.ooso.net/inline-js">inline-javascript</a>, <a href="http://www.ooso.net/code-prettify">code-prettify</a>。这些插件都托管在wordpress.org提供的svn服务器上，但是我实在太喜欢在git下活动了，因此动了点心思，想把插件代码传到github上，开发完之后利用<a href="/tag/git-svn">git-svn</a>传到wordpress的svn服务上。</p>
<p>照着这个思路，捋起袖子就开干了。</p>
<h2>用git-svn抓取插件代码</h2>
<p>wordpress的插件svn库大且缓慢，如果直接用git-svn去clone代码，一定会慢死，所以我按照以前的笔记，<a href="http://www.ooso.net/archives/523">用git从大型svn快速clone代码</a>。</p>
<p>以code-prettify插件为例，首先需要读取这个插件创建时的版本号</p>
<pre>
<code>svn log http://svn.wp-plugins.org/code-prettify|tail -4|head -1</code>
</pre>
<p>得到了如下信息，获得一个版本号 318479</p>
<pre><code>r318479 | plugin-master | 2010-12-03 20:12:29 +0800 (五, 03 12 2010) | 1 line</code></pre>
<p>开始clone代码</p>
<pre><code>git svn clone -s --prefix=svn/ -r318479:HEAD http://svn.wp-plugins.org/code-prettify</code></pre>
<h2>设置git仓库</h2>
<p>首先把代码传了一份到github: <a href="https://github.com/volca/code-prettify">https://github.com/volca/code-prettify</a></p>
<p>然后操作本地git仓库</p>
<pre>
<code>git branch -m svn
git remote add origin git@github.com:volca/code-prettify.git
git checkout master</code>
</pre>
<p>本地svn分支对应svn的远程仓库，本地master分支对应github的远程仓库</p>
<h2>Happy time</h2>
<p>现在可以按照平常的习惯在git下更改代码，然后用git push到github上。</p>
<p>如果需要更新代码到svn上，按这个流程操作就可以了：</p>
<pre>
<code>git checkout svn
git merge master
git svn dcommit</code>
</pre>
<p>如果需要发布wordpress插件的新版本，这个在svn里就是一个打tag的过程，用git-svn操作非常简单，下面的例子表示发布code-prettify插件的0.3版本：</p>
<pre>
<code>git svn tag 0.3
</code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/576/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用git从svn里clone最后几个版本</title>
		<link>http://www.ooso.net/archives/523</link>
		<comments>http://www.ooso.net/archives/523#comments</comments>
		<pubDate>Sun, 13 Dec 2009 02:44:03 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git-svn]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=523</guid>
		<description><![CDATA[一般情况下git svn clone这个操作会从第一个版本开始同步，如果版本号已经到了好几万（或更高？），这个操作会相当的费时。
当时还想着能不能hack一下git-svn脚本，其实后来看看文档，clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码，因此，更好的步骤应该是这样：



				<span class="readmore"><a href="http://www.ooso.net/archives/523" title="用git从svn里clone最后几个版本">阅读全文（302字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>一般情况下<a href="http://www.ooso.net/archives/520#comment-29022">git svn clone这个操作</a>会从第一个版本开始同步，如果版本号已经到了好几万（或更高？），这个操作会相当的费时。</p>
<p>当时还想着能不能hack一下git-svn脚本，其实后来看看文档，clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码，因此，更好的步骤应该是这样：</p>
<ol>
<ul>
<li>svn info http://your-svn, 并记录最后的版本号，假设是260</li>
<li>假设要检出最后10个版本，做个简单的减法： 260 &#8211; 10 = 250</li>
<li>开始clone操作了
<pre><code>git svn clone -r250:HEAD --prefix=svn/ http://your-svn</code></pre>
</li>
</ul>
</ol>
<p>按这个办法，clone的时间的确是减少了许多。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/523/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Git-svn on cygwin</title>
		<link>http://www.ooso.net/archives/520</link>
		<comments>http://www.ooso.net/archives/520#comments</comments>
		<pubDate>Thu, 09 Apr 2009 22:55:21 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[common]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git-svn]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=520</guid>
		<description><![CDATA[开始试用最近比较红的git，我看中的是它的本地版本库功能，即便网络比较烂的时候，也可以在本地提交，等到了合适的时候一并传上去。由于以前的代码版本控制使用的是svn，所以我用git-svn过渡一下。
目前在windows下，最好的git客户端恐怕就是装一个cygwin。鼓捣了一个时辰，整理好一些可用的配置文件，陈列一下以备下次使用：
~/.bash_profile
偶尔还会使用svn验证一下check in的情况，刚转过来不放心啊，下面的配置是为了防止svn命令行乱码。命令行git-svn在/usr/sbin/git-core/路径下，是一个perl脚本，为了方便，我把这个路径加入了PATH环境变量。

				<span class="readmore"><a href="http://www.ooso.net/archives/520" title="Git-svn on cygwin">阅读全文（828字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>开始试用最近比较红的<a href="/?tag=git">git</a>，我看中的是它的本地版本库功能，即便网络比较烂的时候，也可以在本地提交，等到了合适的时候一并传上去。由于以前的代码版本控制使用的是svn，所以我用git-svn过渡一下。</p>
<p>目前在windows下，最好的git客户端恐怕就是装一个cygwin。鼓捣了一个时辰，整理好一些可用的配置文件，陈列一下以备下次使用：</p>
<h2>~/.bash_profile</h2>
<p>偶尔还会使用svn验证一下check in的情况，刚转过来不放心啊，下面的配置是为了防止svn命令行乱码。命令行git-svn在/usr/sbin/git-core/路径下，是一个perl脚本，为了方便，我把这个路径加入了PATH环境变量。</p>
<pre><code>export PATH=$PATH:/usr/sbin/git-core/
export SVN_EDITOR=vim
export LC_ALL=en_US.UTF-16
export LC_CTYPE=en_US.UTF-16
export LANG=en_US.UTF-16
export XMODIFIERS=@im=Chinput3
stty cs8 -istrip
stty pass8
export LESSCHARSET=latin1</code></pre>
<h2>~/.inputrc</h2>
<p>去掉注释即可</p>
<pre><code>set meta-flag on
set convert-meta off
set input-meta on
set output-meta on</code></pre>
<h2>~/.gitconfig</h2>
<pre><code>[user]
name = muhaha
email = aa@bb.cc

[color]
diff = auto
status = auto
branch = auto

[alias]
st = status
rb = svn rebase
ci = commit -a
co = checkout</code></pre>
<h2>常用操作</h2>
<table border="1">
<tr>
<td>clone一个svn</td>
<td>git svn clone -s svn://xxx.xxx.com</td>
</tr>
<tr>
<td>类svn up操作？</td>
<td>git svn rebase</td>
</tr>
<tr>
<td>添加文件</td>
<td>git add xfile</td>
</tr>
<tr>
<td>check in</td>
<td>git ci</td>
</tr>
<tr>
<td>往svn库提交</td>
<td>git svn dcommit</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/520/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

