เป็นแนวทางปฏิบัติที่ดีที่สุดในการส่งไฟล์. sln ไปยังตัวควบคุมแหล่งที่มา เมื่อใดที่เหมาะสมหรือไม่เหมาะสมที่จะทำ
อัปเดต คำตอบมีจุดดีหลายประการ ขอบคุณสำหรับคำตอบ!
เป็นแนวทางปฏิบัติที่ดีที่สุดในการส่งไฟล์. sln ไปยังตัวควบคุมแหล่งที่มา เมื่อใดที่เหมาะสมหรือไม่เหมาะสมที่จะทำ
อัปเดต คำตอบมีจุดดีหลายประการ ขอบคุณสำหรับคำตอบ!
คำตอบ:
ฉันคิดว่ามันชัดเจนจากคำตอบอื่น ๆ ว่าไฟล์โซลูชันมีประโยชน์และควรมีความมุ่งมั่นแม้ว่าจะไม่ได้ใช้สำหรับงานสร้างอย่างเป็นทางการก็ตาม สะดวกสำหรับทุกคนที่ใช้ฟีเจอร์ Visual Studio เช่น Go To Definition / Declaration
โดยค่าเริ่มต้นจะไม่มีเส้นทางสัมบูรณ์หรือสิ่งประดิษฐ์เฉพาะเครื่องอื่น ๆ (น่าเสียดายที่เครื่องมือเพิ่มเติมบางอย่างไม่ได้รักษาคุณสมบัตินี้ไว้อย่างถูกต้องเช่น AMD CodeAnalyst) หากคุณระมัดระวังในการใช้เส้นทางสัมพัทธ์ในไฟล์โครงการของคุณ (ทั้ง C ++ และ C #) เครื่องมือเหล่านี้จะไม่ขึ้นกับเครื่อง เกินไป.
คำถามที่น่าจะเป็นประโยชน์กว่าคือคุณควรยกเว้นไฟล์อะไร นี่คือเนื้อหาของไฟล์. gitignore สำหรับโครงการ VS 2008 ของฉัน:
*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/
(รายการสุดท้ายสำหรับผู้สร้างโปรไฟล์ AMD CodeAnalyst เท่านั้น)
สำหรับ VS 2010 คุณควรยกเว้นสิ่งต่อไปนี้:
ipch/
*.sdf
*.opensdf
ใช่ - ฉันคิดว่ามันเหมาะสมเสมอ การตั้งค่าเฉพาะของผู้ใช้อยู่ในไฟล์อื่น ๆ
ใช่คุณควรทำสิ่งนี้ ไฟล์โซลูชันมีเฉพาะข้อมูลเกี่ยวกับโครงสร้างโดยรวมของโซลูชันของคุณ ข้อมูลดังกล่าวเป็นข้อมูลส่วนกลางสำหรับโซลูชันและมักจะเป็นข้อมูลทั่วไปสำหรับนักพัฒนาซอฟต์แวร์ทั้งหมดในโครงการของคุณ
ไม่มีการตั้งค่าเฉพาะผู้ใช้
คุณควรมีไว้อย่างแน่นอน นอกเหนือจากเหตุผลที่คนอื่นกล่าวถึงแล้วจำเป็นต้องสร้างขั้นตอนเดียวของโครงการทั้งหมดให้เป็นไปได้
โดยทั่วไปฉันยอมรับว่าควรเช็คอินไฟล์โซลูชันอย่างไรก็ตามที่ บริษัท ที่ฉันทำงานให้เราได้ทำสิ่งที่แตกต่างออกไป เรามีพื้นที่เก็บข้อมูลขนาดใหญ่พอสมควรและนักพัฒนาทำงานในส่วนต่างๆของระบบเป็นครั้งคราว เพื่อสนับสนุนวิธีการทำงานของเราเราจะมีไฟล์โซลูชันขนาดใหญ่หนึ่งไฟล์หรือไฟล์ที่เล็กกว่าหลายไฟล์ ทั้งสองอย่างนี้มีข้อบกพร่องเล็กน้อยและจำเป็นต้องมีการทำงานด้วยตนเองในส่วนของนักพัฒนา เพื่อหลีกเลี่ยงปัญหานี้เราได้สร้างปลั๊กอินที่จัดการทั้งหมดนั้น
ปลั๊กอินช่วยให้นักพัฒนาแต่ละรายตรวจสอบชุดย่อยของแผนผังแหล่งที่จะทำงานได้ง่ายๆโดยการเลือกโครงการที่เกี่ยวข้องจากที่เก็บ จากนั้นปลั๊กอินจะสร้างไฟล์โซลูชันและแก้ไขไฟล์โครงการได้ทันทีสำหรับโซลูชันที่กำหนด นอกจากนี้ยังจัดการการอ้างอิง กล่าวอีกนัยหนึ่งนักพัฒนาทั้งหมดต้องทำคือเลือกโครงการที่เหมาะสมจากนั้นไฟล์ที่จำเป็นจะถูกสร้าง / แก้ไข นอกจากนี้ยังช่วยให้เราปรับแต่งการตั้งค่าอื่น ๆ เพื่อให้ได้มาตรฐานของ บริษัท
นอกจากนี้เรายังใช้ปลั๊กอินเพื่อสนับสนุนนโยบายการเช็คอินต่างๆซึ่งโดยทั่วไปจะป้องกันไม่ให้ผู้ใช้ส่งรหัสที่ผิดพลาด / ไม่เป็นไปตามข้อกำหนดไปยังที่เก็บ
ใช่สิ่งที่คุณควรกระทำคือ:
สิ่งที่คุณไม่ควรกระทำ ได้แก่ :
ใช่ควรเป็นส่วนหนึ่งของการควบคุมแหล่งที่มา เมื่อใดก็ตามที่คุณเพิ่ม / ลบโครงการออกจากแอปพลิเคชันของคุณ. sln จะได้รับการอัปเดตและจะเป็นการดีหากมีการควบคุมแหล่งที่มา จะช่วยให้คุณสามารถดึงรหัสแอปพลิเคชัน 2 เวอร์ชันกลับมาและทำการสร้างได้โดยตรง (ถ้าจำเป็นทั้งหมด)
ภายใต้สถานการณ์ส่วนใหญ่ควรยอมรับไฟล์. sln กับการควบคุมแหล่งที่มา
หากไฟล์. sln ของคุณถูกสร้างขึ้นโดยเครื่องมืออื่น (เช่น CMake) แสดงว่าอาจไม่เหมาะสมที่จะนำไฟล์เหล่านี้ไปใช้ในการควบคุมแหล่งที่มา
ใช่คุณต้องการรวมไฟล์. sln ไว้เสมอซึ่งจะมีลิงก์ไปยังโครงการทั้งหมดที่อยู่ในโซลูชัน
เราทำเพราะทำให้ทุกอย่างตรงกัน โครงการที่จำเป็นทั้งหมดตั้งอยู่ด้วยกันและไม่มีใครต้องกังวลว่าจะพลาดโครงการใดไป บิลด์เซิร์ฟเวอร์ของเรา (Ant Hill Pro) ยังใช้ sln เพื่อกำหนดว่าจะสร้างโปรเจ็กต์ใดสำหรับรีลีส
โดยปกติเราจะใส่ไฟล์โซลูชันทั้งหมดไว้ในไดเร็กทอรีโซลูชัน ด้วยวิธีนี้เราแยกโซลูชันออกจากโค้ดเล็กน้อยและง่ายต่อการเลือกโปรเจ็กต์ที่ฉันต้องดำเนินการ
กรณีเดียวที่คุณจะไม่เก็บไว้ในการควบคุมแหล่งที่มาคือถ้าคุณมีโซลูชันขนาดใหญ่ที่มีหลายโครงการซึ่งอยู่ในการควบคุมแหล่งที่มาและคุณต้องการสร้างโซลูชันขนาดเล็กกับบางโครงการจากโซลูชันหลักสำหรับบางโครงการ ข้อกำหนดชั่วคราวส่วนตัว
ใช่ - ทุกสิ่งที่ใช้ในการสร้างผลิตภัณฑ์ของคุณควรอยู่ในการควบคุมแหล่งที่มา
เราเก็บหรือแก้ไขไฟล์ใน TFS Version Control แต่เนื่องจากหรือโซลูชันหลักมีขนาดใหญ่มากนักพัฒนาส่วนใหญ่จึงมีโซลูชันส่วนบุคคลที่มีเฉพาะสิ่งที่ต้องการเท่านั้น ไฟล์โซลูชันหลักส่วนใหญ่จะใช้โดยบิลด์เซิร์ฟเวอร์
.slns เป็นสิ่งเดียวที่เราไม่มีปัญหาใน tfs!