ระบบควบคุมเวอร์ชันที่คุณโปรดปรานคืออะไร? [ปิด]


41

นี่เป็นคำถามการอภิปรายมากกว่าความพยายามที่แท้จริงในการระบุ "ดีที่สุด" เนื่องจากความแตกต่างอย่างชัดเจนตามความต้องการขององค์กร ฉันอยากรู้มากขึ้นเกี่ยวกับข้อโต้แย้งในความโปรดปรานของระบบที่แตกต่างกันในหมวดหมู่ (ส่วนกลางเทียบกับกระจาย, เปิดเทียบกับกรรมสิทธิ์ ฯลฯ )

ดังนั้นคุณคิดว่าระบบการควบคุมเวอร์ชันที่ดีที่สุดคืออะไร?


1
en.wikipedia.org/wiki/Comparison_of_revision_control_softwareเป็นตารางเปรียบเทียบที่ยอดเยี่ยมสำหรับสิ่งนี้ คำถามเพื่อการอภิปราย ... ชุมชน wiki?
Chris

4
คนแรกที่โพสต์ชื่อรับตัวแทน…นี่ควรเป็นวิกิชุมชน
takeshin


ไม่ได้สังเกตว่านี่เป็นวิกิชุมชนแล้ว
takeshin

คำตอบ:


81

หลายใจ

เพราะมันมีความสามารถที่ซับซ้อนในการแยกและรวมรหัสจึงเป็นวิธีที่ดีที่สุดที่ฉันเคยใช้ กระบวนทัศน์ของ DVCS ทั้งหมดนั้นสมเหตุสมผลมาก ฉันไม่ได้ใช้ Git แต่ฉันคิดว่ามันมีคุณสมบัติเช่นกัน


ฉันต้องลอง Mercurial สักพักเพราะฉันได้ลอง 2 จาก 3 ตัวใหญ่แล้วและเนื่องจาก Google Code ก็รองรับ ...
TheLQ

2
Mercurial นั้นหวานถ้าคุณใช้ Netbeans การรวม IDE นั้นสมบูรณ์แบบ
Seun Osewa

4
ฉันชอบ Mercurial เพียงเพราะ TortoiseHg เป็นผู้ใหญ่มากขึ้นกว่า TortoiseGit :-) (ประสบการณ์ทั้งบน Windows จะดีกว่ามากใน Mercurial เช่นกัน)
คณบดีฮาร์ดิ้ง

+1, ฉันแนะนำให้ทำ Mercurial ตัวหนาและใหญ่กว่าเดิม (อย่างที่ Gaurav ทำในคำตอบของเขา)
Tim Post

Mercurial ค่อนข้างหวาน ฉันและทีมของฉันใช้มันมาประมาณ 2 เดือนแล้วและมันก็มีอากาศบริสุทธิ์เมื่อเทียบกับ SVN
Gary Willoughby

72

Git

Git นั้นยอดเยี่ยมและฉันอยากจะแนะนำให้ทุกคนที่ทำงานในโครงการโอเพนซอร์ส: มันง่ายกว่ามากที่จะมีส่วนร่วมในการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ แบบครั้งเดียวกับโครงการบน Git โดยเฉพาะอย่างยิ่งหากโฮสต์ใน GitHub การส่งจดหมายเกี่ยวกับกับ SVN

ข้อแม้หนึ่งที่ยิ่งใหญ่สำหรับผู้ใช้ Windows: เครื่องมือ Windows ของ Git แต่สามารถใช้งานได้อย่างแน่นอน เมื่อฉันถูกบังคับให้ใช้ Windows ซักพักฉันลองใช้อินเทอร์เฟซ Windows ของ Mercurial ด้วยเครื่องมือการรวม Hg-Git ดังนั้นฉันจึงสามารถใช้ที่เก็บ Git ของฉันและพบว่าใช้งานได้ง่ายขึ้นมาก


5
ฉันคิดว่าเป็นสิ่งสำคัญที่จะบอกว่าคอมไพล์ยาก ฉันรักมันจริงๆ แต่ไม่ใช่สิ่งที่คุณสามารถใช้ในการเรียนรู้ได้ในสองสามวัน คุณต้องใช้มัน
ซักพัก

1
@Khelben - มีความจริงบางอย่างใช่ อย่างไรก็ตามมันก็ดูเหมือนจะมีจำนวนมากที่สุดของวรรณกรรม / บทความ / แบบฝึกหัดในเน็ตทุ่มเทให้กับมัน ฉันพบว่าหนังสือ Git ออกมาเป็นประจำ Mercurial - ไม่มากนัก (ใช้ Mercurial ที่นี่เป็นข้อเปรียบเทียบเนื่องจากมันมีหลายวิธีคล้ายกับ Git) ไม่สามารถพูดได้ว่าดีหรือไม่ดี แต่ดูเหมือนว่าผู้คนกำลังใช้งานอยู่
โกง

