คำถาม
มีเหตุผลที่ถูกต้องหรือไม่ที่จะไม่ใช้ SVN ในการปรับใช้การผลิตหรือนี่เป็นเพียงกรณีของการตั้งค่าส่วนตัวและไม่มีกรณีจริงต่อ SVN หรือไม่?
พื้นหลัง
สถานที่ทำงานของฉันมีวัฒนธรรมของการติดแท็กใน SVN และจากนั้นปรับใช้การวางจำหน่ายเหล่านั้นโดยตรงกับเว็บเซิร์ฟเวอร์ต่างๆที่ใช้svn co
หรือsvn switch
รวมถึงการผลิตโดยตรง
ฉันเองมีปัญหากับสิ่งนี้เนื่องจากฉันเชื่อว่าหากไม่ได้ใช้สคริปต์บิลด์หรือปรับใช้หรือบางรูปแบบหรือการปรับใช้อัตโนมัติคุณจะสูญเสียการตั้งค่าสภาพแวดล้อมการรวมเนื่องจากไม่มีเอกสาร อย่างไรก็ตามยิ่งไปกว่านั้นฉันมีความรู้สึกว่าอาจมีอันตรายซ่อนเร้นในการทำสิ่งที่ถูกมองข้ามบางสิ่งที่ยังไม่ได้ไปด้านหลังหัวน่าเกลียดของมัน
ฉันได้นำข้อกังวลของฉันไปใช้กับเจ้าหน้าที่ปฏิบัติงานที่รับผิดชอบในการปรับใช้โค้ดให้เข้ากับสภาพแวดล้อมต่างๆของเรา (การจัดเตรียมการเตรียมการการผลิต) ฯลฯ ข้อโต้แย้งของพวกเขาค่อนข้างมากว่ามันใช้งานได้ค่อนข้างดี
แก้ไข:
สิ่งที่ฉันหมายถึงเกี่ยวกับการสร้างและปรับใช้:
ตัวอย่างเช่นหากผู้พัฒนาต้องการเพิ่มการตั้งค่า web.config สำหรับสภาพแวดล้อมเฉพาะ โดยทั่วไปแล้ว Web.config จะไม่ถูกเก็บไว้ใน svn ดังนั้นไฟล์เหล่านี้จะถูกอัปเดตด้วยตนเองโดยไม่มีสคริปต์การสร้างอัตโนมัติในรูปแบบใด ๆ ดังนั้นหากพวกเขาหายไปหรือ OPS ลืมเพิ่มเขตข้อมูลลงใน web.config สำหรับรุ่นแล้วคุณมีปัญหา
บิลด์สคริปต์ที่บอกว่าใช้ XMLPoke เพื่อสร้าง web.config ที่เหมาะสมสำหรับสภาพแวดล้อมเฉพาะนั้นเหมาะสมที่สุดเมื่อคุณมีสคริปต์เวอร์ชันที่สามารถบันทึกการเปลี่ยนแปลงทั้งหมดที่จำเป็นสำหรับแต่ละสภาพแวดล้อมของคุณ
วิธีสร้างและปรับใช้ปัจจุบัน
สำหรับโครงการที่สงสัยว่าผู้พัฒนาสร้างการเผยแพร่ด้วยตนเองโครงการอื่น ๆ จะมีขั้นตอนการสร้างอัตโนมัติด้วย NANT หรือ MSBuild ซึ่งก็โอเค
การย้ายฐานข้อมูลสำหรับโครงการส่วนใหญ่ผ่านสคริปต์ DB หรือสคริปต์การย้ายข้อมูล (Migrator.NET) หรือแพคเกจ CMS
โดยปกติ CI จะดำเนินการโดย Team City ตามการเช็คอินเรามีกระบวนการตรวจสอบรหัสว่าตั๋วทั้งหมดจะทำในสาขาและจากนั้นตรวจสอบเพื่อตรวจสอบความถูกต้องและคุณภาพ / ความถูกต้อง / ก่อนที่จะตรวจสอบในลำต้น
อย่างไรก็ตามการปรับใช้รหัสจริงมักจะผ่านทาง SVN อย่างใดอย่างหนึ่งไม่ว่าจะเป็นการเช็คเอาต์ของรุ่นที่ติดแท็กหรือโดยทั่วไปแล้วจะเป็น SVN Switch นี่คือสิ่งที่แปลกประหลาดกับฉันที่เรากำลังใช้พื้นที่เก็บข้อมูลของเราเป็นส่วนหนึ่งของกระบวนการปรับใช้
โดยทั่วไปการกำหนดค่าจะไม่เปลี่ยนแปลงบ่อยนักสิ่งเดียวที่จะอยู่ในไฟล์กำหนดค่าคือข้อมูลเฉพาะของสภาพแวดล้อม ทุกอย่างอื่นอยู่ใน db
อย่าเข้าใจฉันผิดงานนี้ทำงานได้ดี อย่างไรก็ตามฉันต้องการลองและผลักดันการสร้างและปรับใช้อัตโนมัติ ฉันเคยใช้สิ่งนี้กับ Rails และ Capistrano และสำหรับโครงการส่วนตัวที่ใช้ Cygwin, Nant และ SSH
ที่สำคัญกว่านั้นฉันต้องการอาร์กิวเมนต์ที่ถูกต้องเฉพาะเจาะจงเพื่อให้เพื่อนร่วมงานของฉันเปลี่ยนไปใช้การสร้างและปรับใช้แบบอัตโนมัติ
หรือไม่มีข้อโต้แย้งที่ถูกต้องจริงกับการใช้ SVN โดยเฉพาะเพื่อปรับใช้กับการผลิต?