<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_ASTAR Coming Now</title><subtitle type="text">时常仰望天空，乃知天高；时常鸟瞰大地，常感天地宽- 梦想皆有神助</subtitle><id>http://feed.cnblogs.com/blog/u/242/rss</id><updated>2011-01-07T14:16:59Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/242/rss"/><entry><id>http://www.cnblogs.com/king_astar/archive/2010/10/12/1848532.html</id><title type="text">继承windows service的安装类出现的多余服务被安装的问题</title><summary type="text">最近开发了两个windows service的程序，由于有共同之处，因此我在第二个service的安装类中直接继承了第一个service的安装类。 结果发现用installutil工具对第二个service进行安装的时候，有多余的service被安装上去。ProjectInStaller 是继承了System.Configuration.Install.Installer. 它们在构造函数里面有一...</summary><published>2010-10-12T02:07:00Z</published><updated>2010-10-12T02:07:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2010/10/12/1848532.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2010/10/12/1848532.html"/><content type="html">&lt;p&gt;最近开发了两个windows service的程序，由于有共同之处，因此我在第二个service的安装类中直接继承了第一个service的安装类。 结果发现用installutil工具对第二个service进行安装的时候，有多余的service被安装上去。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;ProjectInStaller 是继承了System.Configuration.Install.Installer. 它们在构造函数里面有一个InitializeComponent函数，而在这个函数里面他们加载了SerivceInstaller，因此，如果第二service继承了第一个service，它就有两个ServiceInstall，因此会安装一个多余的service。解决方法很简单：在子类中的构造函数里面去掉InitializeComponent 就可以了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/king_astar/aggbug/1848532.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/king_astar/archive/2010/10/12/1848532.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2010/08/05/1793520.html</id><title type="text">List Sort 使用的注意几点</title><summary type="text">以前有个哥们好像写过类似的文章。当时没有注意，今天才发现有时候Sort时候真会带来麻烦。说说我遇到的麻烦： 我需要监控一个机器的状态，得到的数据类似：  1-PRD 8:30:00  2-STD 8:30:00  3-PRD 9:30:00  4-STD 9:31:00  我把数据都放在一个List&amp;lt;StateItem&amp;gt;容器里面，同时StateItem实现了IComparable接口，...</summary><published>2010-08-05T14:10:00Z</published><updated>2010-08-05T14:10:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2010/08/05/1793520.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2010/08/05/1793520.html"/><content type="html">&lt;p&gt;以前有个哥们好像写过类似的文章。当时没有注意，今天才发现有时候Sort时候真会带来麻烦。说说我遇到的麻烦：&lt;/p&gt; &lt;p&gt;我需要监控一个机器的状态，得到的数据类似：&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;1-PRD 8:30:00&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;2-STD 8:30:00&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;3-PRD 9:30:00&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;4-STD 9:31:00&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;我把数据都放在一个List&amp;lt;StateItem&amp;gt;容器里面，同时StateItem实现了IComparable接口，是datetime来排序。其实数据过来时候也是按照时间来排序，但是我仍然做了Sort操作。&lt;/p&gt; &lt;p&gt;结果问题出现了，我出来的统计报表跟以前跑的报表由差距。&lt;/p&gt; &lt;p&gt;PRD time ： (2)-(1)+(4)-(3) = 1 Min&lt;/p&gt; &lt;p&gt;STD time : (3)-(2) = 1 hour&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;结果排序后，数据顺序成了（1）和（2）调换了，&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;1-STD 8:30:00&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;2-PRD 8:30:00&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;3-PRD 9:30:00&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;p&gt;4-STD 9:31:00&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;PRD time ： (4)-(2) = 1 hour +1min&lt;/p&gt; &lt;p&gt;STD time : 0&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;结果大相径庭。 :(&lt;/p&gt; &lt;p&gt;&lt;strong&gt;总结：排序的时候要考虑到相同rank的情况。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;另外一种情况是由于比较数接近造成的问题&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;int IComparable.CompareTo( stateItem item)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p&gt;return Convert.Int32((this.datetime – item.datetime).TotalMinutes);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;好像没有错。但请考虑当totalMinutes&amp;lt;1为小数的情况，则无法判断两个对象的次序。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;OK，转成&lt;/p&gt; &lt;p&gt;return this.datetime.ticks.CompareTo(item.datetime.ticks);&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;enn….&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;关于排序的接口有2个：&lt;/p&gt; &lt;p&gt;1 IComparable&lt;/p&gt; &lt;p&gt;子项完成。&lt;/p&gt; &lt;p&gt;2. IComparer&lt;/p&gt; &lt;p&gt;容器完成&lt;/p&gt; &lt;p&gt;除此，Sort支持直接调用方法&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;ListExample.Sort(Method1);&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;public int Method1(item X, item Y)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;…..&lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/king_astar/aggbug/1793520.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/king_astar/archive/2010/08/05/1793520.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2010/03/04/1678371.html</id><title type="text">Three collaboration teamwork Tools</title><summary type="text">- IBM Lotus Quickr (C/S, need license ) Introduction :  https://slater.warwick.ac.uk/lotus/quickr/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9CP0os_hQJ29XlzBnI0N3YyNzAyMv51CngMBAI5MAY_2CbEdFAAPfjLs!/  - Office G...</summary><published>2010-03-04T07:39:00Z</published><updated>2010-03-04T07:39:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2010/03/04/1678371.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2010/03/04/1678371.html"/><content type="html">&lt;p&gt;- IBM Lotus Quickr (C/S, need license )&lt;/p&gt; &lt;p&gt;Introduction : &lt;/p&gt; &lt;p&gt;&lt;a title="https://slater.warwick.ac.uk/lotus/quickr/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9CP0os_hQJ29XlzBnI0N3YyNzAyMv51CngMBAI5MAY_2CbEdFAAPfjLs!/" href="https://slater.warwick.ac.uk/lotus/quickr/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9CP0os_hQJ29XlzBnI0N3YyNzAyMv51CngMBAI5MAY_2CbEdFAAPfjLs!/"&gt;https://slater.warwick.ac.uk/lotus/quickr/!ut/p/c0/04_SB8K8xLLM9MSSzPy8xBz9CP0os_hQJ29XlzBnI0N3YyNzAyMv51CngMBAI5MAY_2CbEdFAAPfjLs!/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;- Office Groove(C/S, P2P, need license)&lt;/p&gt; &lt;p&gt;&lt;a title="http://office.microsoft.com/en-us/groove/HA101656331033.aspx" href="http://office.microsoft.com/en-us/groove/HA101656331033.aspx"&gt;http://office.microsoft.com/en-us/groove/HA101656331033.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;- Collanos (P2P, freeware).&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.collanos.com/en/products/workplace/tour" href="http://www.collanos.com/en/products/workplace/tour"&gt;http://www.collanos.com/en/products/workplace/tour&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;In this kind of software, the share workspace is a good start. You can start a work with different people in different workspace. And it includes some tools like discussion, IM and meeting. In this virtual office, you could do your work with other people, manage your documents, arrange your schedule and align the team goal.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;The collaboration software market grow faster and bigger. Cause people have to and like to work together to complete a work than before. So P2P tech is very important for this kind of tool, cause most of middle companies won’t buy new server(including hardware or software), they want to reduce non-core cost. They want to install the software and start to use not do much work on setup.&lt;/p&gt; &lt;p&gt;Actually it’s a trend of SOA, the user don’t care what you setup, they just want to use.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/king_astar/aggbug/1678371.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/king_astar/archive/2010/03/04/1678371.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2010/03/03/1677049.html</id><title type="text">How to do &amp;lsquo;undo&amp;rsquo; in TortoiseSVN</title><summary type="text">In one project, I found current revision had some errors and want to come back a old revision, so I use ‘update to revision’, but It looks like it don’t work as I think. so how to roll back to a previ...</summary><published>2010-03-03T03:22:00Z</published><updated>2010-03-03T03:22:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2010/03/03/1677049.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2010/03/03/1677049.html"/><content type="html">&lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;In one project, I found current revision had some errors and want to come back a old revision, so I use ‘update to revision’, but It looks like it don’t work as I think.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;so how to roll back to a previous revision? en… now &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#004080" size="2" face="Trebuchet MS"&gt;&lt;strong&gt;Looking at TortoiseSVN’s menu or going through the list of command-line options you’ll see … gasp! … subversion forgot a roll-back feature! How could they do that?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://jacwright.com/blog/75/how-to-roll-back-changes-using-subversion/" href="http://jacwright.com/blog/75/how-to-roll-back-changes-using-subversion/"&gt;&lt;font size="2" face="Trebuchet MS"&gt;http://jacwright.com/blog/75/how-to-roll-back-changes-using-subversion/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;this article tell us how to do that, but he use merge to do that. I don’t think it’s a good way, the following I will show you what I did to roll back to old version.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;There some different scenarios that need us to return back old revision.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;1) You just want an earlier version of the code to use but not commit on. &lt;br&gt;2) You want to rewind the codebase to an earlier version and then be able to work with/commit using the earlier version as a starting point. &lt;br&gt;3) You want to rewind the codebase to an earlier version and then be able to work with and merge the changes with one revision after the earlier version.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Regarding the different requirements, we’ll choose different ways to handle. However, the actions that we used to use are &lt;strong&gt;&lt;font color="#ff0000"&gt;revert to revision&lt;/font&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;font color="#ff0000"&gt;update to revision&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;If you want to do 2,3, then I think revert to revision is your best choice. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;if you want to do 1, then update to revision is your choice.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Please see the following description, you will understand why I said that. Let’s go…..&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;First, we do some changes and commit it to repository.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_4.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_1.png" width="244" height="189"&gt;&lt;/font&gt;&lt;/a&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_6.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_2.png" width="244" height="191"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Check the revision, Now it’s 290.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;strong&gt;&lt;em&gt;Revert to revision&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Trebuchet MS"&gt;OK, we’d like to return back(Roll back) to the first revision, we look at it by selecting &lt;em&gt;Tortoise SVN – &amp;gt; show log, And I found this revision and click Revert to this revision&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_8.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_3.png" width="458" height="271"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt;&amp;nbsp;&lt;/font&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Now, we come back to previous revision, but please notice even the &lt;font color="#ff0000"&gt;CONTENT&lt;/font&gt; of test.cxx comes back to previous revision, but the current SVN revision of this file is still current- 290. it’s very important. see&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_12.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_5.png" width="365" height="262"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Now we change it again And commit changes. OK, it meets my requirement.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_14.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_14.png"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_6.png" width="244" height="241"&gt;&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_16.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_7.png" width="244" height="244"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;strong&gt;&lt;em&gt;Update to revision&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_18.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_8.png" width="442" height="196"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_20.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_9.png" width="344" height="176"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_22.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_10.png" width="244" height="168"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Here please pay attention to this revision flag,&lt;strong&gt; it was 287 not current 290. &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_24.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_11.png" width="353" height="211"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_26.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_12.png" width="362" height="213"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Now, I found the CONTENT of file return back to previous. It’s ok. then we do some changes and commit it again!&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_28.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_13.png" width="635" height="187"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;You will find this error when you want to commit it. [out-of-date]&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_30.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;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://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtodoundoinSVN_E4FC/image_thumb_14.png" width="506" height="233"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Trebuchet MS"&gt;Yes, it’s correct for SVN. Because you return back to revision 287 it’s an old revision. If you want to ‘undo’, obviously you choose an error function. Don’t use update to revision to do UNDO, but use &lt;font color="#ff0000"&gt;revert to revision.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;So if you insist to commit it, you have to do an update, before committing successfully.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;That’s all&amp;nbsp; I have. Enjoy it!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/king_astar/aggbug/1677049.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/king_astar/archive/2010/03/03/1677049.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2010/03/03/1677042.html</id><title type="text">How to resolve conflicts in TortoiseSVN</title><summary type="text">Sometimes, after we update our files from repository, we’ll meet this problem. If you open file, you will find it’s hard to understand and correct them. &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; .mine 3 modifuy===...</summary><published>2010-03-03T03:19:00Z</published><updated>2010-03-03T03:19:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2010/03/03/1677042.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2010/03/03/1677042.html"/><content type="html">&lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;Sometimes, after we update our files from repository, we’ll meet this problem.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="file:///C:/Users/rj/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles17A9505/image63.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_thumb31" border="0" alt="image_thumb31" src="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image_thumb31_b2ed00cf-ba81-4907-be58-39a953eba851.png" width="516" height="247"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;a href="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image2.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_thumb" border="0" alt="image_thumb" src="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image_thumb_21d9daa5-40e3-4e04-808a-9ebd99ce5b3a.png" width="164" height="51"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;If you open file, you will find it’s hard to understand and correct them.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;em&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; .mine &lt;/em&gt;&lt;/font&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;br&gt;&lt;em&gt;3 modifuy======= &lt;br&gt;2 modify&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; .r288&lt;/em&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Trebuchet MS"&gt;&lt;strong&gt;&lt;font color="#800040"&gt;In fact, TortoiseSVN provides a good tool to help us resolve this issue&lt;/font&gt;&lt;/strong&gt;. First, we need to &lt;strong&gt;&lt;em&gt;Edit conflicts.&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="file:///C:/Users/rj/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles17A9505/image67.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_thumb33" border="0" alt="image_thumb33" src="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image_thumb33_6c1dae0f-9066-4954-8db2-3994cff4842f.png" width="501" height="252"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;There are three working regions, the left is from repository, the right is from my working file. the bottom you know, it’s the last result after your editing.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="file:///C:/Users/rj/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles17A9505/image71.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_thumb35" border="0" alt="image_thumb35" src="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image_thumb35_b9e05f84-2b05-499f-93c3-a358edc3acce.png" width="648" height="413"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;I click one line and click right button of mouse, look here is context menu . You can choose to use this block or merge yours into the file,&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="file:///C:/Users/rj/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles17A9505/image75.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_thumb37" border="0" alt="image_thumb37" src="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image_thumb37_8e3e353d-c54a-4539-9595-bacf288e7ec9.png" width="420" height="172"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;The merge result was changed according my decision. I click save and check the content of file in my PC, now it have been changed. But the flag of conflict still exist.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="file:///C:/Users/rj/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles17A9505/image79.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_thumb39" border="0" alt="image_thumb39" src="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image_thumb39_b0fa733b-059e-4d0c-b7eb-6dcd0acfbbb0.png" width="539" height="382"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Trebuchet MS"&gt;Now, we click &lt;em&gt;resolved.&lt;font size="2" face="Trebuchet MS"&gt;and now we can commit successfully.&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="file:///C:/Users/rj/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles17A9505/image83.png"&gt;&lt;font size="2" face="Trebuchet MS"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_thumb41" border="0" alt="image_thumb41" src="http://images.cnblogs.com/cnblogs_com/king_astar/WindowsLiveWriter/HowtoresolveconflictsinTortoiseSVN_EE70/image_thumb41_2d8169dc-95a8-4bc5-ab37-2cbc1f07f26b.png" width="325" height="200"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Trebuchet MS"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Trebuchet MS"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/king_astar/aggbug/1677042.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/king_astar/archive/2010/03/03/1677042.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2009/10/29/1592416.html</id><title type="text">如何：.NET 组件/控件在设计时的调试</title><summary type="text">本文主要介绍如何在设计时对组件的调试，多数情况开发人员用MessgeBox来弹出信息进行调试，但无法进入到代码内部。因此本文以图解的方式来介绍。本文参考了微软MSDN中《演练：设计时调试自定义 Windows 窗体控件》，鉴于其中文版翻译很晦涩，建议大家参考本文  背景知识介绍 需要了解组件和控件的区别, 组件编程的大概方向,以及.NET提供哪些服务（组件）来支持组件编程及设计时的事件。 有兴趣可...</summary><published>2009-10-29T08:56:00Z</published><updated>2009-10-29T08:56:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2009/10/29/1592416.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2009/10/29/1592416.html"/></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2009/10/29/1592398.html</id><title type="text">Outlook2007 addin开发必读-菜单定制篇</title><summary type="text">介绍自从微软开始推出VSTO以后，我们就更容易在此基础上面开发Add-in程序。对VSTO的介绍，大家可以看看这篇文章：VSTO简介及发展。本文例子是基于VSTO 3.0上进行的开发。本文是在微软《Customizing the Ribbon in Outlook 2007》 基础上加入自己的实践和想法，供大家参考。 这段文字是来至于：Http://msdn.microsoft.com/zh-cn...</summary><published>2009-10-29T08:35:00Z</published><updated>2009-10-29T08:35:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2009/10/29/1592398.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2009/10/29/1592398.html"/></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2009/10/13/1582375.html</id><title type="text">Perl 对象化编程的实现</title><summary type="text">缘由 最近反过头来看Perl，一方面是我的客户厂家用Perl开发了很多东西，另一方面在了解过程中，又复习了Perl语言，并且有了一些心得。记录下来，供大家参考。 我在做一个小程序，就是解析一个文本文件，将其中的内容进行处理，并保存在另一个文件。  背景知识 1. Perl的对象化编程实现 请参考阅读： O'Reilly - Advanced Perl Programming.pdf - 第7章 [...</summary><published>2009-10-13T04:55:00Z</published><updated>2009-10-13T04:55:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2009/10/13/1582375.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2009/10/13/1582375.html"/></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2009/09/28/1576041.html</id><title type="text">VC++ 6.0 与VS2008 C++ DEBUG工具（Windows）介绍</title><summary type="text">在VC++ 6.0 里面，debug工具有这些： 请看大图展示： 这里面几个工具都是经常用到的。比如：上下文信息，可以查看当前变量的值和地址Memory： 可以输入地址查看里面的内容。对调试和检查指针特别有用。  在vs2008里面，debug做为单独的主要菜单出现了。 1.Autos自动显示目前执行语句与上一行的各个参数2.locals显示当前函数内所有变量的情况3.watch，输入变量查看这三...</summary><published>2009-09-28T15:15:00Z</published><updated>2009-09-28T15:15:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2009/09/28/1576041.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2009/09/28/1576041.html"/></entry><entry><id>http://www.cnblogs.com/king_astar/archive/2009/09/27/1575107.html</id><title type="text">C++ 如何获取目录下面的文件/文件的创建时间</title><summary type="text">我手上有一个C++程序会生成一些临时文件,过期以后希望能够删除. 到达成这个目的,我需要做到: 根据提供的路径,  列取所有文件,并比较现在时间跟其创建时间的差,如果超过N天,则删除. 问题分解开来是: 1. 取得某个目录下面所有文件 2. 取得文件的创建日期 3. 取得当前日期跟其创建的日期差 4. 删除文件 为此,我写了一个小程序来测试 1: // TestFileFunction.cpp :...</summary><published>2009-09-27T08:51:00Z</published><updated>2009-09-27T08:51:00Z</updated><author><name>ASTAR Coming Now</name><uri>http://www.cnblogs.com/king_astar/</uri></author><link rel="alternate" href="http://www.cnblogs.com/king_astar/archive/2009/09/27/1575107.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/king_astar/archive/2009/09/27/1575107.html"/></entry></feed>