2
msysgit สามารถใช้งานได้ใน Windows

1
ฉันคิดว่าคอมไพล์ Mercurial ฯลฯ ค่อนข้างดี แต่ฉันไปหาคอมไพล์เป็นส่วนใหญ่เพราะ auf GitHub GitHub รู้สึกดีกว่าเว็บไซต์เทียบเคียงและมีโครงการสำคัญหลายโครงการที่โฮสต์อยู่ที่นั่น GitHub ช่วยลดอุปสรรคในการสนับสนุนโอเพ่นซอร์สเป็นอย่างมาก
LennyProgrammers

2
Mercurial ไม่ต้องการหนังสือ
Warren P

24

คำเตือน: เนื่องจากโพสต์นี้ฉันพบ Mercurial และรักมันมากกว่า SVN มาก ดังนั้นโพสต์นี้ค่อนข้างล้าสมัยด้วยความเห็น Pro SVN และ anti-DVCS ทั่วไป แต่สิ่งที่ต่อต้าน git ยังคงเกี่ยวข้อง


ฉันเป็นแฟนของSVNมากกว่า Git

ทำไม? เพราะ SVN นั้นง่ายขึ้นสำหรับนักพัฒนาเดี่ยวหรือทีมเล็กและ git (โดยเฉพาะ msysgit) ทำให้ฉันมีรสนิยมในปากที่ไม่ดี

เมื่อฉันฝึกงานที่ร้านค้าเล็ก ๆ ฉันได้รู้จักกับ git บน Windows ฉันสังเกตเห็นจำนวนงานที่ต้องทำเพื่อให้มันทำงานกับ Github ได้ทันที ก่อนอื่นฉันต้องสร้างคีย์ส่วนตัว ssh วางกุญแจสาธารณะใน Github จากนั้นเปิดหน้าเว็บขึ้นมาและเปิดคีย์ส่วนตัวของฉันทุกครั้งที่ฉันต้องการกดซึ่งเป็นเรื่องที่น่ารำคาญอย่างยิ่ง

และฉันไม่เคยชอบที่ฉันดึงลงพื้นที่เก็บข้อมูลทั้งหมด ฉันจะยอมรับว่าฉันไม่เคยทำงานกับสิ่งใดที่ยิ่งใหญ่ แต่ฉันกลัวที่จะดาวน์โหลดคลังเก็บของ KDE ใน Git ถ้าทั้ง repo และการแก้ไขนั้นอยู่ใน HD ของฉัน

จากนั้นก็มีกระบวนการทำให้เกิดความสับสน TMK ฉันต้อง "ขั้นแรก" ไฟล์ทั้งหมดที่ฉันต้องการที่จะกระทำ (ซึ่งดูดเมื่อคุณมีไฟล์จำนวนมากใช้เวลาสักครู่ในการค้นหาคำสั่งด้วยตนเองเพื่อทำทุกอย่าง) จากนั้นทำคอมมิทจากนั้นกดปุ่มหลัก repo (เพราะเหตุใดจึงเป็นการดำเนินการแยกต่างหาก?!)

คุณมีข้อมูลการกระทำที่ไม่เป็นประโยชน์อย่างมาก (!) โอ้ดูนี่คือการกระทำ 14f74433245ae17aeeaa ส่วนหนึ่งของต้นไม้ 2167a4934d0a4a7db0de และผู้ปกครอง d7042abb4821d3faf600 นั่นแปลว่านรกใช่ไหม? ฉันควรจะสามารถเข้าใจสิ่งต่าง ๆ ได้อย่างรวดเร็วและไม่ต้องปรึกษากับเอกสารแปลก ๆ

อย่างน้อยตอนที่ฉันใช้มันดูเหมือนว่าทุกอย่างอยู่ในรูปแบบไฟล์ man linux, IE สับสนและไร้ประโยชน์กับฉัน ฉันไม่ค่อยได้รับความช่วยเหลือมากนักในเอกสารและหันมาใช้ google

และด้วยความมุ่งมั่นสิ่งหนึ่งที่ฉันไม่ชอบคือการขาดหมายเลขรุ่น ตอนนี้ฉันรู้แล้วว่านี่เป็นเพราะการออกแบบคอมไพล์ แต่ซอฟต์แวร์ใด ๆ จำเป็นต้องมีหมายเลขเวอร์ชัน ฉันยังจำได้ว่าตัวทำเครื่องหมายที่จะปรากฏขึ้นว่า "รุ่นที่เปลี่ยนเป็น 1.8.6" หรือสิ่งที่คล้ายกัน แต่คุณยังไม่สามารถสร้างตัวเลขได้ ให้ฉันมีรุ่นเป็น 1.8.6.5164 (ส่วนสุดท้ายคือหมายเลขการแก้ไข) บอกฉันมากกว่าเพียงแค่ 1.8.6 และโน้ตที่บอกว่ามีอะไรบางอย่างเปลี่ยนไปลองดู

