Friday, March 27, 2009

Install subversion server under XP

กันเหนียว หรือ ทำงานเป็นทีมอย่าง มีประสิทธิภาพ

Version control :

Enviroment :

Prerequire

1. Subversion for windows svn-1.4.6-setup.exe

Installation

1. double click svn-1.4.6-setup.exe default path is "C:\Program Files\Subversion" but we can change it to another path



2. create repository for svn server assume at D:\Repository (it similar with root folder of iis)

> mkdir D:\Repository

3. Set path "C:\Program Files\Subversion\bin" to path of system

# Control Panel => System => Advanced => Enviroment Variables

# at "System variables" double click at "Path" then "Variable value"

# append ";C:\Program Files\Subversion\bin" and click OK



4. check in just configed path by open CMD and type "path" expect output "C:\Program Files\Subversion\bin"

5. install subversion as service in windows xp by about this

> sc create svnserver binpath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root D:\Repository" displayname= "svnserver" depend= tcpip start= auto

6. start svnsever service by Run => services.msc and Look at svnserver click start for svnserver or via commanline

> sc start svnserver or net start svnserver



7. check out working of svn server by this command this via check by look listened port number

> netstat -na|find ":3690"

# expect result is ":3690" TCP 0.0.0.0:3690 0.0.0.0:0 LISTENING



8. if have no any problems until step 7 it mean successfully

# วิธีการติดตั้งที่ได้พล่าม ไปเรื่อยเนี๋ยเป็นแค่ ทางเลือกหนึ่งเท่านั้นนะ ยังมีวิธีอื่นอีก เช่น เราไม่ต้องการให้ svn server เป็น service ใหน windows แต่เราต้องการรันแบบครั้งคราวก็คำสั่งนี้เลย

> start svnserve --daemon --root d:\repository

# หรือ อีกทางคือ ทำผ่าน SVNService ได้ พยายามใช้อยู่นะ แต่ทำไม่เป็นอ่ะ คือ ทำเท่าไหร่ 3690 ก็ไม่เปิดสักที

# คำสั่งเกี่ยวกับ service ที่น่ารู้

> sc config svnservice start= auto

> sc stop|start|delete svnservice

# สังเกตปะ start= แล้วเคาะ spacebar หนึ่งครั้งแล้วตามด้วย auto แล้ว enter

# อีกอย่างก่อน จะไปเรื่องการใช้งานพื้นฐาน svn port มาตรฐานของ svn server คือ 3690 เด้อ แต่เห็นเค้า(ในอินเทอร์เน็ต) บอกว่า Apache มี mod สำหร้บ svn หว่า คือ เราสามารถใช้ svn ผ่าน port 80 ว่างั้น


Usage svn client by basic command line

# หลังจากได้ทำการติดตั้ง svn server แหละ จะไม่เขียนการใช้งานเบื้องต้นก็กระไรอยู่นะเนี๋ย เขียนเป็นภาษาอังกฤษ แล้วรู้สึกหน้ามืดอยู่พักใหญ่ - -'

1. สร้าง project สำหรับเก็บงานชิ้นใหม่ ใน repository เราสิครับ

> svnadmin create d:\Repository\project

# มองดูก็คล้ายๆ กับการสร้าง virtual host ของ iis นะ

# ผลที่จะเกิดขึ้นคือ เราจะได้ folder ใหม่คือ project ซึ่งในนั้นจะมี folders และ files ประมาณเนี๋ย

folders = conf, dav, db ,hooks และ locks
files = format, README.txt

2. ที่นี้มาดูที่งานเรามั่ง สมมุติว่า งานเราอยู่ที่ folder C:\MyWork\ ซึ่งยังว่างๆ อยุ่ไม่มีไฟล์อาไรเลยนะให้เราสั่งประมาณนี้ประนี้สำหรับจะลิ้ง C:\MyWork\ กับ svn server

C:\MyProject>svn checkout svn://localhost/project

# ที่นี้ถ้าทุกอย่างโอเค ใน C:\MyProject ก็จะมี project folder ขึ้นมาอันหนึ่ง

3. เมื่อเรา link ระหว่าง C:\MyProject กับ svn://localhost/project แล้วลองเพิ่มไฟล์เข้า svn server ดังนี้

# ทดสอบโดยการสร้างไฟล์ a.txt ไปวางที่ C:\MyProject\project a.txt

# ทำการเพิ่มไฟล์ a.txt ไปที่ svn server ของเราโดย

C:\MyProject\project>svn add *

# ใช้ * แทนไฟล์ทั้งหมดใน project เราสามารถเปลี่ยน * เป็น a.txt ได้

4. คำสั่งที่น่าสนใจอื่นๆ

