<?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>apt-blog.net   无证程序员的PT桑 &#187; 编辑</title>
	<atom:link href="http://apt-blog.net/tag/%e7%bc%96%e8%be%91/feed" rel="self" type="application/rss+xml" />
	<link>http://apt-blog.net</link>
	<description>潜逃中。</description>
	<lastBuildDate>Fri, 18 May 2012 11:25:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Google Code项目Wiki页在SVN仓库被复位后无法修改的Bug</title>
		<link>http://apt-blog.net/google_code_wiki_page_cache_remains_after_repository_reset</link>
		<comments>http://apt-blog.net/google_code_wiki_page_cache_remains_after_repository_reset#comments</comments>
		<pubDate>Tue, 27 Oct 2009 03:10:59 +0000</pubDate>
		<dc:creator>BOYPT</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[删除]]></category>
		<category><![CDATA[编辑]]></category>
		<guid isPermaLink="false">http://apt-blog.net/google_code_wiki_page_cache_remains_after_repository_reset</guid>
		<description><![CDATA[update:2010.1.25这个问题的状态终于被改成Fixed。 Google Code的项目控制因为其简洁深受很多开源作者的喜欢，PT好几个项目都是存放在Google Code上，不过之前遇到了一个些少恼人的Bug： 当建立了Wiki页，因为某种原因重置了SVN仓库，那原来的Wiki页将无法修改、无法删除（返回500 Server Error）。 重置SVN一般属于特殊情况，比如要把另外一个服务器的SVN仓库搬到另外一个SVN，而只保留后来的版本数据，才需要重置SVN仓库。我当时的情况是，不小心把包含自己帐号密码的测试脚本提交了上去SVN；版本管理的特点是版本修改是无法被抹除的，情急之下只好放弃版本痕迹，备份了文件，请求了SVN重置；之后就发现原先的Wiki页无法修改了。 一番查找后，发现Google Code自身的Support里面早有人发现了这个问题，可以看到，这个Bug第一次在2007年11月就有人提出了，一直到现在都陆续有人确认Bug依然存在……所以当时我就没管那个有问题的Ghost Page了，任其放着；两年都没有修复的bug看了没什么好指望的了； 不过最近这个问题有人提出了个颇为纠结的解决办法：创建wiki/the_page文件（跟之前的wikipage同名），然后不断修改递交svn，当svn的revision版本号高于重置之前wiki page最后修改的版本号，就可以修改或者删除这个Ghost Page了…… 想到我那个项目现在的版本号早就超过了之前重置SVN仓库时候的版本号，直接跑去wikipage点Delete this page，哈，直接搞定了！ 从这个Bug可以透视到Google Code的Wiki页构建机制：Wiki页跟SVN仓库内相应文件是紧密互动的，在Web对Wiki页的修改就相对于直接提交了相应SVN内的文件，当直接修改SVN内的Wiki文件时候，Web上的Page自动根据SVN刷新WEB页的缓冲，并记录文件的修改版本号；而重置了SVN仓库将导致SVN的版本号从0重新开始，这样Wiki页的缓冲模块没法找到相应的版本号对应的wiki文件进行操作，所以报告500错误；只能当版本号重新达到原先的最后修改时，Wiki Web才能正常的和SVN交互。 另外有趣的是，Google的程序员似乎对修复这个Bug没什么兴趣；可能容易引起新的bug吧，呵呵。]]></description>
			<content:encoded><![CDATA[<p>update:<strong>2010.1.25这个问题的状态终于被改成Fixed。</strong></p>
<p>Google Code的项目控制因为其简洁深受很多开源作者的喜欢，PT好几个项目都是存放在Google Code上，不过之前遇到了一个些少恼人的Bug：<br />
<blockquote>当建立了Wiki页，因为某种原因重置了SVN仓库，那原来的Wiki页将无法修改、无法删除（返回500 Server Error）。</p></blockquote>
<p>重置SVN一般属于特殊情况，比如要把另外一个服务器的SVN仓库搬到另外一个SVN，而只保留后来的版本数据，才需要重置SVN仓库。我当时的情况是，不小心把包含自己帐号密码的测试脚本提交了上去SVN；版本管理的特点是版本修改是无法被抹除的，情急之下只好放弃版本痕迹，备份了文件，请求了SVN重置；之后就发现原先的Wiki页无法修改了。</p>
<p>一番查找后，发现Google Code自身的Support里面<a target="_blank" href="http://code.google.com/p/support/issues/detail?id=582&amp;colspec=ID%20Type%20Status%20Milestone%20Priority%20Stars%20Owner%20Summary">早有人发现了这个问题</a>，可以看到，这个Bug第一次在2007年11月就有人提出了，一直到现在都陆续有人确认Bug依然存在……所以当时我就没管那个有问题的Ghost Page了，任其放着；两年都没有修复的bug看了没什么好指望的了；</p>
<p>不过最近这个问题有人提出了个颇为纠结的解决办法：创建wiki/the_page文件（跟之前的wikipage同名），然后不断修改递交svn，当svn的revision版本号高于重置之前wiki page最后修改的版本号，就可以修改或者删除这个Ghost Page了……</p>
<p>想到我那个项目现在的版本号早就超过了之前重置SVN仓库时候的版本号，直接跑去wikipage点Delete this page，哈，直接搞定了！</p>
<p>从这个Bug可以透视到Google Code的Wiki页构建机制：Wiki页跟SVN仓库内相应文件是紧密互动的，在Web对Wiki页的修改就相对于直接提交了相应SVN内的文件，当直接修改SVN内的Wiki文件时候，Web上的Page自动根据SVN刷新WEB页的缓冲，并记录文件的修改版本号；而重置了SVN仓库将导致SVN的版本号从0重新开始，这样Wiki页的缓冲模块没法找到相应的版本号对应的wiki文件进行操作，所以报告500错误；只能当版本号重新达到原先的最后修改时，Wiki Web才能正常的和SVN交互。</p>
<p>另外有趣的是，Google的程序员似乎对修复这个Bug没什么兴趣；可能容易引起新的bug吧，呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://apt-blog.net/google_code_wiki_page_cache_remains_after_repository_reset/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