การระบุซอฟต์แวร์เฉพาะโปรแกรมพื้นฐานบน Windows คือ msysgit ซึ่งเป็นส่วนต่อประสานที่แย่มาก มันล็อคฉันไม่กี่ครั้งมีอินเทอร์เฟซที่น่ากลัวและการรวม CLI-GUI นั้นดีที่สุด บรรทัดคำสั่ง junkies รอบตัวฉันเกลียด gui มากยิ่งขึ้น


ตอนนี้ให้ดูที่ SVN และเนื่องจากฉันใช้ Windows และมีบัญชี Google โดยเฉพาะ TortoiseSVN และ Google Code

ก่อนอื่นการรวมเชลล์ที่สมบูรณ์เพื่อทำทุกอย่างบนพื้นที่เก็บข้อมูล (และสำหรับคนที่ใช้ลินุกซ์ของคุณ RabbitVCS ก็ทำสิ่งเดียวกัน) โดยไม่จำเป็นต้องใช้ GUI หลัก การได้รับพื้นที่เก็บข้อมูลเป็นเรื่องง่ายเหมือนการชำระเงินไม่จำเป็นต้องใช้ SSH (จำไม่ได้ว่า Github ต้องการ SSH สำหรับการดึง) และไม่มีการซื้อคืนทั้งหมด + การกระทำทั้งหมดที่ผ่านมากระทำบน HD ของคุณ

การคอมมิทชั่นเป็นเรื่องง่ายมากเนื่องจากไม่จำเป็นต้องใช้ SSH หรือการจัดเตรียม คุณเพียงแค่ตรวจสอบไฟล์ทั้งหมดที่คุณต้องการโดยใช้ตัวเลือกทั้งหมดที่เป็นประโยชน์ที่มีประโยชน์ใน msysgit ของฉันไม่พร้อมใช้งานพิมพ์ข้อความคอมมิทและกดคอมมิท จากนั้น Google Code จะขอข้อมูลการเข้าสู่ระบบของคุณ (ซึ่งลูกค้าส่วนใหญ่เก็บไว้) และคุณทำเสร็จแล้ว ง่ายง่ายและไม่มี SSH

หมายเลขรุ่น? ด้วยรหัสง่ายๆคุณสามารถเพิ่มหมายเลขรุ่นและหมายเลขการกระทำในการชำระเงินทั้งหมดซึ่งทำให้สิ่งต่าง ๆ ง่ายขึ้นมาก คุณยังได้รับหมายเลขเวอร์ชันที่ใช้งานได้ซึ่งแสดงการเปลี่ยนแปลงจริงเช่น 1.8.6.5165 เป็นรุ่นใหม่กว่า 1.8.6.5164

เอกสาร? มันยากที่จะพูด Tortoise ได้รับการบันทึกไว้ แต่ฉันไม่ได้อ้างถึงเอกสารอย่างเป็นทางการเป็นเวลานานจนฉันไม่สามารถตัดสินได้ การอ่านคู่มือแนะนำง่าย ๆ ก็เพียงพอแล้วสำหรับฉัน

การผสานเป็นอย่างอื่นที่ฉันไม่สามารถเปรียบเทียบได้ ฉันต้องทำมันครั้งเดียวใน Git เมื่อคนอื่นมุ่งมั่นที่จะเปลี่ยนแปลงไฟล์ที่ฉันทำงานอยู่ แต่ไม่เคยอยู่ใน SVN


ฉันจะแนะนำอันไหน ในทีมขนาดใหญ่ git มีข้อได้เปรียบส่วนใหญ่อยู่ในวงจรการพัฒนาที่ไม่ใช่เชิงเส้น ในโครงการอื่นฉันเห็นโปรแกรมเมอร์ 4 คนเริ่มต้นแยกสาขาจากนั้นผสานรหัสทั้งหมดด้วยวิธีที่แปลกประหลาดอย่างยิ่ง Github และ msysgit มีเครื่องมือสร้างภาพที่ดีมากสำหรับโครงการทั้งหมดที่ฉันชอบ

สำหรับผู้พัฒนาเดี่ยวหรือโปรเจ็กต์ทีมขนาดเล็ก SVN จะดีที่สุดเนื่องจากฟีเจอร์ Gits ส่วนใหญ่ไม่ได้ใช้และคุณจะได้รับชิ้นส่วนเชิงลบเท่านั้น ความเรียบง่ายเป็นสิ่งที่ดี


