<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>請在「持續整合」的原則下利用版本控制工具的合併功能</title>
<link>http://blog.roodo.com/rocksaying/archives/5990201.html/</link>
<description><![CDATA[Tags: svn subversion cvs version_control agile_method

前一陣子在工作場所碰到一件事，我的同事抱怨 SVN 不能幫他合併他修改過的分支內容。我覺得很奇怪，因為我並沒有碰過這種情形。一開始我以為他是不熟悉 TortoiseSVN 工具，後來我實際看了他操作後，看到他竟然一次要合併近百份源碼檔，當場無言以對。



我記得我曾說過 SVN 可以幫我們程序員自動合併分支的源碼內容，並在衝突時提示我們。然而，在碰到同事這件例子後，我發覺我忘了加一個但書: 「請在持續整合(Continuous Integration)的原則下利用合併功能」。否則再好的版本控制工具也無法幫你合併。

]]>
	</description>
<language>zh-tw</language>
<generator>Roodo Blog System</generator>
<copyright>All Rights Reserved</copyright>
<atom:link href="http://blog.roodo.com/rocksaying/archives/5990201-comment.xml" rel="self" type="application/rss+xml" />
<item>
	<title>回應：請在「持續整合」的原則下利用版本控制工具的合併功能</title>
	<description><![CDATA[我想請問一下，何謂測試案例?
謝謝你。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/5990201.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/5990201.html#comment-18670469</guid>
		<category>文章回應</category>
	<pubDate>Thu, 05 Mar 2009 11:21:12 +0800</pubDate>
</item>
<item>
	<title>回應：請在「持續整合」的原則下利用版本控制工具的合併功能</title>
	<description><![CDATA[to 生魚片：

為什麼你的工作源碼要加密？
只有 release/export 給客戶的內容才需要加密。

測試先行跟個人程式編寫風格無關。

程式編寫風格是個人的 coding standard，它主要表現在你的變數命名、括號對齊等方式。跟你的開發流程無關。

如何畫分單元模組？這要看經驗。但是有2種編程觀念可以幫助你快速養成這種經驗，一是 MVC ，另一是 TDD(測試先行)。

當你無法輕鬆地先為一個預想中的單元編寫出測寫案例時，就是一個警標。它正提醒你：你所預想的單元不是一個好的設計。(太高的耦合度、太多的工作目標，等等)

所以，並不是你的經驗不足就無法導入測試先行的開發方式。事實相反，正是因為經驗不足，更要導入測試先行的開發方式，才能及早發現不良的設計，並快速養成正確的設計經驗。

*****************

to MaoYang：

習慣上，我用 revision 編號作為你說的 task id。至於是否要透過 hook 自動儲存提交時的 異動訊息，則視情況而定。

因為我提交的內容中，有不少是重構的結果，反而只有少數工作是針對使用者提報錯誤的debug。基於使用頻率，我是自行到 bug trace system 輸入相對應的 revision 編號。

不過我只輸入 revision 編號，意味著其他人需要再去搜尋 svn 的 log 才能看到異動訊息。

你的作法倒是提醒我了。我想想，也許我是該寫個 hook，一併把異動訊息上傳給 bug trace system。

不過我應該會在異動訊息中加上一個 tag ，用來標明這次異動是針對哪個 bug ticket id，並提示hook上傳給 bug trace system (沒有那個 tag 就不上傳)。]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/5990201.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/5990201.html#comment-16409713</guid>
		<category>文章回應</category>
	<pubDate>Tue, 13 May 2008 10:59:46 +0800</pubDate>
</item>
<item>
	<title>回應：請在「持續整合」的原則下利用版本控制工具的合併功能</title>
	<description><![CDATA[很不錯的經驗分享, 我的習慣是每完成一個task or 功能模組,就會做一次commit, 而且這個commit會伴隨一個task id or bug id,再利用svn hook功能將change set與task or bug db association,這樣就很容易追蹤我每次的修改是為那一個task or bug做commit.]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/5990201.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/5990201.html#comment-16405303</guid>
	<author>my@esast.com(MaoYang)</author>	<category>文章回應</category>
	<pubDate>Mon, 12 May 2008 18:08:50 +0800</pubDate>
</item>
<item>
	<title>回應：請在「持續整合」的原則下利用版本控制工具的合併功能</title>
	<description><![CDATA[石頭成大哥您好：

如果工作的原始碼都會經過加密，而且其包含介面(UI Control) 與 Code. .

有甚麼樣的版本控管比較適合或是可以嘗試的.

我現在只能用SVN來幫我做其個別檔案的版本控制. 但是無法使用其他的功能,例如您所提的合併.或者差異比較之類的.

另外針對測試先行的部分，是否得取決於個人的程式編寫風格? 總覺得我連 模組或類別 的判斷都不足，是否也就無法以測試案例來做為開發的方法?]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/5990201.html</link>
	<guid>http://blog.roodo.com/rocksaying/archives/5990201.html#comment-16378573</guid>
	<author>ypochien@gmail.com(生魚片)</author>	<category>文章回應</category>
	<pubDate>Fri, 09 May 2008 00:15:17 +0800</pubDate>
</item>
</channel>
</rss>