<?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>Marshal&#039;s Blog &#187; subversion</title>
	<atom:link href="http://marshal.easymorse.com/archives/tag/subversion/feed" rel="self" type="application/rss+xml" />
	<link>http://marshal.easymorse.com</link>
	<description>It&#039;s swap of marshal&#039;s memory.</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:03:45 +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>svn命令取消修改，还原版本</title>
		<link>http://marshal.easymorse.com/archives/4148?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=svn%25e5%2591%25bd%25e4%25bb%25a4%25e5%258f%2596%25e6%25b6%2588%25e4%25bf%25ae%25e6%2594%25b9%25ef%25bc%258c%25e8%25bf%2598%25e5%258e%259f%25e7%2589%2588%25e6%259c%25ac</link>
		<comments>http://marshal.easymorse.com/archives/4148#comments</comments>
		<pubDate>Fri, 22 Apr 2011 03:52:13 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/4148</guid>
		<description><![CDATA[svn可以还原到以前版本，一般来说有两种情况： 修改，但尚未提交，还原是取消当前修改，还原到主干的上一个版本 修改并提交了，需要还原到之前的指定版本 这里介绍的是第一种情况。其实在eclipse和windows环境下都有图形工具可以很容易的实现。以至于我都记不住命令。 要感谢xcode糟糕的svn支持，帮助我们不在命令行方面能力退化。 我在xcode环境下有关svn的一切操作都使用命令行。 svn revert &#8211;recursive . 该命令可在当前目录下，递归还原版本到主干的最后一个版本。]]></description>
			<content:encoded><![CDATA[<p>svn可以还原到以前版本，一般来说有两种情况：</p>
<ol>
<li>修改，但尚未提交，还原是取消当前修改，还原到主干的上一个版本</li>
<li>修改并提交了，需要还原到之前的指定版本</li>
</ol>
<p>这里介绍的是第一种情况。其实在eclipse和windows环境下都有图形工具可以很容易的实现。以至于我都记不住命令。</p>
<p>要感谢xcode糟糕的svn支持，帮助我们不在命令行方面能力退化。</p>
<p>我在xcode环境下有关svn的一切操作都使用命令行。</p>
<blockquote><p>svn revert &#8211;recursive .</p>
</blockquote>
<p>该命令可在当前目录下，递归还原版本到主干的最后一个版本。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/4148/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode项目使用SVN需要的设置</title>
		<link>http://marshal.easymorse.com/archives/4032?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xcode%25e9%25a1%25b9%25e7%259b%25ae%25e4%25bd%25bf%25e7%2594%25a8svn%25e9%259c%2580%25e8%25a6%2581%25e7%259a%2584%25e8%25ae%25be%25e7%25bd%25ae</link>
		<comments>http://marshal.easymorse.com/archives/4032#comments</comments>
		<pubDate>Thu, 17 Feb 2011 06:57:16 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ios xcode]]></category>
		<category><![CDATA[ios xcode subversion]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/4032</guid>
		<description><![CDATA[参考了：http://iphonedevelopertips.com/xcode/how-to-fix-subversion-in-xcode-3.html 需要在~/.subversion/config文件中设置一下。 找到： # global-ignores 在下面添加： global-ignores = build *~.nib *.so *.pbxuser *.mode* *.perspective* 因为build目录是不需要提交的，是构建出来的文件。另外，还有后缀是mode1v3和pbxuser等文件，这是Xcode用户文件。另外一些也是临时文件或者构建出来的文件。 另外，需要打开这行的注释： # enable-auto-props = yes 还有，在： [auto-props] 下面添加一些文件后缀的属性： *.mode* = svn:mime-type=text/X-xcode *.pbxuser = svn:mime-type=text/X-xcode *.perspective* = svn:mime-type=text/X-xcode *.pbxproj = svn:mime-type=text/X-xcode]]></description>
			<content:encoded><![CDATA[<p>参考了：<a title="http://iphonedevelopertips.com/xcode/how-to-fix-subversion-in-xcode-3.html" href="http://iphonedevelopertips.com/xcode/how-to-fix-subversion-in-xcode-3.html">http://iphonedevelopertips.com/xcode/how-to-fix-subversion-in-xcode-3.html</a></p>
<p>需要在~/.subversion/config文件中设置一下。</p>
<p>找到：</p>
<blockquote><p># global-ignores</p>
</blockquote>
<p>在下面添加：</p>
<blockquote><p>global-ignores = build *~.nib *.so *.pbxuser *.mode* *.perspective*</p>
</blockquote>
<p>因为build目录是不需要提交的，是构建出来的文件。另外，还有后缀是mode1v3和pbxuser等文件，这是Xcode用户文件。另外一些也是临时文件或者构建出来的文件。</p>
<p>  <span id="more-4032"></span>
<p>另外，需要打开这行的注释：</p>
<blockquote><p># enable-auto-props = yes</p>
</blockquote>
<p>还有，在：</p>
<blockquote><p>[auto-props]</p>
</blockquote>
<p>下面添加一些文件后缀的属性：</p>
<blockquote><p>*.mode* = svn:mime-type=text/X-xcode     <br />*.pbxuser = svn:mime-type=text/X-xcode      <br />*.perspective* = svn:mime-type=text/X-xcode      <br />*.pbxproj = svn:mime-type=text/X-xcode</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/4032/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xcode中使用SVN需要注意的问题</title>
		<link>http://marshal.easymorse.com/archives/4030?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xcode%25e4%25b8%25ad%25e4%25bd%25bf%25e7%2594%25a8svn%25e9%259c%2580%25e8%25a6%2581%25e6%25b3%25a8%25e6%2584%258f%25e7%259a%2584%25e9%2597%25ae%25e9%25a2%2598</link>
		<comments>http://marshal.easymorse.com/archives/4030#comments</comments>
		<pubDate>Thu, 17 Feb 2011 05:43:49 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ios xcode]]></category>
		<category><![CDATA[ios xcode subversion]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/4030</guid>
		<description><![CDATA[Xcode的SVN功能，和Eclipse中的subclipse或者windows下的tortoiseSVN比较起来功能还差很多。 我是索性不用的，直接用命令行。我看有的朋友是用subclipse，其实也挺好，不过，为了使用SVN功能要单独开一个耗费资源的Eclipse。 但是，不论使用什么SVN工具，都会遇到Xcode固有的问题，即project.pbxproj文件的提交冲突问题。 project.pbxproj文件里面包含了构建过程所需的所有文件，如果你在项目目录下增加了新文件，比如没有通过Xcode，该文件就不在project.pbxproj文件中，就不会生成到app中。同理，如果你从SVN中更新到其他项目成员增加的文件，而没有更新project.pbxproj文件（或者该成员根本就没有提交这个文件），则也会出现相同的现象。 如果项目成员提交了新的project.pbxproj文件，你这边没有在项目中增加新的文件，直接svn update就可以了。我是用命令行做update的，即： svn up 这时可能会出现系统提示，因为subversion发现了local work copy和repository上的不一致。需要svn用户自己裁决，可以直接输入tf，即使用repository上版本即可，因为你没有更改project文件。即： Conflict discovered in &#8216;EuM1.xcodeproj/project.pbxproj&#8217;. Select: (p) postpone, (df) diff-full, (e) edit, &#160;&#160;&#160;&#160;&#160;&#160;&#160; (mc) mine-conflict, (tc) theirs-conflict, &#160;&#160;&#160;&#160;&#160;&#160;&#160; (s) show all options: s &#160; (e)&#160; edit&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; change merged file in an editor &#160; (df) diff-full&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; show all changes made to merged file &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Xcode的SVN功能，和Eclipse中的subclipse或者windows下的tortoiseSVN比较起来功能还差很多。</p>
<p>我是索性不用的，直接用命令行。我看有的朋友是用subclipse，其实也挺好，不过，为了使用SVN功能要单独开一个耗费资源的Eclipse。</p>
<p>但是，不论使用什么SVN工具，都会遇到Xcode固有的问题，即project.pbxproj文件的提交冲突问题。</p>
<p>project.pbxproj文件里面包含了构建过程所需的所有文件，如果你在项目目录下增加了新文件，比如没有通过Xcode，该文件就不在project.pbxproj文件中，就不会生成到app中。同理，如果你从SVN中更新到其他项目成员增加的文件，而没有更新project.pbxproj文件（或者该成员根本就没有提交这个文件），则也会出现相同的现象。</p>
<p>  <span id="more-4030"></span>
<p>如果项目成员提交了新的project.pbxproj文件，你这边没有在项目中增加新的文件，直接svn update就可以了。我是用命令行做update的，即：</p>
<blockquote><p>svn up</p>
</blockquote>
<p>这时可能会出现系统提示，因为subversion发现了local work copy和repository上的不一致。需要svn用户自己裁决，可以直接输入tf，即使用repository上版本即可，因为你没有更改project文件。即：</p>
<blockquote><p>Conflict discovered in &#8216;EuM1.xcodeproj/project.pbxproj&#8217;.     <br />Select: (p) postpone, (df) diff-full, (e) edit,      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (mc) mine-conflict, (tc) theirs-conflict,      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (s) show all options: s</p>
<p>&#160; (e)&#160; edit&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; change merged file in an editor     <br />&#160; (df) diff-full&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; show all changes made to merged file      <br />&#160; (r)&#160; resolved&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; accept merged version of file</p>
<p>&#160; (dc) display-conflict &#8211; show all conflicts (ignoring merged version)     <br />&#160; (mc) mine-conflict&#160;&#160;&#160; &#8211; accept my version for all conflicts (same)      <br />&#160; (tc) theirs-conflict&#160; &#8211; accept their version for all conflicts (same)</p>
<p>&#160; (mf) mine-full&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; accept my version of entire file (even non-conflicts)     <br />&#160; (tf) theirs-full&#160;&#160;&#160;&#160;&#160; &#8211; accept their version of entire file (same)</p>
<p>&#160; (p)&#160; postpone&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; mark the conflict to be resolved later     <br />&#160; (l)&#160; launch&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; launch external tool to resolve conflict      <br />&#160; (s)&#160; show all&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8211; show this list</p>
<p>Select: (p) postpone, (df) diff-full, (e) edit,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (mc) mine-conflict, (tc) theirs-conflict,      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (s) show all options: tf      </p>
<p>&#160;</p>
</blockquote>
<p>在这里，如果记不清楚各个选项的含义，可以输入s了解。另外，如果不确定自己是否更改了本地的project文件，可以输入dc了解本地代码和repository上的差异。</p>
<p>但是，如果你也为项目增加了新文件，这样你的本地project文件和repository上的project文件都有新的内容。我现在的做法是p，即手工解决冲突，然后再次提交，通知项目成员更新。详细介绍可参考：<a title="http://www.logicaltrinkets.com/wordpress/?p=178" href="http://www.logicaltrinkets.com/wordpress/?p=178">http://www.logicaltrinkets.com/wordpress/?p=178</a>，写的挺清楚的，英文的。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/4030/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在浏览器查看svn中代码的解决方案</title>
		<link>http://marshal.easymorse.com/archives/2436?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%259c%25a8%25e6%25b5%258f%25e8%25a7%2588%25e5%2599%25a8%25e6%259f%25a5%25e7%259c%258bsvn%25e4%25b8%25ad%25e4%25bb%25a3%25e7%25a0%2581%25e7%259a%2584%25e8%25a7%25a3%25e5%2586%25b3%25e6%2596%25b9%25e6%25a1%2588</link>
		<comments>http://marshal.easymorse.com/archives/2436#comments</comments>
		<pubDate>Mon, 29 Mar 2010 04:34:15 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2436</guid>
		<description><![CDATA[重新安装svn+apache以后，发现一个问题，比如java源代码，现在是通过浏览器下载，而不是直接在浏览器中展示了。 以前是怎么做的呢？想不起来了。文档啊文档，很重要的。现在重新想办法吧。 最简单的办法：apache强制mime类型 其实最简单的办法，是借助apache 核心模块的指令ForceType，见： http://httpd.apache.org/docs/2.2/mod/core.html#forcetype 可以强制配置mime类型，比如： &#60;Location /svn&#62; &#160;&#160;&#160; &#8230; &#160;&#160;&#160; ForceType text/plain &#60;/Location&#62; &#160; 这样就可以在浏览器看源代码文本了，但是也有副作用，比如二进制文件怎么办，比如html页面，应该在浏览器中展示而不是显示代码。 subversion hook：在提交的时候触发服务器端程序写mime类型 subversion提供了hook，钩子，可以在比如提交前执行钩子脚本。 利用这个特性，可以在提交前，比如发电子邮件，比如检查是否写log message了。 当然，也可以在提交前，改mime type，可以按照这个python脚本改写： http://pear.reversefold.com/dokuwiki/svn:pre-commit 但是，subversion不建议这样做，因为，所有hook操作，最好不再修改提交的文本，只做只读的操作。如果做写文本或者属性的操作，svn用户的local work copy，将和服务器端不一致。比如我提交一个java文件，没有设置mime type，提交到svn，将触发svn hook，比如修改为text/plain，然后提交到svn库中，这时库中的记录和该用户的work copy不一致。可能会带来很多其他不可预知的问题。 svn自带的手动设置mime类型方式 svn可以为提交的文件定义mime类型，比如这样： $ svn propset svn:mime-type image/jpeg foo.jpg property 'svn:mime-type' set on 'foo.jpg' &#160; 如果是在tortoiseSVN客户端，可以通过交互界面实现类似的功能，而且还可以递归操作： 缺点是，无法根据扩展名做区分。比如目录下有jpg，也有java文件，这个操作将所有文件都增加了text/plain mime类型。 eclipse的svn插件，subclipse也有类似功能。 svn提供的自动设置mime类型方式 在svn客户端，有个config文件，在windos xp，路径应该是： C:\Documents and Settings\user_name\Application [...]]]></description>
			<content:encoded><![CDATA[<p>重新安装svn+apache以后，发现一个问题，比如java源代码，现在是通过浏览器下载，而不是直接在浏览器中展示了。</p>
<p>以前是怎么做的呢？想不起来了。文档啊文档，很重要的。现在重新想办法吧。</p>
<h4>最简单的办法：apache强制mime类型</h4>
<p>其实最简单的办法，是借助apache 核心模块的指令<em>ForceType</em>，见：</p>
<blockquote><p><a href="http://httpd.apache.org/docs/2.2/mod/core.html#forcetype">http://httpd.apache.org/docs/2.2/mod/core.html#forcetype</a></p>
</blockquote>
<p>可以强制配置mime类型，比如：</p>
<blockquote><p>&lt;Location /svn&gt;     <br />&#160;&#160;&#160; &#8230;      <br />&#160;&#160;&#160; ForceType text/plain      <br />&lt;/Location&gt;</p>
<p>&#160;</p>
</blockquote>
<p>这样就可以在浏览器看源代码文本了，但是也有副作用，比如二进制文件怎么办，比如html页面，应该在浏览器中展示而不是显示代码。</p>
<p> <span id="more-2436"></span><br />
<h4>subversion hook：在提交的时候触发服务器端程序写mime类型</h4>
<p>subversion提供了hook，钩子，可以在比如提交前执行钩子脚本。</p>
<p>利用这个特性，可以在提交前，比如发电子邮件，比如检查是否写log message了。</p>
<p>当然，也可以在提交前，改mime type，可以按照这个python脚本改写：</p>
<blockquote><p><a href="http://pear.reversefold.com/dokuwiki/svn:pre-commit">http://pear.reversefold.com/dokuwiki/svn:pre-commit</a></p>
</blockquote>
<p>但是，subversion不建议这样做，因为，所有hook操作，最好不再修改提交的文本，只做只读的操作。如果做写文本或者属性的操作，svn用户的local work copy，将和服务器端不一致。比如我提交一个java文件，没有设置mime type，提交到svn，将触发svn hook，比如修改为text/plain，然后提交到svn库中，这时库中的记录和该用户的work copy不一致。可能会带来很多其他不可预知的问题。</p>
<h4>svn自带的手动设置mime类型方式</h4>
<p>svn可以为提交的文件定义mime类型，比如这样：</p>
<blockquote><pre>$ svn propset svn:mime-type image/jpeg foo.jpg
property 'svn:mime-type' set on 'foo.jpg'</pre>
<p>&#160;</p>
</blockquote>
<p>如果是在tortoiseSVN客户端，可以通过交互界面实现类似的功能，而且还可以递归操作：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image41.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb41.png" width="284" height="250" /></a> </p>
<p>缺点是，无法根据扩展名做区分。比如目录下有jpg，也有java文件，这个操作将所有文件都增加了text/plain mime类型。</p>
<p>eclipse的svn插件，subclipse也有类似功能。</p>
<h4>svn提供的自动设置mime类型方式</h4>
<p>在svn客户端，有个config文件，在windos xp，路径应该是：</p>
<blockquote>
<p>C:\Documents and Settings\user_name\Application Data\Subversion\config</p>
</blockquote>
<p>如果想让java代码的mime类型是text，可以这样写：</p>
<blockquote>
<p>enable-auto-props = yes </p>
<p>[auto-props]<br />
    <br />*.java=svn:mime-type=text/plain</p>
<p>&#160;</p>
</blockquote>
<p>这样，每次提交代码的时候，svn会自动将mime-type设置为text。不需要上面的手工设置了。</p>
<p>缺点是，需要维护一个config配置文件，比如很多开发人员，各种不同的环境，都需要事先做这样一个配置。</p>
<h4>希望有这样的解决方案</h4>
<p>比如，google code，用户提交上去的代码，自动就以text方式在浏览器端展示，不需要设置svn的配置文件。而且，用户可以手工设置mime type，比如有个html页面，如果设置成text/plain，则在浏览器中显示的是html源代码，如果设置为text/html，则显示的是页面的效果。</p>
<p>目前还没有找到这样的办法，估计要在apache设置方面做些工作。</p>
<blockquote>
<p><font style="background-color: #ffffff">&#160;</font></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2436/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>安装windows下64位版本的subversion</title>
		<link>http://marshal.easymorse.com/archives/2345?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%25ae%2589%25e8%25a3%2585windows%25e4%25b8%258b64%25e4%25bd%258d%25e7%2589%2588%25e6%259c%25ac%25e7%259a%2584subversion</link>
		<comments>http://marshal.easymorse.com/archives/2345#comments</comments>
		<pubDate>Wed, 17 Mar 2010 05:50:37 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2345</guid>
		<description><![CDATA[换新系统的时候没注意，因为以前都是在32位虚拟机里面开发。 结果安装的subversion在使用eclipse subclipse插件的时候报错： 报错提示64位平台不能加载32位的dll。这也可能和我用64位的java和eclipse有关。 其实，不管这个错误，也可以继续使用subclipse，因为subclipse先找jni的subversion，如果没有，它自带了java实现部分，会使用java实现继续执行svn的操作。 如果讨厌每次出现这个报错，可以： 将jni实现改为svnkit纯java实现。 我还是想用jni的实现，这样效率好一些。那么，可以通过这个链接下载64位版本： http://www.sliksvn.com/en/download 卸载32位的subversion系统，安装64位sliksvn的分发包，问题解决。]]></description>
			<content:encoded><![CDATA[<p>换新系统的时候没注意，因为以前都是在32位虚拟机里面开发。</p>
<p>结果安装的subversion在使用eclipse subclipse插件的时候报错：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image10.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb10.png" width="415" height="236" /></a> </p>
<p> <span id="more-2345"></span>
<p>报错提示64位平台不能加载32位的dll。这也可能和我用64位的java和eclipse有关。</p>
<p>其实，不管这个错误，也可以继续使用subclipse，因为subclipse先找jni的subversion，如果没有，它自带了java实现部分，会使用java实现继续执行svn的操作。</p>
<p>如果讨厌每次出现这个报错，可以：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image11.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb11.png" width="256" height="98" /></a> </p>
<p>将jni实现改为svnkit纯java实现。</p>
<p>我还是想用jni的实现，这样效率好一些。那么，可以通过这个链接下载64位版本：</p>
<blockquote><p><a href="http://www.sliksvn.com/en/download">http://www.sliksvn.com/en/download</a></p>
</blockquote>
<p>卸载32位的subversion系统，安装64位sliksvn的分发包，问题解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2345/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在ubuntu下安装websvn</title>
		<link>http://marshal.easymorse.com/archives/2282?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%259c%25a8ubuntu%25e4%25b8%258b%25e5%25ae%2589%25e8%25a3%2585websvn</link>
		<comments>http://marshal.easymorse.com/archives/2282#comments</comments>
		<pubDate>Wed, 24 Feb 2010 03:13:36 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[websvn]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2282</guid>
		<description><![CDATA[使用apache+svn的方式，可以通过浏览器访问，但是这次比如xml和java文件都要下载，而不能在浏览器中直接显示。 忘记在哪个里面修改了，还是因为svn版本升级的问题。 试试websvn，通过apt-get，虽然不是最新版本，但是安装很简单，使用也方便。 安装： sudo apt-get install websvn 访问也很简单，直接： http://ip/websvn websvn截图： 这是源代码显示的截图：]]></description>
			<content:encoded><![CDATA[<p>使用apache+svn的方式，可以通过浏览器访问，但是这次比如xml和java文件都要下载，而不能在浏览器中直接显示。</p>
<p>忘记在哪个里面修改了，还是因为svn版本升级的问题。</p>
<p>试试websvn，通过apt-get，虽然不是最新版本，但是安装很简单，使用也方便。</p>
<p>安装：</p>
<blockquote><p>sudo apt-get install websvn</p>
</blockquote>
<p>访问也很简单，直接：</p>
<blockquote><p><font style="background-color: #ffffff"><a href="http://ip/websvn">http://ip/websvn</a></font></p>
</blockquote>
<p>websvn截图：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/02/image11.png" rel="lightbox"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/02/image_thumb11.png" width="467" height="203" /></a> </p>
<p> <span id="more-2282"></span>
<p>这是源代码显示的截图：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/02/image12.png" rel="lightbox"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/02/image_thumb12.png" width="465" height="282" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2282/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在ubuntu下使用svnmanager集成svn和apache</title>
		<link>http://marshal.easymorse.com/archives/2276?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%259c%25a8ubuntu%25e4%25b8%258b%25e4%25bd%25bf%25e7%2594%25a8svnmanager%25e9%259b%2586%25e6%2588%2590svn%25e5%2592%258capache</link>
		<comments>http://marshal.easymorse.com/archives/2276#comments</comments>
		<pubDate>Tue, 23 Feb 2010 08:13:20 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svnmanager]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2276</guid>
		<description><![CDATA[集成svn和apache，使用了svnmanager。如果纯手工的配置，很麻烦，而且，密码也不好管理。 首先，需要安装一下基本的软件和包： sudo apt-get install apache2 libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion 另外，svnmanager需要php的支持，需要安装pear： sudo apt-get install php-pear 安装svnmanager所需的库： sudo pear install VersionControl_SVN-0.3.3 下载svnmanager的包： wget http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.08.tar.gz 之后，按照svnmanager的安装进行，基本可以将svn和apache集成起来。见： http://svnmanager.org/index.php?page=install 这里需要注意，如果ubuntu是用中文安装的，那么locale应该： $lang&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = &#34;zh_CN.UTF-8&#34;; 需要将svnmanager目录设置为apache用户所有，否则访问中会有问题。 另外，需要创建数据库，我这里使用mysql。]]></description>
			<content:encoded><![CDATA[<p>集成svn和apache，使用了svnmanager。如果纯手工的配置，很麻烦，而且，密码也不好管理。</p>
<p>首先，需要安装一下基本的软件和包：</p>
<blockquote><p>sudo apt-get install apache2 libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion</p>
</blockquote>
<p>另外，svnmanager需要php的支持，需要安装pear：</p>
<blockquote><p>sudo apt-get install php-pear</p>
</blockquote>
<p>安装svnmanager所需的库：</p>
<blockquote><p>sudo pear install VersionControl_SVN-0.3.3</p>
</blockquote>
<p>下载svnmanager的包：</p>
<blockquote><p>wget <a href="http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.08.tar.gz">http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.08.tar.gz</a></p>
</blockquote>
<p>之后，按照svnmanager的安装进行，基本可以将svn和apache集成起来。见：</p>
<blockquote><p><a href="http://svnmanager.org/index.php?page=install">http://svnmanager.org/index.php?page=install</a></p>
</blockquote>
<p>这里需要注意，如果ubuntu是用中文安装的，那么locale应该：</p>
<blockquote><p>$lang&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = &quot;zh_CN.UTF-8&quot;;</p>
</blockquote>
<p> <span id="more-2276"></span>
<p>需要将svnmanager目录设置为apache用户所有，否则访问中会有问题。</p>
<p>另外，需要创建数据库，我这里使用mysql。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2276/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>升级ubuntu 9.04下的subversion</title>
		<link>http://marshal.easymorse.com/archives/1968?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%258d%2587%25e7%25ba%25a7ubuntu-9-04%25e4%25b8%258b%25e7%259a%2584subversion</link>
		<comments>http://marshal.easymorse.com/archives/1968#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:16:58 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/1968</guid>
		<description><![CDATA[ubuntu9.04通过命令行方式向googlecode提交代码的时候出现这样的错误： Error: Error while updating filelist (此客户端对于工作副本 “/home/ubuntu/workspace/sms-service” 太旧。你需要取得更新的 Subversion 客户端，或者降级 svn的版本是1.5.4，看来google上的版本比较新，另外就是ubuntu下的eclipse插件subclipse怎么没有问题呢，估计是使用java的svn客户端，而且subclipse版本足够新。 这里虽然是javaHL，但是后面有not available，估计是自动切换到svnkit的纯java实现上了。 升级subversion到1.6的步骤是，首先，更新/etc/apt/source.list，增加： deb http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu jaunty main deb-src http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu jaunty main &#160; 然后： sudo apt-get update 删除当前版本的svn： sudo apt-get remove subversion 安装新版本的svn： sudo apt-get install subversion 查看新版本： svn &#8211;version svn，版本 1.6.5 (r38866) &#160;&#160; 编译于 Sep&#160; 2 2009，05:13:23]]></description>
			<content:encoded><![CDATA[<p>ubuntu9.04通过命令行方式向googlecode提交代码的时候出现这样的错误：</p>
<blockquote><p>Error: Error while updating filelist (此客户端对于工作副本 “/home/ubuntu/workspace/sms-service” 太旧。你需要取得更新的 Subversion 客户端，或者降级</p>
</blockquote>
<p>svn的版本是1.5.4，看来google上的版本比较新，另外就是ubuntu下的eclipse插件subclipse怎么没有问题呢，估计是使用java的svn客户端，而且subclipse版本足够新。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2009/11/image70.png" rel="lightbox"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2009/11/image_thumb67.png" width="347" height="100" /></a> </p>
<p>这里虽然是javaHL，但是后面有not available，估计是自动切换到svnkit的纯java实现上了。</p>
<p> <span id="more-1968"></span>
<p>升级subversion到1.6的步骤是，首先，更新/etc/apt/source.list，增加：</p>
<blockquote><p>deb <a href="http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu">http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu</a> jaunty main       <br />deb-src <a href="http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu">http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu</a> jaunty main</p>
<p>&#160;</p>
</blockquote>
<p>然后：</p>
<blockquote><p><font style="background-color: #ffffff">sudo apt-get update</font></p>
</blockquote>
<p>删除当前版本的svn：</p>
<blockquote><p>sudo apt-get remove subversion</p>
</blockquote>
<p>安装新版本的svn：</p>
<blockquote><p>sudo apt-get install subversion</p>
</blockquote>
<p>查看新版本：</p>
<blockquote><p>svn &#8211;version      <br />svn，版本 1.6.5 (r38866)       <br />&#160;&#160; 编译于 Sep&#160; 2 2009，05:13:23</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/1968/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>安装和使用svnkit</title>
		<link>http://marshal.easymorse.com/archives/1393?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%25ae%2589%25e8%25a3%2585%25e5%2592%258c%25e4%25bd%25bf%25e7%2594%25a8svnkit</link>
		<comments>http://marshal.easymorse.com/archives/1393#comments</comments>
		<pubDate>Thu, 02 Jul 2009 06:39:51 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/1393</guid>
		<description><![CDATA[svn有时候不能使用。这种情况让我遇上了。以前一台空闲的redhat AS4，现在要用做生产环境。需要安装svn（实际上AS4上有一个老版本的SVN，不过不支持SSL。这是我们必备的功能）。以前网管按照这个文档步骤： http://www.bernzilla.com/item.php?id=651 也能编译安装。这次死活安不上了。时间很急，就想到了用java的svn命令行客户端做替代，反正AS4上有java环境。 这个工具就是svnkit，网址是： http://svnkit.com/ 下载它的Standalone Version版本即可。安装就是直接解压缩： unzip org.tmatesoft.svn_1.3.0.standalone.zip 使用svnkit命令和svn类似，比如做检出： jsvn co https://code.google.com/p/abc 因为我们的脚本里面都写的是svn，所以给jsvn建了一个软连接svn。这样原来脚本都不需要改就可用了。 svnkit的缺点是慢，明显慢于svn。]]></description>
			<content:encoded><![CDATA[<p>svn有时候不能使用。这种情况让我遇上了。以前一台空闲的redhat AS4，现在要用做生产环境。需要安装svn（实际上AS4上有一个老版本的SVN，不过不支持SSL。这是我们必备的功能）。以前网管按照这个文档步骤：</p>
<blockquote><p><a title="http://www.bernzilla.com/item.php?id=651" href="http://www.bernzilla.com/item.php?id=651">http://www.bernzilla.com/item.php?id=651</a></p>
</blockquote>
<p>也能编译安装。这次死活安不上了。时间很急，就想到了用java的svn命令行客户端做替代，反正AS4上有java环境。</p>
<p><span id="more-1393"></span>
<p>这个工具就是svnkit，网址是：</p>
<blockquote><p><a href="http://svnkit.com/">http://svnkit.com/</a></p>
</blockquote>
<p>下载它的<em>Standalone Version</em>版本即可。安装就是直接解压缩：</p>
<blockquote><p><font color="#333333">unzip org.tmatesoft.svn_1.3.0.standalone.zip</font></p>
</blockquote>
<p>使用svnkit命令和svn类似，比如做检出：</p>
<blockquote><p><font color="#333333">jsvn co <a href="https://code.google.com/p/abc">https://code.google.com/p/abc</a></font></p>
</blockquote>
<p>因为我们的脚本里面都写的是svn，所以给jsvn建了一个软连接svn。这样原来脚本都不需要改就可用了。</p>
<p>svnkit的缺点是慢，明显慢于svn。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/1393/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache设置匿名用户浏览权限</title>
		<link>http://marshal.easymorse.com/archives/1230?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache%25e8%25ae%25be%25e7%25bd%25ae%25e5%258c%25bf%25e5%2590%258d%25e7%2594%25a8%25e6%2588%25b7%25e6%25b5%258f%25e8%25a7%2588%25e6%259d%2583%25e9%2599%2590</link>
		<comments>http://marshal.easymorse.com/archives/1230#comments</comments>
		<pubDate>Thu, 26 Mar 2009 10:07:47 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/1230</guid>
		<description><![CDATA[apache设置访问权限以后，比如在和svn集成的情况中，某个tags或者目录需要允许匿名用户访问，会提示需要用户和密码。解决办法是，在配置文件中增加： Satisfy All 或者： Satisfy Any 二者有区别，具体配置细节，见： http://httpd.apache.org/docs/2.2/mod/core.html#satisfy]]></description>
			<content:encoded><![CDATA[<p>apache设置访问权限以后，比如在和svn集成的情况中，某个tags或者目录需要允许匿名用户访问，会提示需要用户和密码。解决办法是，在配置文件中增加：</p>
<blockquote><p>Satisfy All</p>
</blockquote>
<p>或者：</p>
<blockquote><p>Satisfy Any</p>
</blockquote>
<p>二者有区别，具体配置细节，见：</p>
<blockquote><p><a href="http://httpd.apache.org/docs/2.2/mod/core.html#satisfy">http://httpd.apache.org/docs/2.2/mod/core.html#satisfy</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/1230/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