6
การผสานกับ SVN ค่อนข้างมีความเสี่ยง (เทียบกับคอมไพล์) นั่นเป็นสิ่งหนึ่งที่สำคัญที่จะต้องทราบในการเปรียบเทียบใด ๆ
Khelben

5
ทำไมคุณต้อง "นำขึ้นประกวด" ทุกครั้งหรือไม่ มันเป็นตัวแทนที่สำคัญ คุณจะต้องนำมันขึ้นมาเพียงครั้งเดียวเมื่อคุณเข้าสู่เครื่องของคุณ คุณเพิ่มคีย์ของคุณและคุณทำเสร็จแล้ว (และคุณสามารถทำให้มันง่ายยิ่งขึ้นโดยเชื่อมโยง keyfile ของคุณกับการประกวดและเพิ่มไปยังโฟลเดอร์เริ่มต้นของคุณเข้าสู่ระบบมันจะปรากฏขึ้นพร้อมกับกล่องโต้ตอบพร้อมท์ให้คุณใส่ข้อความรหัสผ่านของคุณ)
Frank Shearar

3
@Thorbjoern @Frank Shearer: ฉันคิดว่าข้อเท็จจริงที่ว่าคุณกำลังพูดว่า "คุณสามารถทำสิ่งนี้ได้หรือคุณสามารถทำได้และไม่มีปัญหาเหล่านั้น" เน้นประเด็น: สิ่งเหล่านี้เป็นวิธีแก้ปัญหาหรือปัญหา มันไม่ใช่ปัญหากับ VCS อื่น ๆ
Steven Evers

4
คำตอบนี้ทำให้ฉันรู้สึกบ่นและคร่ำครวญถึงสิ่งที่โปสเตอร์ไม่ได้ใช้เวลาในการทำความเข้าใจ ฉันใช้เวลาทั้ง git และ svn ทั้งบน linux และ windows และจะยืนยันว่า git นั้นเหนือกว่า svn อย่างมากในแนวคิดแบบจำลองข้อมูลความเข้าใจและประโยชน์
gahooa

4
@TheLQ ไม่มันไม่ใช่ "ความคิด Linux ของคุณ" เลย มันเป็นเรื่องง่ายในการตั้งค่ามันมีเอกสารอย่างดี PuTTY เป็นชุดแอพพลิเคชั่น Windows ที่ยอดเยี่ยมที่ทำให้สิ่งต่าง ๆ ใช้งานได้ง่าย และคุณควรเข้ารหัสการถ่ายโอนรหัสของคุณจริงๆหากคุณทำงานผ่านเครือข่ายสาธารณะใด ๆ และเป็นการดูถูกผู้ใช้ Windows ที่จะคิดว่าพวกเขาโง่เกินกว่าที่จะเรียนรู้วิธีใช้เครื่องมือที่ควรใช้ ฉันไม่ได้ขอให้ผู้คนทำสิ่งต่างๆ ฉันขอให้พวกเขาเข้ารหัสข้อมูลสำคัญของพวกเขา
Frank Shearar

22

ข้อความต่อไปนี้จากQ4TDค่อนข้างจะเป็นผลรวมสำหรับฉัน:

“ ฉันรัก Git จนกระทั่งได้ลอง ตอนนี้ฉันรัก Mercurial”

        - Tor Norbye, Java Posse Podcast

นอกจากนี้hgsubversionทำให้ไคลเอนต์การโค่นล้มที่ดีสำหรับ Linux (ที่ฉันมักจะใช้บรรทัดคำสั่งซึ่งแตกต่างจาก Windows ที่ฉันมักจะใช้ TortoiseSVN) ข้อได้เปรียบที่ใหญ่ที่สุด: ไม่มี.svnโฟลเดอร์ย่อยในทุก ๆ โฟลเดอร์เพียงแค่.hgอยู่ในระดับบนสุด

อัปเดต:เพื่อตอบสนองต่อคำขอของอเล็กซ์ในความคิดเห็นที่ "พูดเพิ่มเติมเกี่ยวกับสาเหตุที่คอมไพล์ไม่ได้ผลสำหรับคุณและ Mercurial ทำงานได้ดีกว่า":

ฉันจะไม่พูดว่า Git ไม่ได้ผลสำหรับฉัน แต่ Murcurial ทำงานได้ดีกว่า IMO

สรุปนี่คือ Mercurial:

ข้อความแสดงแทน

และนี่คือ Git:

ข้อความแสดงแทน

และฉันขอยืนยันว่า Mercurial จะทำทุกอย่างที่นักพัฒนาส่วนใหญ่จะต้องทำโดยไม่ต้องค้นหาคู่มือเพื่อหาวิธีที่จะทำสิ่งต่าง ๆ ในชีวิตประจำวัน

