Http SVN

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 ที่เกี่ยวข้องดังนี้

ขั้นตอนการติดตั้ง

  1. ติดตั้ง Apache httpd 2.2 ด้วยการติดตั้งแบบ typical ถ้าเป็น windows os จะติดตั้งที่ C:\Program Files\Apache Software Foundation\Apache2.2
  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
  3. แก้ไฟล์ใน \Apache Software Foundation\Apache2.2\conf\httpd.conf (หรือตาม path ที่ลงไว้ในข้อ 1)
    1. uncomment 2 บรรทัดคือ
      LoadModule dav_module modules/mod_dav.so
      LoadModule dav_fs_module modules/mod_dav_fs.so
    2. บรรทัดสุดท้ายให้ต่อท้ายเพิ่มคือ
      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

  4. 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 ที่ทำงานในระบบ
  5. การเพิ่มระบบ 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

  6. การสร้าง username และ password สามารถใช้ htpasswd ผ่านทาง command line ด้วย path \Apache Software Foundation\Apache2.2\bin\ htpasswd.exe สำหรับ windows และสำหรับ linux ให้ค้นหา shell script ?htpasswd?
    1. สร้าง user ใหม่ด้วยไฟล์จัดเก็บ username ใหม่(สร้างใหม่)
      htpasswd -cm D:\SVN\svn-auth-file harry(ชื่อ username ที่ต้องการ)
      จากนั้น จะมีบรรทัดให้กรอก password

      New password: *****
      Re-type new password: *****
      Adding password for user harry
      
    2. สร้าง user ใหม่ด้วยไฟล์จัดเก็บ username เก่า(เพิ่มรายชื่อ)
      htpasswd -m D:\SVN\svn-auth-file sally (ชื่อ username ที่ต้องการ)
      จากนั้น จะมีบรรทัดให้กรอก password เหมือนการสร้าง file ใหม่

คำสั่งในกลุ่ม 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...