Http SVN
By sahusdeecho komseesang [ Tuesday, September 16th, 2008 ]
SubVersioN
( SVN http://en.wikipedia.org/wiki/Subversion_(software)) ซึ่งเป็น Open Source Application ที่ทำหน้าที่ Revision control ซึ่งได้รับความนิยมสูงมากตัวหนึ่ง โดยถูกสร้างขึ้นมาเพื่อทดแทนการทำงาน Concurrent Versions System (CVS) ที่เริ่มไม่รองรับความต้องการในปัจจุบันที่ต้องการความสามารถในการควบคุมและจัดการ version ของไฟล์ สามารถติดต่อ svn ได้ทั้งแบบ local network file และแบบ http protocol แต่ในบทความนี้จะพูดถึงเฉพาะการติดตั้ง svn แบบ http protocol
ในการติดตั้ง http svn จะต้องเตรียม software ที่เกี่ยวข้องดังนี้
- Apache httpd 2.2 (http://httpd.apache.org/)
- SVN 1.4.4 (http://subversion.tigris.org/files/documents/15/38212/svn-win32-1.4.4.zip)
ขั้นตอนการติดตั้ง
- ติดตั้ง Apache httpd 2.2 ด้วยการติดตั้งแบบ typical ถ้าเป็น windows os จะติดตั้งที่ C:\Program Files\Apache Software Foundation\Apache2.2
- ลง svn 1.4.4 (ถ้าเป็น linux ต้องลง subversion 1.4.4, subversion-server 1.4.4 และ subversion-tools 1.4.4) ด้วยการ unzip file ลงในที่ต้องการ เช่น C:\svn-win32-1.4.4
- แก้ไฟล์ใน \Apache Software Foundation\Apache2.2\conf\httpd.conf (หรือตาม path ที่ลงไว้ในข้อ 1)
- uncomment 2 บรรทัดคือ
LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so
- บรรทัดสุดท้ายให้ต่อท้ายเพิ่มคือ
LoadModule dav_svn_module "C:\svn-win32-1.4.4\bin\mod_dav_svn.so" LoadModule authz_svn_module "C:\svn-win32-1.4.4\bin\mod_authz_svn.so" <Location /svn> DAV svn SVNParentPath D:/SVN </Location>
ข้อสังเกต ถ้าจะให้ชื่อ path url มีชื่ออย่างไรให้แก้ใน <Location /url ที่ต้องการ> เช่น จะได้ path เป็น http://xxx/svnrepo/yyy
ข้อสังเกต path folder ขึ้นอยู่กับ OSที่ติดตั้ง อาจเปลี่ยน slash เป็น backslash - uncomment 2 บรรทัดคือ
- restart Apache httpd กรณี windows สามารถเลือก shortcut ใน start -> AllPrograms -> Apache HTTP Server 2.2.6 -> Control Apache Server -> restart ถ้าในกรณี linux สามารถเรียกใช้คำสั่ง httpd ” -w -n “Apache2.2″ -k restart
ข้อสังเกต คำว่า “Apache2.2″ คือชื่อ apache service ที่ทำงานในระบบ - การเพิ่มระบบ Authenticate โดยการแก้ไขดังนี้
<Location /svn> DAV svn SVNParentPath D:/SVN AuthType Basic AuthName "Subversion repository" AuthUserFile D:/SVN/svn-auth-file Require valid-user </Location>
ข้อสังเกต ในบรรทัด AuthUserFile คือสถานที่เก็บไฟล์จัดเก็บ username และ password(ที่ encryptแล้ว)
ข้อสังเกต path folder ขึ้นอยู่กับ OSที่ติดตั้ง อาจเปลี่ยน slash เป็น backslash - การสร้าง username และ password สามารถใช้ htpasswd ผ่านทาง command line ด้วย path \Apache Software Foundation\Apache2.2\bin\ htpasswd.exe สำหรับ windows และสำหรับ linux ให้ค้นหา shell script ?htpasswd?
- สร้าง user ใหม่ด้วยไฟล์จัดเก็บ username ใหม่(สร้างใหม่)
htpasswd -cm D:\SVN\svn-auth-file harry(ชื่อ username ที่ต้องการ)
จากนั้น จะมีบรรทัดให้กรอก passwordNew password: ***** Re-type new password: ***** Adding password for user harry
- สร้าง user ใหม่ด้วยไฟล์จัดเก็บ username เก่า(เพิ่มรายชื่อ)
htpasswd -m D:\SVN\svn-auth-file sally (ชื่อ username ที่ต้องการ)
จากนั้น จะมีบรรทัดให้กรอก password เหมือนการสร้าง file ใหม่
- สร้าง user ใหม่ด้วยไฟล์จัดเก็บ username ใหม่(สร้างใหม่)
คำสั่งในกลุ่ม svnadmin ที่ควรรู้จัก
สามารถเรียกได้ผ่าน command line ด้วย path \svn-win32-1.4.4\bin\svnadmin
- create คือการสร้าง repository ใหม่ เช่น
- svnadmin create D:\svn\customer (ต้องการสร้าง repository ชื่อ customer ภายใน folder svn)
- dump คือการรวมไฟล์ใน repository ที่ต้องการเป็นไฟล์เดียว(dump file) เพื่อการ backup หรือเคลื่อนย้ายไป repository ใหม่ เช่น
- svnadmin dump C:\svnrepo\customer > D:\customer (จะเป็นการคัดลอกและรวมไฟล์ทุกเวอร์ชั่น มารวมไว้ในไฟล์เดียวที่ชื่อว่า customer ในpath D:\)
- svnadmin dump C:\svnrepo\customer – - reversion 100:200 > D:\customer (คัดลอกและรวมไฟล์ในเวอร์ชั่นแรก กับ เวอร์ชั่น 100 ถึง 200 ที่เป็นส่วนต่างเท่านั้น)
- svnadmin dump C:\svnrepo\customer – - reversion 100:200 ? incremental > D:\customer (คัดลอกและรวมไฟล์เฉพาะเวอร์ชั่น 100 ถึง 200 เท่านั้น)
- load คือการแตก dump file มาสู่ repository เช่น
- svnadmin load C:\svnrepo\customerNew < C:\customer (ทำการโหลด dump file จาก C:\customer สู่ repository ใหม่ C:\svnrepo\customerNew )
ที่กล่าวมาคือขั้นตอนการติดตั้ง http svn และคำสั่ง svn ที่เกี่ยวข้องกับการติดตั้งเท่านั้น ยังมีคำสั่งและความสามารถอื่นๆ ที่สามารถเพิ่มเข้ามาใช้งานได้อีก สามารถหาอ่านเพิ่มเติมได้จาก http://subversion.tigris.org/servlets/ProjectDocumentList ซึ่งเป็นแหล่งให้เอกสารหลัก สามารถใช้ค้นคว้าและอ้างอิงได้ หวังว่าบทความจะสามารถประยุกต์เข้ากับงานเพื่อเพิ่มประสิทธิภาพงานได้

Leave comment...