เป็นที่ยอมรับว่าฉันเคยใช้ Git เป็นครั้งคราวเท่านั้น แต่ชุมชนการเขียนโปรแกรมได้ใช้ภาษาต่าง ๆ อย่าง Ruby และ Python เพื่อความกระชับและสง่างามในขณะที่ Git รู้สึกเหมือนอูฐที่ออกแบบโดยคณะกรรมการอูฐ

เอาละลองดูสิ่งที่คุณทำไปแล้ว? มีการพูดจาโผงผางทั่วสถานที่ ย้ายไปตามไม่มีอะไรให้ดู ... ไม่มีอะไรให้ดู ...

อัปเดต 2:และทวีตเรื่องอื่นที่ฉันเพิ่งเจอ:

“ Git ง่ายขึ้นเมื่อคุณได้รับแนวคิดพื้นฐานที่สาขาคือการทำแผนที่ endofunctors การทำแผนที่โฮมโมมอนิฟิลของพื้นที่ฮิลแบร์ต”


เคยลอง RabbitVCS หรือไม่
TheLQ

ไม่ แต่ฉันใช้ KDE ไม่ใช่ Gnome ดังนั้นจึงไม่เหมาะกับฉัน ฉันจะใช้ไคลเอนต์ SVN แบบกราฟิกบน Linux เป็นครั้งคราว แต่จริงๆแล้วเมื่อทำสิ่งที่ลึกลับเล็กน้อยเช่นการสำรวจพื้นที่เก็บข้อมูลหรือเปรียบเทียบการแก้ไขก่อนหน้า ไม่ได้สำหรับสิ่งที่เพิ่ม / ลบ / กระทำ / บันทึกอย่างง่าย บรรทัดคำสั่งเร็วขึ้น
Evan

2
คุณช่วยพูดเพิ่มเติมเกี่ยวกับสาเหตุที่คอมไพล์ไม่ได้ผลสำหรับคุณและ Mercurial ทำงานได้ดีขึ้นได้อย่างไร นั่นน่าสนใจทีเดียวที่จะอ่าน
Alex Feinman

ฉันค่อนข้างแน่ใจว่าการพรรณนา Git หายไป 6 "long straight razor ...
Tim Post

2
@Tim: rebase? มันอาจจะอยู่อีกด้านหนึ่ง
Alan Pearce

14

ฉันไม่มีระบบควบคุมเวอร์ชันที่ดีที่สุด แต่เป็นกระบวนทัศน์ VCS ที่ดีที่สุด

ฉันใช้ระบบควบคุมรุ่นรวมศูนย์ที่แตกต่างกันหลายแห่งและระบบควบคุมเวอร์ชันกระจายที่แตกต่างกันหลายระบบ และฉันสามารถพูดได้อย่างไม่ลังเลเลยว่าไม่มีใครควรทำ CVCS กับตนเอง

ฉันไม่สนใจซึ่ง DVCS คุณเลือก (โดยเฉพาะอย่างยิ่งที่ชื่นชอบของฉันคือ Git) แต่โปรดทำด้วยตัวเองชอบและใช้ DVCS หนึ่ง: คุณจะมีความยืดหยุ่นมากขึ้น DVCS สามารถจำลองเวิร์กโฟลว์ CVCS เพียงเล็กน้อย (ไม่เคยแยกที่เก็บและจัดการที่เก็บโลคัลของคุณเป็น chache แทนการแยก fork อิสระ) ในขณะที่ Converse ไม่สามารถทำได้ และในขณะที่มีเหตุผลการทำแบบจำลองนี้ควรมีค่าใช้จ่าย (และแน่นอน) ฉันยังคงใช้งานได้ง่ายกว่า (ไม่ต้องพูดถึงนักแสดงที่มากขึ้นเนื่องจากการแคชในพื้นที่) กว่า CVCS ใด ๆ ที่ฉันใช้


3
นี่คือคำตอบที่ดี ไม่มี VCS ที่ "ดีที่สุด" แต่ฉันเห็นด้วยอย่างยิ่งว่าควรใช้ DVCS
Nick Hodges

สร้าง DVCS ของฉันขึ้นมา แต่ถือ endomunic endofunctors ทำแผนที่ submanifolds ของพื้นที่ Hilbert ได้ไหม Ergo, Mercurial
Warren P

11

ไม่สามารถพูดได้ว่าฉันพบซอฟต์แวร์ควบคุมเวอร์ชันที่ดีที่สุดแล้ว แต่ฉันสามารถบอกให้คุณอยู่ห่างจาก VSS และ MKS ได้ ทั้งคู่เป็นสุนัขที่ควรหลีกเลี่ยงค่าใช้จ่ายทั้งหมด


7

ฉันจะไม่พูดดีที่สุด แต่มีคุณลักษณะและแนวคิดที่น่าสนใจมาก

