<?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>SpaLinux.com - สปาลีนุกซ์ &#187; Version Control</title>
	<atom:link href="http://spalinux.com/category/version-control/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>เพื่อชีวิตที่ผ่อนคลายของคนใช้ลีนุกซ์</description>
	<lastBuildDate>Sat, 12 May 2012 10:38:31 +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>โหลด mod_dav_svn ไม่สำเร็จ ฟ้องว่า undefined symbol: dav_register_provider</title>
		<link>http://spalinux.com/2011/06/cannot-load-mod_dav_svn-so-undefined-symbol-dav_register_provider</link>
		<comments>http://spalinux.com/2011/06/cannot-load-mod_dav_svn-so-undefined-symbol-dav_register_provider#comments</comments>
		<pubDate>Mon, 13 Jun 2011 17:06:41 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[mod_dav_svn]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1381</guid>
		<description><![CDATA[ขอแปะไว้กันลืม และเผื่อมีท่านใด เจอปัญหาเหมือนผมบ้าง หาอยู่นานพอสมควร เพื่อจะพยายามคอนฟิกเก็บข้อมูล subversion (svn) ไว้บน Web Server หลังจากติดตั้ง &#8220;mod_dav_svn&#8221; แล้วพยายาม สตาร์ต httpd ไม่สำเร็จ ดังนี้ [root@repos ~]# service httpd restart Stopping httpd:                                            [FAILED] Starting httpd: httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 2 of /etc/httpd/conf.d/subversion.conf: Cannot load /etc/httpd/modules/mod_dav_svn.so into server: /etc/httpd/modules/mod_dav_svn.so: undefined symbol: dav_register_provider                                                           [FAILED] ไฟล์คอนฟิก &#8220;/etc/httpd/conf.d/subversion.conf&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>ขอแปะไว้กันลืม และเผื่อมีท่านใด เจอปัญหาเหมือนผมบ้าง หาอยู่นานพอสมควร เพื่อจะพยายามคอนฟิกเก็บข้อมูล subversion (svn) ไว้บน Web Server</p>
<p>หลังจากติดตั้ง &#8220;mod_dav_svn&#8221; แล้วพยายาม สตาร์ต httpd ไม่สำเร็จ ดังนี้</p>
<pre>[root@repos ~]# <strong>service httpd restart
</strong>Stopping httpd:                                            [FAILED]
Starting httpd: httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 2 of /etc/httpd/conf.d/subversion.conf: Cannot load</pre>
<pre><span style="color: #ff0000;">/etc/httpd/modules/mod_dav_svn.so into server: /etc/httpd/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
</span><span style="color: #ff0000;">                                                          [FAILED]</span></pre>
<p><span id="more-1381"></span><br />
ไฟล์คอนฟิก &#8220;/etc/httpd/conf.d/subversion.conf&#8221;</p>
<pre>[root@repos ~]# <strong>cat /etc/httpd/conf.d/subversion.conf</strong></pre>
<pre>LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
...</pre>
<p>วิธีการแก้ไขคือ คือต้องเปิดคอนฟิกเพื่อโหลดโมดูล &#8220;dav_fs_module&#8221; โดยแก้ไขในไฟล์คอนฟิก /etc/httpd/conf/httpd.conf</p>
<pre>[root@repos ~]# cat /etc/httpd/conf/httpd.conf</pre>
<pre><span style="color: #0000ff;">LoadModule dav_fs_module modules/mod_dav_fs.so</span></pre>
<p>หลังจากแก้ไข ใช้คำสั่ง service เพื่อรีสตาร์ต httpd อีกครั้ง</p>
<pre>[root@repos ~]# <strong>service httpd restart
</strong>Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]</pre>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2011/06/cannot-load-mod_dav_svn-so-undefined-symbol-dav_register_provider/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>รัน SVN แล้วขึ้น error MKACTIVITY request</title>
		<link>http://spalinux.com/2010/07/svn_error_mkactivity_request</link>
		<comments>http://spalinux.com/2010/07/svn_error_mkactivity_request#comments</comments>
		<pubDate>Mon, 26 Jul 2010 09:51:19 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1140</guid>
		<description><![CDATA[เจอปัญหารัน svn แล้วขึ้น error เลยนำมาแชร์ประสบการณ์ให้อ่าน ตัวอย่างการรัน svn แล้วเกิดปัญหา [user1@client ~]$ svn --username user1 import test_project https://192.168.1.1/svn/test_project/trunk/test_project -m 'init release' svn: Server sent unexpected return value (500 Internal Server Error) in response to MKACTIVITY request for '/repos/test_project/!svn/act/...' คอนฟิกที่ใช้เป็นการรัน svn โดยเขียน อ่าน ไฟล์ repos ผ่านทาง Apache DAV ตัวอย่างคอนฟิกไฟล์ของ Apache เพื่อเก็บ svn repos บนเซิร์ฟเวอร์     &#60;Location /svn&#62;         DAV svn [...]]]></description>
			<content:encoded><![CDATA[<p>เจอปัญหารัน svn แล้วขึ้น error เลยนำมาแชร์ประสบการณ์ให้อ่าน</p>
<p>ตัวอย่างการรัน svn แล้วเกิดปัญหา</p>
<pre>[user1@client ~]$ <strong>svn --username user1 import test_project https://192.168.1.1/svn/test_project/trunk/test_project -m 'init release'
</strong>svn: Server sent unexpected return value (500 Internal Server Error) in response to MKACTIVITY request for '/repos/test_project/!svn/act/...'</pre>
<p>คอนฟิกที่ใช้เป็นการรัน svn โดยเขียน อ่าน ไฟล์ repos ผ่านทาง Apache DAV</p>
<p><span id="more-1140"></span></p>
<p>ตัวอย่างคอนฟิกไฟล์ของ Apache เพื่อเก็บ svn repos บนเซิร์ฟเวอร์</p>
<pre>    &lt;Location /svn&gt;
        DAV svn
        SVNParentPath /var/svn/repos</pre>
<pre>        # Limit write permission to list of valid users.
        &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;</pre>
<pre>            # Require SSL connection for password protection.
            # SSLRequireSSL</pre>
<pre>            AuthType Basic
            AuthName "Authorization Realm"
            AuthUserFile /var/svn/.htpasswd
            Require valid-user
        &lt;/LimitExcept&gt;
    &lt;/Location&gt;</pre>
<p>ตรวจสอบ error_log ที่เซิร์ฟเวอร์แล้ว มีข้อความประมาณ &#8220;couldn&#8217;t check user&#8221;</p>
<pre>[root@server ~]# <strong>tail /var/log/httpd/ssl_error_log
</strong>[Mon Jul 26 15:56:08 2010] [crit] [client x.x.x.x] configuration error:  <span style="color: #ff0000;">couldn't check <span style="color: #ff0000;">user</span></span><span style="color: #ff0000;">.  No user file?:</span> /repos/test_project/!svn/act/...</pre>
<p>ตอนแรกนึกว่าเป็นปัญหาเกี่ยวกับ permission ของไฟล์หรือไดเร็คทอรี พยายามแก้อยู่นาน จนกระทั่งเปลี่ยน chmod 777 ก็ยังไม่สามารถแก้ปัญหาได้</p>
<p>ลองแก้ปัญหาอยู่นาน ก็พบว่า ดันไปปิด module &#8220;mod_auth_basic&#8221; ในไฟล์คอนฟิก /etc/httpd/conf/httpd.conf ของ apache เลยทดลองเปิดขึ้นมา</p>
<pre>LoadModule auth_basic_module modules/mod_auth_basic.so</pre>
<p>ลองรัน svn อีกครั้ง ก็ยังขึ้น error เหมือนเดิม แต่ครั้งนี้ error_log ที่เซิร์ฟเวอร์เปลี่ยนไปเป็นบ่นเกี่ยวกับ &#8220;No groups file&#8221;</p>
<pre>[user1@client ~]$ <strong>svn --username user1 import test_project </strong><strong>https://192.168.1.1/svn/test_project/trunk/test_project</strong><strong> -m 'init release'
</strong>svn: Server sent unexpected return value (500 Internal Server Error) in response to MKACTIVITY request for '/repos/test_project/!svn/act/...'</pre>
<pre>[Mon Jul 26 16:30:05 2010] [crit] [client x.x.x.x] configuration error:  <span style="color: #ff0000;">couldn't check access.  No groups file?:</span> /repos/test_project/!svn/act/...</pre>
<p>ลองเปิด/ปิด module ต่างๆ อยู่นาน กระทั่งพบว่าต้องเปิดอีก module หนึ่งคือ &#8220;mod_authz_user&#8221;</p>
<pre>LoadModule authz_user_module modules/mod_authz_user.so</pre>
<p>หลังจากเปิด module ทั้งสองแล้วก็สามารถรัน svn ได้ตามปกติ</p>
<pre>[user1@client ~]$ <strong>svn --username user1 import test_project </strong><strong>https://192.168.1.1/svn/test_project/trunk/test_project</strong><strong> -m 'init'
</strong>Authentication realm: &lt;https://192.168.1.1:443&gt; Authorization Realm
Password for 'user1':
Adding         test_project/index.php</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://spalinux.com/2008/11/basic_using_subversion">การใช้งาน subversion เบื้องต้น</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2010/07/svn_error_mkactivity_request/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การใช้งาน subversion เบื้องต้น</title>
		<link>http://spalinux.com/2008/11/basic_using_subversion</link>
		<comments>http://spalinux.com/2008/11/basic_using_subversion#comments</comments>
		<pubDate>Thu, 27 Nov 2008 17:45:16 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=339</guid>
		<description><![CDATA[หลังจากที่ สร้าง svn repository ในบทความนี้จะแนะนำการใช้งาน svn เบื้องต้น โดยจะประกอบด้วยคำสั่ง import, checkout, commit อนุญาตให้ users สามารถเขียนไฟล์ใน repository ได้ ก่อนที่ users สามารถที่จะใส่ไฟล์เข้าไปใน repository ที่ root เป็นคนสร้างไว้ ต้องเปลี่ยน permission ของไดเร็คทอรีที่สร้างขึ้นก่อน ในที่นี้คือ /var/svn/test_svn/ [root@svn ~]# cd /var/svn/ [root@svn svn]# chmod -R g+w test_svn/ [root@svn svn]# chgrp -R users test_svn/ [root@svn svn]# ls -l total 4 drwxrwxr-x 7 root users 4096 2008-11-27 [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากที่ <a href="http://spalinux.com/2008/06/creating_svn_repository">สร้าง svn repository</a> ในบทความนี้จะแนะนำการใช้งาน svn เบื้องต้น โดยจะประกอบด้วยคำสั่ง import, checkout, commit</p>
<p><span id="more-339"></span></p>
<h4>อนุญาตให้ users สามารถเขียนไฟล์ใน repository ได้</h4>
<p>ก่อนที่ users สามารถที่จะใส่ไฟล์เข้าไปใน repository ที่ root เป็นคนสร้างไว้ ต้องเปลี่ยน permission ของไดเร็คทอรีที่สร้างขึ้นก่อน ในที่นี้คือ /var/svn/test_svn/</p>
<pre>[root@svn ~]# <strong>cd /var/svn/
</strong>[root@svn svn]# <strong>chmod -R g+w test_svn/
</strong>[root@svn svn]# <strong>chgrp -R users test_svn/</strong></pre>
<pre>[root@svn svn]#<strong> ls -l
</strong>total 4
drwxrwxr-x 7 root users 4096 2008-11-27 23:37 test_svn</pre>
<h4>svn import &#8211; เริ่มต้นใส่ข้อมูล</h4>
<p>ทดสอบโดยใช้ user01 เขียนโปรแกรมขึ้นมาเก็บไว้ในไดเร็คทอรี my-scripts/ และในนี้มีไฟล์ที่สร้างขึ้นสองไฟล์ คือ index.php  และ README</p>
<pre>[user01@svn ~]$ <strong>ls -lR my-scripts/
</strong>my-scripts/:
total 8
-rw-r--r-- 1 user01 users 25 2008-11-27 23:51 index.php
-rw-r--r-- 1 user01 users  7 2008-11-27 23:51 README</pre>
<p>ตัวอย่างไฟล์ที่สร้างขึ้น</p>
<pre>[user01@svn ~]$ <strong>cat my-scripts/index.php
</strong>&lt;?php</pre>
<pre>echo "hello";</pre>
<pre>?&gt;</pre>
<p>ใช้คำสั่ง svn import เพื่อใส่ไฟล์ที่สร้างขึ้นเข้าไปใน repository ได้ ดังตัวอย่าง</p>
<pre>[user01@svn ~]$ <strong>svn import my-scripts file:///var/svn/test_svn/my-scripts -m "Initial import"
</strong>Adding         my-scripts/index.php
Adding         my-scripts/README</pre>
<pre>Committed revision 1.</pre>
<p>คำอธิบาย</p>
<ul>
<li><strong>my-scripts</strong> ส่วนแรกเป็นการระบุไดเร็คทอรี ที่เราเพิ่งสร้างไฟล์ขึ้น</li>
<li><strong>my-scripts</strong> อันหลังจะเป็นการระบุชื่อที่เก็บไว้ใน repository</li>
<li>ออปชั่น <strong>-m</strong> เป็นคำอธิบายในการเปลี่ยนแปลงข้อมูลใน repository เพื่อการอ้างอิงย้อนหลังได้</li>
<li><strong>file:///var/svn/test_svn</strong> ระบุที่อยู่ของ repository โดยเริ่มต้นเราจะทดสอบบน local disk ข้อสังเกต มีเครื่องหมาย / สามอัน</li>
</ul>
<p>หลังจากที่ import ไฟล์เข้าไปแล้ว แนะนำให้เก็บสำรอง ไฟล์ดั้งเดิมเอาไว้ก่อน ในตัวอย่างนี้จะเปลี่ยนชื่อเป็น .bak</p>
<pre>[user01@svn ~]$ <strong>mv my-scripts my-scripts.bak
</strong>[user01@svn ~]$ <strong>ls -l
</strong>total 4
drwxr-xr-x 2 user01 users 4096 2008-11-27 23:51 my-scripts.bak</pre>
<h4>svn checkout &#8211; ดึงไฟล์ออกมาจาก repository</h4>
<p>ใช้คำสั่ง svn checkout เพื่อดึงไฟล์ที่ต้องการออกมา โดยต้องระบุ path ให้ถูกต้อง ตามที่ระบุไว้ตอนที่ import เข้าไป</p>
<pre>[user01@svn ~]$ <strong>svn checkout file:///var/svn/test_svn/my-scripts
</strong>A    my-scripts/README
A    my-scripts/index.php
Checked out revision 1.</pre>
<pre>[user01@svn ~]$ <strong>ls -l
</strong>total 8
drwxr-xr-x 3 user01 users 4096 2008-11-28 00:03 my-scripts
drwxr-xr-x 2 user01 users 4096 2008-11-27 23:51 my-scripts.bak</pre>
<p>เราจะได้ไดเร็คทอรี่ และไฟล์ที่เราเพิ่งใส่เข้าไปกลับคืนมา ในที่นี้คือ my-scripts</p>
<p>ลองตรวจสอบไฟล์ที่อยู่ในนี้ จะเห็นว่ามี ไดเร็คทอรี่ พิเศษเพิ่มเติมขึ้นมา ชื่อว่า .svn/ โดยจะเป็นส่วนที่เก็บคอนฟิกและการตรวจสอบการเปลี่ยนแปลงไฟล์ของ subversion ห้ามลบทิ้ง</p>
<pre>[user01@svn ~]$ <strong>cd my-scripts
</strong>[user01@svn my-scripts]$ <strong>ls -la
</strong>total 20
drwxr-xr-x 3 user01 users 4096 2008-11-28 00:03 .
drwx------ 6 user01 users 4096 2008-11-28 00:03 ..
-rw-r--r-- 1 user01 users   25 2008-11-28 00:03 index.php
-rw-r--r-- 1 user01 users    7 2008-11-28 00:03 README
drwxr-xr-x 6 user01 users 4096 2008-11-28 00:03 .svn</pre>
<pre>[user01@svn my-scripts]$ <strong>ls -l .svn/
</strong>total 24
-r--r--r-- 1 user01 users  438 2008-11-28 00:03 entries
-r--r--r-- 1 user01 users    2 2008-11-28 00:03 format
drwxr-xr-x 2 user01 users 4096 2008-11-28 00:03 prop-base
drwxr-xr-x 2 user01 users 4096 2008-11-28 00:03 props
drwxr-xr-x 2 user01 users 4096 2008-11-28 00:03 text-base
drwxr-xr-x 5 user01 users 4096 2008-11-28 00:03 tmp</pre>
<h4>svn info &#8211; ตรวจสอบเวอร์ชั่นของไฟล์</h4>
<p>ใช้คำสั่ง svn info เพื่อตรวจสอบเวอร์ชั่น (Revision) และข้อมูลการเปลี่ยนแปลงล่าสุดของไฟล์ได้</p>
<pre>[user01@svn my-scripts]$ <strong>svn info
</strong>Path: .
URL: file:///var/svn/test_svn/my-scripts
Repository Root: file:///var/svn/test_svn
Repository UUID: 1b23135d-c21e-4acd-826f-e74e671c30c9
Revision: 1
Node Kind: directory
Schedule: normal
Last Changed Author: user01
Last Changed Rev: 1
Last Changed Date: 2008-11-27 23:56:16 +0700 (Thu, 27 Nov 2008)</pre>
<h4>svn status &#8211; ตรวจสอบสถานะการแก้ไขไฟล์</h4>
<p>ทดลองแก้ไขไฟล์ index.php ในที่นี้จะแก้เป็น</p>
<pre>[user01@svn my-scripts]$ <strong>cat index.php
</strong>&lt;?php</pre>
<pre>echo "hello";
echo "world";
echo "test subversion";</pre>
<pre>?&gt;</pre>
<p>ใช้คำสั่ง svn status เพื่อตรวจสอบการแก้ไข</p>
<pre>[user01@svn my-scripts]$ <strong>svn status</strong>
M      index.php</pre>
<p>ผลลัพธ์ที่ได้จากคำสั่ง svn status จะแสดงรายชื่อไฟล์ที่มีการเปลี่ยนแปลง พร้อมทั้งตัวอักษรย่อ เช่น</p>
<ul>
<li><strong>M</strong>  ไฟล์มีการแก้ไข</li>
<li><strong>A</strong>  ไฟล์ถูกสร้างขึ้นมาใหม่</li>
<li><strong>D</strong>  ไฟล์ถูกลบไป</li>
<li>?   ยังไม่มีข้อมูลของไฟล์</li>
</ul>
<h4>svn commit &#8211; ปรับปรุงการแก้ไขไฟล์เข้าไปใน repository</h4>
<p>หลังจากที่แก้ไขไฟล์ต่างๆ เสร็จเรียบร้อย ใช้คำสั่ง svn commit เพื่อใส่ข้อมูลการเปลี่ยนแปลง กลับเข้าไปใน repository อีกครั้ง ระบุออปชั่น &#8216;-m&#8217; เพื่อใส่คำอธิบายการแก้ไข</p>
<pre>[user01@svn my-scripts]$ <strong>svn commit -m "added more lines"
</strong>Sending        index.php
Transmitting file data .
Committed revision 2.</pre>
<h4>svn add &#8211; เพิ่มไฟล์ใหม่</h4>
<p>หากต้องการสร้างไฟล์ใหม่ขึ้นมา ก็สามารถสร้างได้ตามปกติ แล้วใช้คำสั่ง svn add เพื่อเพิ่มไฟล์ใหม่นี้เข้าไปใน repository</p>
<pre>[user01@svn my-scripts]$ <strong>ls -l
</strong>total 12
-rw-r--r-- 1 user01 users 63 2008-11-28 00:10 index.php
-rw-r--r-- 1 user01 users 40 2008-11-28 00:16 new-file1.php
-rw-r--r-- 1 user01 users  7 2008-11-28 00:03 README</pre>
<pre>[user01@svn my-scripts]$ <strong>svn status
</strong>?      new-file1.php</pre>
<pre>[user01@svn my-scripts]$ <strong>svn add new-file1.php</strong>
A         new-file1.php</pre>
<pre>[user01@svn my-scripts]$ <strong>svn commit -m "added a new file 1"
</strong>Adding         new-file1.php
Transmitting file data .
Committed revision 3.</pre>
<h4>svn delete &#8211; ลบไฟล์ออก</h4>
<p>หากต้องการลบไฟล์ สามารถทำได้โดยใช้คำสั่ง svn delete ไฟล์จะถูกลบออกทั้งจาก ไดเร็คทอรี และจาก repository</p>
<pre>[user01@svn my-scripts]$ <strong>svn delete new-file1.php
</strong>D         new-file1.php</pre>
<pre>[user01@svn my-scripts]$ <strong>svn commit -m "deleted a new file 1"
</strong>Deleting       new-file1.php</pre>
<pre>Committed revision 4.
[user01@svn my-scripts]$ <strong>ls -l
</strong>total 8
-rw-r--r-- 1 user01 users 63 2008-11-28 00:10 index.php
-rw-r--r-- 1 user01 users  7 2008-11-28 00:03 README</pre>
<h4>คำแนะนำการ commit</h4>
<p>จะเห็นว่ากการ commit แต่ละครั้ง ตัวเลข Revision จะเพิ่มทีละหนึ่ง ซึ่งอาจเกินความจำเป็นและจะยากต่อการอ้างอิงเพื่อดึงข้อมูลย้อนหลัง (revert) คำแนะนำคือ ให้ commit หลังจากที่ปรับปรุงโปรแกรมไปพอสมควร เช่นแก้ไขปัญหาที่เกิดขึ้นจบไป หรืออาจจะวันละครั้ง  ใส่คำอธิบายหรือเหตุผลของการเปลี่ยนแปลง และให้แน่ใจว่าสิ่งที่แก้ไขไปนั้นโปรแกรมสามารถรันได้โดยไม่มีข้อผิดพลาด แล้วค่อย commit กลับเข้าไปใน repository เผื่อว่าเวลามาดึงข้อมูลย้อนหลังจะได้นำมาใช้งานได้เลย</p>
<p>ข้อมูลอ้างอิง</p>
<ul>
<li><a href="http://spalinux.com/2008/06/creating_svn_repository">การสร้าง svn repository</a></li>
<li><a href="http://svnbook.red-bean.com/en/1.5/svn.tour.html" target="_blank">SVN Chapter 2. Basic Usage</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/11/basic_using_subversion/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การสร้าง svn repository</title>
		<link>http://spalinux.com/2008/06/creating_svn_repository</link>
		<comments>http://spalinux.com/2008/06/creating_svn_repository#comments</comments>
		<pubDate>Mon, 30 Jun 2008 13:50:30 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Version Control]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=46</guid>
		<description><![CDATA[Subversion เป็นระบบควบคุมเวอร์ชั่นของไฟล์ เหมือนกับ CVS ประโยชน์คือทำให้ผู้ใช้งานสามารถที่จะร่วมกับพัฒนา แก้ไข เปลี่ยนแปลงไฟล์ต่างๆ ด้วยกันได้ เมื่อมีการเปลี่ยนแปลงไฟล์ในแต่ละครั้งจะมีเลขเวอร์ชั่นกำกับอยู่เสมอเพื่อเก็บประวัติการเปลี่ยนแปลงของไฟล์นั้นได้ ทำให้เราสามารถที่จะตรวจสอบการเปลี่ยนแปลงในแต่ละเวอร์ชั่น หรือสามารถย้อนกลับไปเป็นไฟล์ในเวอร์ชั่นที่เราต้องการได้ ทำให้ subversion เป็นระบบที่เหมาะสม และจำเป็นอย่างยิ่งในการพัฒนาโปรแกรม ยิ่งโดยเฉพาะมีนักพัฒนาหรือโปรแกรมเมอร์หลายคน ในบทความนี้จะอธิบายการเริ่มต้นสร้าง repository ขึ้นมาเพื่อเก็บไฟล์ทั้งหมด โดยในตอนแรกนี้จะติดตั้งเป็นแบบ local ก่อน คืออยู่ในเครื่องเดียวกันที่รันคำสั่ง svn นั่นเอง การสร้าง svn repository สามารถสร้างได้โดยใช้คำสั่ง svnadmin โดยระบุ directory ที่ต้องการเก็บ ตัวอย่างการสร้าง svn repository ที่ชื่อว่า test_svn [root@server ~]# mkdir /var/svn [root@server ~]# cd /var/svn [root@server svn]# svnadmin create test_svn [root@server svn]# ls -l test_svn/ total [...]]]></description>
			<content:encoded><![CDATA[<p>Subversion เป็นระบบควบคุมเวอร์ชั่นของไฟล์ เหมือนกับ CVS ประโยชน์คือทำให้ผู้ใช้งานสามารถที่จะร่วมกับพัฒนา แก้ไข เปลี่ยนแปลงไฟล์ต่างๆ ด้วยกันได้</p>
<p>เมื่อมีการเปลี่ยนแปลงไฟล์ในแต่ละครั้งจะมีเลขเวอร์ชั่นกำกับอยู่เสมอเพื่อเก็บประวัติการเปลี่ยนแปลงของไฟล์นั้นได้ ทำให้เราสามารถที่จะตรวจสอบการเปลี่ยนแปลงในแต่ละเวอร์ชั่น หรือสามารถย้อนกลับไปเป็นไฟล์ในเวอร์ชั่นที่เราต้องการได้</p>
<p>ทำให้ subversion เป็นระบบที่เหมาะสม และจำเป็นอย่างยิ่งในการพัฒนาโปรแกรม ยิ่งโดยเฉพาะมีนักพัฒนาหรือโปรแกรมเมอร์หลายคน</p>
<p>ในบทความนี้จะอธิบายการเริ่มต้นสร้าง repository ขึ้นมาเพื่อเก็บไฟล์ทั้งหมด โดยในตอนแรกนี้จะติดตั้งเป็นแบบ local ก่อน คืออยู่ในเครื่องเดียวกันที่รันคำสั่ง svn นั่นเอง</p>
<p><span id="more-46"></span></p>
<p><strong>การสร้าง svn repository<br />
</strong>สามารถสร้างได้โดยใช้คำสั่ง svnadmin โดยระบุ directory ที่ต้องการเก็บ</p>
<p>ตัวอย่างการสร้าง svn repository ที่ชื่อว่า test_svn</p>
<pre>[root@server ~]# mkdir<strong> /var/svn
</strong>[root@server ~]# cd<strong> /var/svn
</strong>[root@server svn]# <strong>svnadmin create test_svn
</strong>[root@server svn]# <strong>ls -l test_svn/
</strong>total 28
drwxr-xr-x 2 root root 4096 2008-06-30 20:44 conf
drwxr-xr-x 2 root root 4096 2008-06-30 20:44 dav
drwxr-sr-x 5 root root 4096 2008-06-30 20:44 db
-r--r--r-- 1 root root    2 2008-06-30 20:44 format
drwxr-xr-x 2 root root 4096 2008-06-30 20:44 hooks
drwxr-xr-x 2 root root 4096 2008-06-30 20:44 locks
-rw-r--r-- 1 root root  229 2008-06-30 20:44 README.txt</pre>
<p><b>ข้อมูลอ้างอิง</b></p>
<ul>
<li><a href="http://spalinux.com/2008/11/basic_using_subversion">การใช้งาน subversion เบื้องต้น</a></li>
<li><a title="Subversion Web Site" href="http://subversion.tigris.org/" target="_blank">Subversion Web Site</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/06/creating_svn_repository/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

