วันพฤหัสบดี, มีนาคม 07, 2556

HOWTO: Using Subversion 1.6 with OSX 10.8, downgrade svn 1.7 to 1.6

วิธีใช้งาน Subversion 1.6.x กับ OSX 10.x หรือลด version จาก 1.7 เป็น 1.6

(ทดสอบแล้วกับ OSX 10.8)

    ผมใช้ osx 10.8 และติดตั้ง macports หรือ port เอาไว้ด้วย ติดตั้ง nmap แล้วมันลง subversion 1.7 แถมมาให้ด้วย แต่ทีนี้ projects/source codes ทั้งหลายที่ทำงานอยู่ยังคงต้องใช้ svn 1.6; (ผมจะใช้ keyword svn แทน subversion มันสั้นกว่า ^^) เนื่องจากผมใช้ svnant ด้วย, ตัว svnClientAdapter เค้ายังไม่รองรับ svn 1.7 จึงยังคงต้องใช้ svn client 1.6 อยู่


   ขั้นแรก เราต้องมี svn client version 1.6 ซะก่อน ไปดาวโหลดได้จาก website ของ Wandisco เลยครับ Vanilla Subversion 1.6.20 & 1.7.8 certified by WANdisco มี certified แปะไว้ด้วย วิธีติดตั้งก็ง่ายๆ เค้าทำเป็น pkg ไว้แล้ว ทำเหมือนติดตั้ง package อื่นๆของ osx เลยครับ
   พอติดตั้งเสร็จเค้าจะบอกให้เราเพิ่ม path เข้าไปที่ .profile ของเราด้วย ประมาณนี้
...
export PATH=/opt/subversion/bin:$PATH
... 

   ถ้าเรียก terminal ขึ้นมาอีกครั้ง, หลังจากเพิ่ม PATH เข้าไปแล้ว เมื่อสั่ง svn help เราจะได้ประมาณนี้ 

$ svn --version
svn, version 1.6.18 (r1303927)
   compiled Nov  2 2012, 23:47:41

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
แสดงว่าเรามี svn version 1.6 ติดตั้งแล้ว 

  ถ้าคุณเหมือนผมคือติดตั้ง nmap ผ่านทาง macports หรือใช้ macports แล้วมันดันติดตั้ง svn 1.7 ให้ หากเรียกด้วยคำสั่งก่อนหน้านี้ มันจะแสดงเลข version เป็น 1.7 

ส่วนวิธีเอาออกก็ทำแบบนี้

ทดสอบดูก่อนว่ามี svn ทีถูกติดตั้งโดย port

$port installed subversion
The following ports are currently installed:
  subversion @1.7.8_1
  subversion @1.7.8_2 (active) 

สังเกตทีี (active) แสดงว่ามันถูกใช้งานอยู่ ปิดหรือ de-active ได้ด้วยคำสั่ง 

$ sudo port deactivate subversion @1.7.8_2
Password:
--->  Deactivating subversion @1.7.8_2
--->  Unable to deactivate subversion @1.7.8_2, the following ports depend on it:
--->   nmap @6.25_1
Error: org.macports.deactivate for port subversion returned: Please uninstall the ports that depend on subversion first.
Please see the log file for port subversion for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_registry_portfiles_subversion_1.7.8_2/subversion/main.log
Warning: Failed to execute portfile from registry for subversion @1.7.8_2
--->  Deactivating subversion @1.7.8_2
--->  Unable to deactivate subversion @1.7.8_2, the following ports depend on it:
--->   nmap @6.25_1
Error: port deactivate failed: Please uninstall the ports that depend on subversion first.

จะเห็นว่าครั้งแรกมันจะไม่ยอมปิดให้เรา เพราะ nmap ต้องใช้ ผมเลยตัดใจไม่ใช้ nmap ด้วยสั่งใหม่ดังนี้ 

$ sudo port deactivate nmap @6.25_1 subversion @1.7.8_2
--->  Deactivating nmap @6.25_1
--->  Cleaning nmap
--->  Deactivating subversion @1.7.8_2
--->  Cleaning subversion

ทดสอบดูอีกว่ามี svn ทีถูกติดตั้งโดย port? จะเห็นว่ามันไม่(มี) active แล้ว
$ port installed subversion
The following ports are currently installed:
  subversion @1.7.8_1
  subversion @1.7.8_2

สบายใจ เมื่อสั่ง svn ทีนี้จะเป็นคำสั่งของ version 1.6 แล้วหล่ะครับ