Fossilคือการควบคุมเวอร์ชันแบบกระจายการติดตามบั๊กและโปรเจ็กต์ wiki ที่สร้างขึ้นบนฐานข้อมูล SQLite เป็นที่เก็บ


5

เซิร์ฟเวอร์มูลฐานทีม

เพราะ:

  1. มันเป็นสิ่งที่ดี VCS (ฉันไม่คิดว่ามันจะดีที่สุดไม่ว่าจะด้วยวิธีใด แต่มีความพิเศษมาก ๆ )
  2. การติดตามงานและข้อบกพร่องในตัวที่รวมอยู่ใน Visual Studio ช่วยให้ฉันจดจ่อและรู้ว่าฉันต้องทำงานอะไรในที่เดียว (การใช้การเช็คอินกับข้อผิดพลาดหรืองานโดยอัตโนมัติและการปิดมันก็ค่อนข้างดี รับปลั๊กอินสำหรับระบบ / eclipse / etc อื่น ๆ เพื่อทำสิ่งนี้)
  3. มันรวมงาน / การติดตามข้อผิดพลาด / โครงการเข้ากับ Project Server โดยตรงดังนั้นฉันจึงไม่ค่อยต้องทำตามแผนโครงการหรือ Timesheets ให้ทันสมัยอยู่เสมอ อัปเดตเป็น Project ใน Project Server จะกรองเป็นภารกิจใน TFS และ Visual Studio โดยอัตโนมัติเพื่อให้ฉันเห็นโดยอัตโนมัติ

2
ฉันอยากรู้ว่าคุณรู้สึกอย่างไรเกี่ยวกับขั้นตอนการทำงานของคุณที่ถูก จำกัด ให้เฉพาะกับ Visual Studio สำหรับงานพัฒนาทั้งหมด นอกจากนี้คุณต้องทำการตั้งค่าโครงสร้างพื้นฐานสำหรับ TFS ด้วยหรือไม่? ประสบการณ์ของฉันตรงข้ามกับคุณด้วยวิธีนี้: # 1 - VCS ไม่ใช่เรื่องง่ายที่จะใช้มักจะเป็นขุยและโหมดออฟไลน์ถูกสร้างขึ้นโดยซาตานเอง # 2 งานในตัวและการติดตามข้อผิดพลาดนั้นยุ่งยากกว่าเครื่องมืออื่น ๆ ดังนั้น # 3 จึงไม่เกี่ยวข้องกับเราและสร้างงานซ้ำ ฉันใช้มัน 3 ครั้งตอนนี้ด้วยผลลัพธ์ที่ไม่ดีเหมือนกันทุกครั้ง
Jordan

1. ฉันเห็นด้วยกับการดูดโหมดออฟไลน์ ฉันไม่ได้มีปัญหามากมายในโลกออนไลน์ แต่ฉันก็เชื่อมต่ออยู่เสมอ ตัวควบคุม VCS จำนวนมากโดยเฉพาะอย่างยิ่งกับการแมปโฟลเดอร์จะถูกซ่อนอยู่ลึกลงไปในเมนู นั่นเป็นปัญหาที่คุณมีหรือไม่? 2. มันยุ่งยากกว่านี้แน่นอน แต่บันทึกการทำงานโดยรวมสำหรับทีมของฉันที่รวมเข้ากับ Project Server 3. มันสร้างงานซ้ำได้อย่างไร คุณทำซ้ำงานในเซิร์ฟเวอร์โครงการและ TFS หรือไม่ มีปลั๊กอินโอเพนซอร์ซสำหรับปี 2007 และเบต้าสำหรับปี 2010 ที่ให้พวกเขาซิงค์กัน
Ryan Hayes

1
มัน จำกัด ให้ฉันเป็น VS แต่เราเป็นร้าน NET ทั้งหมด ฉันใช้ TFS กับโปรเจ็กต์ Java ที่บ้าน ลอง SVNBridge ที่svnbridge.codeplex.comซึ่งให้คุณใช้ Tortoise กับ TFS หากคุณใช้ Tortoise (เช่น Java, ruby, non-.net folks) ดังนั้นควรช่วยคุณในการทำงานในโครงการอื่น ๆ
Ryan Hayes

4

