โครงสร้างของ Project subversion ของผมเป็นดังนี้ครับ
__/Projects _____/ProjectWebA ___________/branches ___________/tags ___________/trunks _____/ProjectWebB ___________/branches ___________/tags ___________/trunks
ถ้าเราจะเอามาใช้กับการเขียนโปรแกรมบนเว็บ ที่ในเครื่องเราเองนั้นก็จะมี Web Server ในตัวเพื่อใช้ทดสอบ ของผมใช้ XAMPP ผมอยากจะทราบว่าโดยปกตินั้น เขานำเอา SVN มาใช้ในงานแบบนี้ยังไงครับ คือ มันจะต้องมี folder ที่ใว้ทดสอบ run web เช่น
/home/projectA /home/projectB
ผมใช้ vhost ของ apache ในการเรียก URL เช่น http://project-a.test , http://project-b.test โดยทั่วไป เขาใช้ Trunk เป็น web directory เลยหรือเปล่าครับ โดยเวลาแก้ก็แก้ใน Trunk ใน workcopy ของเราเลย
หรือว่า
ใน trunk นั้นเป็นแค่ Folder สำหรับเก็บ workcopy เวลาจะทดสอบก็ต้อง copy file ที่ต้องการแก้ไข ไปแก้ใน /home/projectA , /home/projectB เอาเอง เวลาแก้เสร็จก็ copy ไปใว้ใน Trunk แล้วค่อย commit ไปแบบนี้หรือเปล่าครับ
ผมกำลังสับสนการใช้ structure ของ svn พอสมควร ตอนนี้ที่ทำคือ ให้ apache มัน มาเรียก webroot ที่ trunk ของ Project นั้นๆเลยครับ
แนะนำทีครับว่าปกติหรือมาตราฐานแล้วเขาใช้ยังไงกันแน่
ให้ /home เป็น http root มี
magicbank Tue, 10/11/2009 - 16:48
ให้ /home เป็น http root มี projectA และ projectB เป็น sub directory
ทำการ check out แบบนี้
cd /home/projectA
svn co (svn|https)://url/Projects/ProjectWebA/trunks
cd /home/projectB
svn co (svn|https)://url/Projects/ProjectWebB/trunks
หรือจะลดความซับซ้อนของ directory ลงอีกหน่อยก็
/Projects
____/branches
____/tags
____/trunks
________/projectA
________/projectB
ทำการ check out แบบนี้
cd /home/projectA
svn co (svn|https)://url/Projects/trunks/projectA
cd /home/projectB
svn co (svn|https)://url/Projects/trunks/projectB
เวลาจะเอาไป deploy ก็ลบทุก folder ที่ชื่อ .svn ออกก่อนน่ะครับ ไม่งั้นขนาด project จะใหญ่จนน่าตกใจ ถ้าหาไม่เจอแสดงว่ามันถูกซ่อนอยู่ครับ
ถามว่า ProjectA และ ProjectB
tekkasit Tue, 10/11/2009 - 19:54
ถามว่า ProjectA และ ProjectB เป็นโครงการที่มีความสัมพันธ์เกี่ยวข้องกันรึเปล่าครับ ถ้าไม่มี แยกก็ได้มั้งครับ
ไม่แนะนำให้ Apache
kowito2 Fri, 13/11/2009 - 12:54
ไม่แนะนำให้ Apache เรียกโดยตรงนะครับ ไม่เข้าท่าแน่ๆ แนะนำว่าควรทำ Deploy script ไว้ เพื่อ export ไปบน Test server ต่างหาก
ถ้าจะ Test ที่ trunk ลองทำอย่างนี้
สร้างไฟล์ Deploy script ชื่อ deploy
แล้วหลังจากนั้นก็ให้ vhost ชี้ไปที่ ~/ProjectATest
เมื่อต้องการจะ Deploy ก็เพียงแต่รัน Script เท่านั้น Deploy Script ก็จะลบของเก่าออก และ Export ของใหม่ลงไปแทนที่ ไม่ต้องไปแก้ไขอะไรอีก สำหรับ Project อื่นๆก็ทำแบบเดียวกันครับ