# หลังจากเพิ่มแหละทดสอบ update ไฟล์ a.txt ของเราดู อธิบายเพิ่มให้นิดหน่อย การ update คือ การดึง version ล่าสุดมาทับบนเครื่องเราไง

C:\MyProject\project>svn udpate *

# ทดสอบ commit เค้าหน่อยแล้วกัน การ commit ก็คือการที่เราจะนำไฟล์ที่เราได้แก้แล้วขึ้นไปยัง svn server ไง

C:\MyProject\project>svn commit * -m "test commit"

svn: Commit failed (detailts follow):
svn: Authorization failed

# แง่ว failed ซะงั้น details follow นั่นแหละ ให้เราเข้าไปที่

D:\Repository\project\conf

# ทำการแก้ข้อมูลในไฟล์ svnserve.conf โดยเอาเครื่อง # ออกซะหน้าบรรทัดเนี๋ย anon-access = read แล้วทำการเปลี่ยนเป็น anon-access = write บันทึกการเปลี่ยนค่าสิครับ

# การแก้ไขเนี๋ยคือการตั้งให้ anonymous สามารถ upload ไฟล์ขึ้น svn server ได้ประมาณนั้น อันนี้ต้องศึกษาให้ดีหน่อยสำหรับเรื่อง security นะ

# สั่ง commit ใหม่สิ (-m คือ message ใช้อธิบายการ commit ในแต่ละครั้งไง หรือบอกว่าเราแก้อาไรนั่นแหละ)

C:\MyProject\project>svn commit * -m "test commit"

# เมื่อเราทำการแก้ไขไฟล์ a.txt แล้วเราก็ต้อง commit ไปเรื่อยๆ ไง อีกอย่างคือ เค้าจะบอกด้วยว่า การ commit แต่ละครั้ง เป็น version (r[n])อาไรด้วย

# ถ้าต้องการดูรายละเอียดการแก้ไข a.txt เราสามารถใช้คำสั่ง log

C:\MyProject\project>svn log a.txt

# คำสั่งสำหรับดูว่ามีไฟล์อาไรแล้วมั่งบน svn server ผ่าน list

C:\MyProject\project>svn list svn://localhost/project

# เมื่อเราทำการแก้ไข a.txt ไปแล้วนึกได้ว่า ตูแก้ผิดนี่น่าอยาก กับไปก่อนหน้าเนี๋ย เราต้องใช้ revert ว่างั้น

C:\MyProject\project>svn revert a.txt

# ที่นี้ถ้าเราต้องการลบไฟล์ a.txt ทั้งที่ svn server(ไม่แน่ใจ) และ ที่เครื่องเราก็ใช้คำสั่ง

C:\MyProject\project>svn delete --force *

# คำสั่งรุ้แค่เนี๋ยเองหว่า เราสามารถดูคำสั่ง svn ทั้งหมดได้จาก > svn help

# หรือโหลด doc ของ TortoiseSVN มาอ่านก็น่าจะดี

# ลืมไปอีกเรื่องคือ ถ้าเราต้องการยกเลิก link ระหว่าง C:\MyProject\project กับ svn://localhost/project

# ทำได้โดย 1. การ export 2. ลบไฟล์ .svn ทั้งหมดที่อยู่ภายใต้ C:\MyProject\project

Notes:
  • ถ้าเรา project repository ลงใน svn server ด้วยโปรแกรม client เช่น TurtoiseSVN แล้ว ลองใช้ svn client เรียกไปที่ svn://host/[projectname] แบบนี้ มีปัญหาเรื่อง format อาไรของเค้าเนี๋ยอ่ะ
  • อีกกรณีคือ สร้าง project repository ด้วย TurtoiseSVN แต่ ใช้ RapidSVN ทำลิ้ง local ไป file:///[path] ก็จะไม่สามารถทำได้เช่นเดียวกัน
  • แ่ต่ถ้าสร้าง project repository ด้วย Turtoise แล้วใช้ Turtoise สร้าง link เองจะสามารถใช้การได้
  • สรุป ต้องสร้าง project repository ด้วย > svnadmin create [path] จะสามารถใช้ client เรียกผ่านได้ทั้ง local และ 3690
  • เห็นอีกตัวที่น่าสนใจก็ GIT หว่าเห็นเค้าว่า คนสร้าง linux เป็นคิดสร้าง GIT ด้วยนะ
  • แต่จะให้ง่ายลงตัวเนี๋ยจะดีกว่ามั้ยหว่า http://www.visualsvn.com คิดว่าลงง่ายกว่านะ
  • และอีกตัวที่เพื่อน koi แนะนำมาก็ sourcesafe

Manuals :

Under linux :

Refer from:
Related Link:

No comments:

Post a Comment

Popular Posts