ฉันใช้ระบบควบคุมเวอร์ชันมากมายในประวัติอันยาวนานของฉัน:

  • RPPT - (ม้วนเทปกระดาษเจาะ) ในกล่องรองเท้า ฉันไม่ได้ล้อเล่น.
  • PVCS - (ระบบควบคุมเวอร์ชัน Polytron) VCS จริงตัวแรกที่ฉันใช้
  • SCCS - นานมาแล้วฉันจำไม่ได้ว่ามีอะไรดีหรือไม่ดีเป็นพิเศษ
  • RCS - อย่างที่คนอื่น ๆ ชี้ไปจะดูดลูกบอลลา
  • CVS - มันเป็นเพียงความเจ็บปวดเมื่อใช้กับโปรแกรมเมอร์มากกว่า 2 คน คุณสมบัติที่ดีที่สุด: rcs2cvs
  • VSS - ใช้งานได้ยกเว้นในวันอังคารเมื่อทำการทำลายพื้นที่เก็บข้อมูลทั้งหมดของคุณ
  • อย่างแรง - มีราคามากกว่ารถของฉัน VCS เองนั้นเป็นที่ยอมรับ แต่พวกหัวมันที่ควบคุมทุกแง่มุมของการใช้มันจะไม่มีวันลงจอดในรายการ "ที่ต้องการ" ของฉัน
  • SVN - การแตกแขนงและการรวมกันเป็นตัวเมีย แต่โดยทั่วไปแล้วมันดีกว่าของรุ่นก่อน ๆ ไม่ค่อยดีนักเนื่องจากมีการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ มากมายรอการตรวจสอบอยู่
  • Mercurial - ฉันชอบประสบการณ์เล็ก ๆ น้อย ๆ กับมันฉันชอบ ฉันอาจลองทำโปรเจ็กต์ต่อไปของฉัน
  • Git - ไม่เคยมีโอกาสใช้มัน

แม้ว่าคู่สามีภรรยาจะน่ากลัว พวกเขาไม่ได้รับในทางของฉัน ตราบใดที่เครื่องมือไม่ได้ทำให้ชีวิตฉันยากขึ้นอย่างมีนัยสำคัญฉันก็ไม่รังเกียจ

สิ่งที่แท้จริงคือการเข้าใจจุดแข็งและจุดอ่อนของแต่ละคน ทำความเข้าใจกับสภาพแวดล้อมเป้าหมาย:

  • กระจายหรือท้องถิ่น
  • ทีมเล็กหรือใหญ่
  • บริการ vcs ที่โฮสต์หรือไม่
  • รวมเข้ากับเครื่องมืออื่น ๆ ได้ง่าย

โจเอลออกมาพร้อมข้อสังเกตที่สำคัญด้วย: เรียนรู้เครื่องมือและรูปแบบการใช้งานจริง เขาพยายามอย่างยิ่งยวดที่จะทำให้ Mercurial ประพฤติตัวเหมือนการโค่นล้ม


1
หากเพียงความคิดเห็นเกี่ยวกับ VSS เป็นเรื่องตลก ... หลีกเลี่ยงเช่นกาฬโรค
DevSolo

Ah, PVCS ความทรงจำที่นำกลับมา :) สิ่งที่เป็นขยะ
Henry

รายการนั้นทำให้ฉันนึกถึงภาษาที่ใช้ "ยิงตัวเองที่เท้า" +1
Orbling

ฉันจำสิ่งที่ไม่ดีเกี่ยวกับ SCCS ได้ แต่โดยทั่วไปก็สามารถใช้งานได้ ฉันจำได้ว่าพยายามทำงานพร้อมกันกับไฟล์ด้วย SCCS และโปรแกรมเมอร์อื่น ๆ และนั่นเป็นสาเหตุที่ฉันหลงรัก CVS เมื่อฉันเห็นมัน
David Thornley

Visual SourceSafe, VCS โดยเฉพาะสำหรับโปรแกรมเมอร์ที่ต้องการขุดตาด้วยช้อน
Mark Booth

2

ระบบใหม่ที่เราใช้ที่สำนักงานของฉันคือ Plastic SCM (http://www.plasticscm.com/) มันทำงานได้ดีมากสำหรับทีมเล็ก ๆ ของเราและช่วยให้เราสามารถควบคุมการจัดการแหล่งข้อมูลได้ทุกแง่มุม


1

SCCS

หรือถ้าคุณเกิดขึ้นไม่ว่าจะได้รับที่อยู่อาศัยถ้ำสำหรับที่ผ่านมา 38 ปี, อ.ก.พ.

อย่างจริงจัง บริษัท ของฉันใช้TeamWareซึ่งเป็น DVCS หลอกประเภทหนึ่งที่อิงกับ SCCS

ไม่ฉันไม่ได้ล้อเล่น

Sun เปลี่ยนมาเป็น Mercurial จาก TeamWare เมื่อไม่กี่ปีที่ผ่านมา ตอนนี้คุณควรเข้าใจว่าทำไม Java จึงเคลื่อนที่ช้า


1

MPW: ดีฉันไม่สามารถให้ความเห็นจริง ๆ แม้จะมีความพยายามของฉัน

สิ่งนี้กลับมาอีกครั้งเมื่อฉันได้เรียนรู้การเขียนโปรแกรมในโรงเรียนมัธยมและคอมไพเลอร์ C ++ ฟรีเพียงตัวเดียวเท่านั้นที่จะมีคือ Macintosh Programming Workbench ซึ่งฉันเก็บไว้ในแผ่นดิสก์ซิป

MPW มาพร้อมกับเครื่องมือมากมาย (ไม่มีการ resedit ซึ่งเป็นการดาวน์โหลดแยกต่างหาก) และหนึ่งในนั้นคือยูทิลิตี้ควบคุมเวอร์ชัน มันเปิดหน้าต่างเล็ก ๆ พร้อมข้อความเพียงบรรทัดเดียวและคุณต้องลากและวางโครงการหรือไฟล์ของคุณลงไป มันไม่มีเอกสารที่ฉันสามารถค้นพบได้ผิดปกติเมื่อพิจารณาทุกอย่างอื่นดูเหมือนจะมีเอกสารที่ดีและดังนั้นฉันจึงไม่เคยใช้วิธีนี้

นั่นเป็นแปรงแรกของฉันกับ VC และอันสุดท้ายสำหรับดีในขณะที่ ตอนนี้ฉันใช้คอมไพล์ทุกอย่าง


โปรเจ็กเตอร์! ในงานพาร์ทไทม์ระหว่างเรียนฉันใช้เวอร์ชั่นนั้น (หลอก) ช่วงเวลาที่ดี.
RyanWilcox

0

RCS - ระบบควบคุมการแก้ไขใหม่

การเข้ารหัสเดี่ยวทำให้ง่ายมาก


คุณกำลังล้อเล่นใช่ไหม Xepoch? โปรดพระเจ้าล้อเล่น
Marc W

พวกคุณทำให้ฉันหัวเราะ จริงๆแล้วฉันใช้ RCS แต่สำหรับเว็บไซต์ส่วนตัวของฉันเท่านั้น & c ฉันล้อเล่นไปครึ่งทางเกี่ยวกับการใช้เพื่อการพัฒนาที่สำคัญ แต่ฉันได้เห็นมันใช้เฉพาะ (มากกว่า CVS) ในการพัฒนาร่วมกันระบบ Unix สุจริตเราไม่มีปัญหากับมันเลย แต่ไม่ให้ยืมตัวเองกับสิ่งอื่นใดนอกจากคุณสมบัติเซิร์ฟเวอร์เดียว
Jé Queue

1
@ Xepoch คุณอาจจะดีกว่าการเรียน Git หรือ Mercurial- DCVS ใช้งานได้ดีสำหรับการพัฒนาเดี่ยว
Fishtoaster

1
คุณรู้หรือไม่สิ่งที่ดีจริงๆเกี่ยวกับ RCS คืออะไร? คุณสามารถใส่ไฟล์ RCS, v ทั้งหมดในโครงสร้างไดเรกทอรีที่เหมาะสมและคุณมีที่เก็บ CVS เกือบพร้อมใช้งานแล้ว มีเครื่องมือมากมายที่จะแปลงจาก CVS เป็นระบบที่ทันสมัยที่คุณต้องการเช่น Mercurial
David Thornley

@Xepoch ความง่ายในการสำรอง vcs'es แบบกระจายนั้นไม่สามารถเอาชนะได้

0

ไม่ใช่ ClearCase อย่างน้อยที่สุดสำหรับระบบ Unix / Linux (อาจเป็น Windows ที่ติดตั้งได้ง่ายกว่า) มันง่ายกว่าที่ฉันจะเรียนรู้เครื่องมือใหม่อย่าง Perforce แทนที่จะอัพเกรดเซิร์ฟเวอร์ ClearCase ของเรา

ปัจจุบันฉันใช้ Perforce ในที่ทำงานและฉันชอบ แต่ฉันก็ไม่รู้ว่ามันดีที่สุด การตั้งค่าสภาพแวดล้อมบรรทัดคำสั่งและเซิร์ฟเวอร์ Perforce ค่อนข้างอึดอัด แต่การใช้ Visual Client นั้นค่อนข้างง่าย ฉันชอบคิดว่าผู้ใช้มีเวลาค่อนข้างง่ายสำหรับงานประจำวัน มันเป็นเพียงการตั้งค่าเริ่มต้นใช้งานบางอย่าง


0

ฉันใช้ Visual SourceSafe และเกลียด แต่ก็ดีกว่าไม่มีอะไร แต่ก็ไม่มาก ในช่วงสองสามปีที่ผ่านมาใช้สิ่งที่เรียกว่า QCVS โดย Qumasoft.com เขียนเป็นเจ้าของและสนับสนุนโดย Jim Voris โปรแกรมเมอร์ กุยง่ายราคาถูกการสนับสนุนที่ดี

ทำงานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.