ทางเลือกในการควบคุมเวอร์ชันมืออาชีพ [ปิด]


57

เรากำลังร่วมมือกับโปรแกรมเมอร์ (นักเขียน) ที่ไม่ใช่คนที่ต้องการมีส่วนร่วมในโครงการของเรา

ตอนนี้พวกเขาไม่ชอบแนวคิดของการใช้ Git (หรืออะไรก็ตามสำหรับเรื่องนั้น) สำหรับเวอร์ชันที่ควบคุมการทำงานของพวกเขา ฉันคิดว่าเป็นเช่นนี้เพราะพวกเขาไม่คิดว่ามันจะคุ้มค่าที่จะห่อหุ้มแนวคิดที่บิดเบี้ยวของการควบคุมเวอร์ชัน (เมื่อฉันแนะนำพวกเขาให้รู้จักกับการแตกแขนงและรวมเข้าด้วยกัน - พวกเขาดูเหมือนว่าฉันจะทำให้พวกเขาขุ่นเคือง)

ตอนนี้เราไม่อยู่ในฐานะที่จะให้การศึกษาแก่พวกเขาหรือโน้มน้าวให้พวกเขาใช้มัน เราแค่พยายามหาทางเลือกอื่นเพื่อให้เราได้งานทั้งหมด (ซึ่งเป็นสิ่งที่เราต้องการ) - และพวกเขาได้รับขั้นตอนการทำงานที่ง่ายและมีสมาธิกับสิ่งที่พวกเขาทำ

ฉันได้ไอเดียมา ...

  • บอกให้พวกเขาบันทึกงานของพวกเขาเป็นไฟล์แยกต่างหากทุกครั้งที่พวกเขาทำการเปลี่ยนแปลงที่ไม่สำคัญและจากนั้นใช้ diff ด้านข้างของเราเพื่อติดตามการเปลี่ยนแปลง
  • เขียนโปรแกรม (ใน Python) ที่ใช้ "เหตุการณ์สำคัญ" ใน CSSEdit อย่างใด

เกี่ยวกับโครงการ:

เป็นระบบประมวลผลภาษาธรรมชาติ (เขียนด้วย C + Python) เราได้จ้างนักเขียนเพื่อเตรียมอินพุตสำหรับระบบในภาษาต่างๆ และเมื่อเราพัฒนาซอฟต์แวร์เราต้องการนักเขียนเหล่านั้นเพื่อทำการเปลี่ยนแปลงอินพุต (บทความ) บางครั้งการเปลี่ยนแปลงมีขนาดเล็กมาก (คำหนึ่งหรือสองคำ) และบางครั้งใหญ่

เหตุผลที่เราจำเป็นต้องควบคุมเวอร์ชันการเปลี่ยนแปลงเหล่านั้นก็เพราะว่าการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ / ใหญ่ในอินพุทนั้นมีศักยภาพที่จะเปลี่ยนเอาต์พุตของระบบได้อย่างมาก


15
@rwong - หรือวิกิที่มีการกำหนดเวอร์ชันซึ่งสามารถใช้ได้เช่นกัน
Joris Timmermans

4
การเพิ่มความคิดเห็น @MadKeithV เป็นอย่างไรเกี่ยวกับ git powered wiki github.com/github/gollum - มีการเปลี่ยนแปลงบางอย่างในเวิร์กโฟลว์ที่จะเกิดขึ้นคุณกำลังพยายามเชื่อมโยงสองทีม คุณสำรวจเครื่องมือปัจจุบันแล้วหรือยัง? มีความเป็นไปได้เล็กน้อยที่พวกเขาสนับสนุนการควบคุมเวอร์ชันบางประเภทและนักเขียนของคุณไม่เคยใส่ใจที่จะหาคำตอบ ..
yannis

20
มันง่ายจริงๆ หากคุณกำลังจะจ่ายคนเหล่านี้บอกพวกเขาว่าพวกเขาสามารถใช้เครื่องมือของคุณและรับเงินหรือถ้าพวกเขาปฏิเสธที่จะใช้เครื่องมือของคุณจะไม่ได้รับเงิน พื้นฐานระดับกลางใด ๆ จะหมายถึงการทำงานมากขึ้นในตอนท้ายของคุณเนื่องจากค่าใช้จ่ายเงินมันสมดุลออกไปหากลุ่มคนที่จะทำงานกับเครื่องมือของคุณ
Ramhound

4
Fossil เป็น VCS ที่น่าสนใจที่มาพร้อมกับ Wiki รุ่นเช่นกัน เราใช้มันเป็นวิธีในการปรับปรุงเอกสารให้ทันสมัยอยู่เสมอ แต่คุณสามารถใช้เป็น "รุ่น" ในลักษณะนี้
Ben Brocka

34
ทำไมคุณถึงพยายามที่จะแนะนำสาขาและการรวมเข้ากับที่ไม่ใช่เทคโนโลยี? คุณต้องการให้เวอร์ชันงานของพวกเขาดีขึ้น คุณสามารถบอกพวกเขาว่าคุณต้องการให้มันถูกบันทึกไว้อย่างไร คุณต้องการให้พวกเขาจัดการกิ่งไม้และการรวมคุณกำลังจะปิดท้ายลึก คุณควรได้รับสิ่งที่ดีและง่ายเช่น Tortoise * และหลีกเลี่ยงการบอกสิ่งที่พวกเขาไม่ต้องการ
David Thornley

คำตอบ:


102

เมื่อฉันแนะนำพวกเขาให้รู้จักกับการแตกแขนงและรวมเข้าด้วยกัน - พวกเขาดูเหมือนว่าฉันจะทำให้ขุ่นเคือง

อาจเป็นเพราะการแยกและรวมเป็นแนวคิดขั้นสูงและมีประโยชน์น้อยกว่าการติดตามการเปลี่ยนแปลง

ดังนั้นทำไมไม่อธิบายเพียงแค่ "ยอมรับ" (บันทึก) และ "อัปเดต" สองแนวคิดที่ง่ายจริงๆ ฉันแน่ใจว่าคุณสามารถอธิบายได้ภายในเวลาไม่ถึง 10 นาที

หากคุณต้องการแยกสาขาและสิ่งต่าง ๆ เช่นนั้นจริงๆคุณสามารถทำส่วนนั้นเองโดยไม่เกี่ยวข้องกับมัน


20
+1 เพื่อจุดประสงค์ของพวกเขาเพียงแค่รักษาประวัติความเป็นเส้นตรงเป็นแนวคิดที่ต่างไปจากเดิมอย่างสิ้นเชิง ฉันคิดว่ามันไม่น่าเป็นไปได้ที่นักเขียนจะต้องแยกและรวมเข้าด้วยกันและถ้าพวกเขาทำพวกเขาต้องการมือนักพัฒนาที่จะถือขณะที่พวกเขาจัดการมัน
Dan Ray

7
@BillK คุณลองผสานกับคอมไพล์แล้วหรือยัง? ฉันคิดว่ามันใช้งานได้ดีมากดีกว่ากับ SVN (ฉันไม่ได้เรียกร้องให้ใช้การรวมในที่ที่ไม่จำเป็น)
svick

10
@Bill K พูดตามตรงนะเสียงนี้เหมือนว่าคุณต้องทำอะไรบางอย่างหลังจาก 20 ปีใน SVN (ถ้าเป็นไปได้) การแตกแขนงและการผสานอาจไม่สมเหตุสมผลนักเขียนเหล่านี้ แต่ฉันไม่แน่ใจว่าคุณจัดการโปรแกรมเป็นเวลา 20 ปีได้อย่างไรโดยไม่แยกสาขาออกไป มีหลายกรณีที่กิ่งก้านสาขาเป็นแนวปฏิบัติที่ดีและทำให้ชีวิตของคุณง่ายขึ้น ในความเป็นจริงการปฏิเสธแนวคิดที่สุ่มสี่สุ่มห้าแสดงให้เห็นถึงการตัดสินที่ไม่ดี (IMHO) ในการแตกแขนง SVN เป็นความเจ็บปวด แต่ด้วยสิ่งที่คอมไพล์ได้ง่ายจริงๆ ทำสิ่งที่เป็นตัวคุณเองทำใจให้อัตตาของคุณและลงทุนช่วงบ่ายเพื่อเรียนรู้พื้นฐานของคอมไพล์ คุณจะไม่เสียใจมันสัญญา!
Robin

6
@ user606723: TortoiseSVN และ TortoiseGIT เสนอการรวมเชลล์ของ windows
Roy Tinker

6
ฉันค่อนข้างมั่นใจว่าการพยายามสอนการแยกสาขาและการรวมเข้ากับเทคโนโลยีที่ไม่ใช่ของ Git เป็นการละเมิดสิทธิมนุษยชน
Steve Bennett

69

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

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


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

4
ตรวจสอบให้แน่ใจว่าคุณใช้รุ่นที่ต้องชำระเงินเนื่องจากรุ่นฟรีจะบันทึกเฉพาะรุ่นเป็นเวลา ~ 30 วันหากฉันจำได้อย่างถูกต้อง
DMan

5
ฉันทำได้เพียง -1 คำตอบที่แนะนำบริการภายนอกแนะนำจุดล้มเหลวเพียงจุดเดียวและทำให้ข้อมูลของคุณอยู่ในความเมตตาของผู้บุกรุกที่อาจเกิดขึ้นเมื่อมีซอฟต์แวร์ที่มีประโยชน์มากมายที่แนะนำในคำตอบอื่น ๆ ที่นี่และบุคคลที่เกี่ยวข้องจะนำเสนออย่างชัดเจน ในฐานะโปรแกรมเมอร์ที่มีความสามารถ
sam hocevar


3
@ Sam Hocevar: ตกลงตอนนี้ฉันมี นั่นคือความเสี่ยงสี่ชั่วโมงซึ่งแน่นอนว่าไม่ดี แต่ไม่ได้แปลว่าเป็นความคิดที่ไม่ดี อีกครั้งมันขึ้นอยู่กับว่างานเขียนมีความละเอียดอ่อนเพียงใดและหากมีโอกาสเล็กน้อยที่บุคคลภายนอกจะเห็นได้ก็เป็นที่ยอมรับได้ (เห็นได้ชัดว่ามันไม่เหมาะกับเวชระเบียน แต่ฉันไม่มีความมั่นใจในการออกนิยายที่ไม่ดีและโครงการซอฟแวร์ที่ยังไม่เสร็จ)
David Thornley

28

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

อาร์กิวเมนต์ที่คุณทำคืออาร์กิวเมนต์ที่คุณได้ก้าวหน้าไปแล้ว - เราต้องสามารถทำ X, Y และ Z เพื่อให้ผลิตภัณฑ์ทำงานได้และเพื่อที่จะทำสิ่งนี้เราต้องการให้คุณทำเช่นนั้น เราจะสนับสนุนให้มากที่สุดเท่าที่จะทำได้ แต่เพื่อให้สิ่งนี้ทำงานได้ (และเพื่อให้มันเป็นกระแสรายได้สำหรับคุณผู้เขียน) สิ่งนี้ต้องเกิดขึ้น

ฉันมักจะเห็นด้วยว่าวิธีแก้ปัญหาที่เหมาะสมบนวิกินั้นดูเหมือนจะเป็นการจับคู่ที่ดี แต่ความท้าทายที่นี่คือวิธีการประนีประนอมระหว่างขั้นตอนการทำงานกับความต้องการของคุณ

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


ฉันเห็นด้วยกับคุณโดยสิ้นเชิง แต่คุณจะเห็นว่ามีบางสิ่งที่เรียกว่า "การจัดการ" ระหว่างเรา (ทีมโปรแกรมเมอร์) และนักเขียน ผู้บริหารจ้างนักเขียนและบอกให้เราทำงานกับพวกเขา ข้อเท็จจริงที่ว่าพวกเขาไม่เต็มใจที่จะเรียนรู้การควบคุมเวอร์ชันเป็นสิ่งที่ฝ่ายบริหารเห็นว่าเป็นปัญหาที่ต้อง "ปรับ" ระหว่างเรา (ทีม) และพวกเขา (โปรแกรมเมอร์)
treecoder

1
ฉันเดาออกมา ... แต่ถ้าอย่างนั้นคุณต้องทำเรื่องของคุณให้เป็นเรื่องการจัดการและมันก็เป็นเรื่องเดียวกัน พวกเขาถูกต้องว่าเป็นสิ่งที่จำเป็นต้อง "ปรับ" (ตัวเลือกคำที่น่าสนใจ) - แต่การประนีประนอมเป็นสองทางคุณต้องให้สิ่งที่พวกเขาสามารถทำงานด้วยพวกเขาต้องทำงานกับมัน
Murph

Yay - downvote ไม่มีคำอธิบายเหมือนคนเหล่านั้นเสมอ
Murph

2
@greengit ปัญหาที่ต้อง "ปรับ" ระหว่างทีมเป็นส่วนหนึ่งของการจัดการ การมอบหมายความรับผิดชอบให้กับทีมใดทีมหนึ่งเป็นเรื่องขี้เกียจหรืออาจเป็นคำใบ้ว่าฝ่ายบริหารจะต้องการแนวทางของทีม ดังนั้นฉันขอแนะนำให้คุณแนะนำการจัดการโซลูชันที่เหมาะสมกับคุณมากขึ้นและให้พวกเขากังวลเกี่ยวกับทุกสิ่ง
yannis

3
ฉันมีแนวโน้มที่จะนำเสนอ "การปรับปรุง" เหล่านี้ต่อการจัดการในรูปแบบของงบประมาณสำหรับการเปลี่ยนแปลงที่เสนอ "แน่นอนเราสามารถหลีกเลี่ยงการใช้ (git, ... ). เราจะต้องจ้างเลขานุการเพื่อทำสิ่งนั้นให้พวกเขาลงชื่อที่นี่แล้วฉันจะเริ่มสัมภาษณ์ในวันจันทร์"
BRPocock

18

ฉันต้องจัดการกับสถานการณ์ที่คล้ายกันเช่นนี้มาก่อน ในที่สุดเราเพิ่งกำหนดหนึ่งนักพัฒนา (ฉัน) เป็นจุดควบคุมเวอร์ชันของการติดต่อสำหรับบุคคลที่สาม

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

ไม่ใช่เรื่องสนุกที่สุดที่ต้องทำทุกวัน แต่บางครั้งก็สำคัญกว่าที่จะต้องทำงานให้เสร็จ

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


+1 ถ้าเป็นไปได้มันจะ "แก้ปัญหาได้!" สำหรับพวกเรา. ไม่ใช่เพราะเราเป็น บริษัท เล็ก ๆ และฉันไม่คิดว่าการแนะนำนักพัฒนารายหนึ่งเพียงบางส่วนหรือเพียงอย่างเดียวสำหรับงานนี้จะคืนรอยยิ้มให้ฉันจากการจัดการ (งี่เง่า) จริง ๆ ฉันรู้สึกเกี่ยวกับการจัดการของเราด้วยวิธีนี้
treecoder

2
@greengit - หากคุณแนะนำว่านี่เป็นทางออกเดียวที่คุณรู้สึกว่าใช้ได้ผลค่าใช้จ่ายจะบังคับให้จ้างคนต่าง ๆ ที่จะทำงานกับเครื่องมือของคุณ แน่นอนคุณสามารถอธิบายให้จัดการได้ว่าวิธีการแก้ปัญหาใด ๆ ยกเว้นการควบคุมเวอร์ชันจะเสียค่าใช้จ่ายไม่ว่าคุณจะทำงานกับปัญหา (และแก้ปัญหา) ที่สร้างขึ้นโดยการทำงานหรือใช้เวลาพิเศษพยายามป้องกันปัญหา ปัญหาจะเกิดขึ้นจริงพวกเขาจะเกิดขึ้นไม่ว่าอะไร)
Ramhound

3
@greengit เห็นได้ชัดว่ามันขึ้นอยู่กับสิ่งที่เกี่ยวข้องกับกระบวนการของคุณ แต่ในกรณีของฉันฉันใช้เวลาน้อยกว่า 5 นาทีต่อวันในการตรวจสอบไฟล์ของบุคคลที่สาม มันเป็นวิธีการแก้ปัญหาของฉันที่จะลดเวลาที่เสียไปในการพยายามพัฒนากระบวนการและฝึกอบรมบุคคลที่สามในนั้น
Alan Barber

ไม่ควรยากขนาดนั้น บุคคลหนึ่งคืออินเทอร์เฟซจากตัวเขียนไปยังระบบควบคุมเวอร์ชัน พวกเขารู้ที่จะส่งการเปลี่ยนแปลงทั้งหมดของเขากับเขา ไม่ควรพาเขามากกว่าหนึ่งหรือสองนาทีเพื่อวางการเปลี่ยนแปลงและส่งมอบ
Dan Ray

@greengit - นี่จะเป็นคำตอบของฉัน ใช่มันจะใช้เวลาในการทำงานที่มีประโยชน์ เขียนระบบที่กำหนดเอง (ซึ่งคุณดูเหมือนจะมีความกระตือรือร้นที่จะทำ) จะใช้เวลามากขึ้นเวลา และผู้เขียนก็ยังคงบ่น
Mike Baranczak

18

SparkleShareเป็น dropbox-clone-git ฉันคิดว่ามันเหมาะกับความต้องการของคุณ

SparkleShare สร้างโฟลเดอร์พิเศษบนคอมพิวเตอร์ของคุณ คุณสามารถเพิ่มโฟลเดอร์ที่โฮสต์จากระยะไกล (หรือ "โครงการ") ไปยังโฟลเดอร์นี้ โปรเจ็กต์เหล่านี้จะถูกซิงค์โดยอัตโนมัติกับทั้งโฮสต์และเพียร์ทั้งหมดของคุณเมื่อมีคนเพิ่มลบหรือแก้ไขไฟล์

... นี่เป็นตัวอย่างเล็ก ๆ น้อย ๆ ของสิ่งที่ทำได้ดีและไม่ดีนักเมื่อมีใบหน้าที่ยิ้มแย้ม:

ยิ่งใหญ่

  • การเปลี่ยนแปลงไฟล์โครงการเช่นข้อความเอกสารสำนักงานและรูปภาพบ่อยครั้ง
  • การติดตามและการซิงค์ไฟล์ที่แก้ไขโดยคนหลายคน
  • ย้อนกลับไฟล์ไปยังจุดใด ๆ ในประวัติศาสตร์ของมัน
  • การป้องกันการสอดแนมไฟล์ของคุณบนเซิร์ฟเวอร์โดยใช้การเข้ารหัส

ไม่ค่อยดีนัก

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

อัปเดต (พฤศจิกายน 2558) : โครงการดูเหมือนว่าจะถูกทิ้งร้าง (รุ่นล่าสุดจากเมษายน 2014)


มีแนวโน้มมาก แต่อาจยังไม่บรรลุนิติภาวะ ฉันจะจับตาดูเรื่องนี้อย่างแน่นอน
Zsolt Török

13

หากคุณสามารถจัดเตรียมพื้นที่ทำงานพร้อมการใช้งาน VCS แบบโปร่งใสพวกเขาจะใช้ VCS อย่าสอนผู้ที่ไม่ใช่โปรแกรมเมอร์ให้ใช้ VCS ในลักษณะของโปรแกรมเมอร์

เพียงค้นหาเครื่องมือแก้ไขที่มีการสนับสนุน VCS ในตัวกำหนดค่าและแสดงขั้นตอนง่าย ๆ เพิ่มเติมในงานของพวกเขา

เพียงตัวอย่าง - Editplus รู้เกี่ยวกับการโค่นล้มมีความสามารถในการดำเนินการ SVN ขั้นพื้นฐานภายในหน้าต่างแก้ไข Editplus ล่าสุดยังสามารถใช้ TortoiseGIT สำหรับการรวม Git

แก้ไข : พบวิธีแก้ปัญหาทางเลือก: EasySVNซึ่งได้รับการกำหนดค่าอย่างถูกต้องตรวจสอบสำเนาการทำงานและดำเนินการ autocommit และ automerge อนุญาตให้ใช้เครื่องมือการเขียนสำหรับผู้ใช้ปลายทางและรูปแบบของเอกสารใด ๆ


11

แล้วการตั้งค่าWebDAVล่ะ

โดยอัตโนมัติจะจัดการประวัติเวอร์ชันตรงของพวกเขาโดยอัตโนมัติ สิ่งที่พวกเขาต้องทำคือเชื่อมต่อกับเซิร์ฟเวอร์ราวกับว่ามันเป็นไดรฟ์เครือข่ายและการบันทึกทุกครั้งจะต้องกระทำ


+1 สำหรับ WebDAV จริง ๆ ไม่ได้คิดเกี่ยวกับตัวเลือกนั้น คุณคิดว่ามันยากแค่ไหนในการปรับใช้และบำรุงรักษาเซิร์ฟเวอร์ WebDAV (+ เวิร์กโฟลว์)
treecoder

มันง่ายจริงๆคุณติดตั้ง apache, การโค่นล้ม, repo จากนั้นคุณติดตั้งโมดูล apache และกำหนดค่าและเสร็จสิ้น
Malfist

-1 เนื่องจาก "automagically" ไม่ใช่คำ
dreftymac


1
บางทีคุณสามารถทำให้คำตอบนี้ชัดเจนยิ่งขึ้น: ตั้งค่าการโค่นล้ม + Apache + WebDAV บนเซิร์ฟเวอร์และติดตั้งการแชร์ WebDAV จากไคลเอนต์ที่ไม่ใช่นักพัฒนา บอกผู้ใช้ให้บันทึกพวกเขาทำงานบน WebDAV อย่างน้อยวันละครั้ง
มกราคม

7

Google Docs

Google เอกสารอาจทำสิ่งที่คุณต้องการ File > See Revision Historyจะช่วยให้คุณติดตามการเปลี่ยนแปลง

คุณมีปัญหาในการส่งไฟล์ไปมาดูแลฟรี เพียงแบ่งปันเอกสารในหมู่ทุกคน

ในที่สุดมันใช้งานง่าย; ผู้เขียนไม่จำเป็นต้องรู้ว่ามีการกำหนดเวอร์ชันเกิดขึ้น


6

ผู้ไม่เชื่อเรื่องพระเจ้าของระบบปฏิบัติการ

เขียนโปรแกรม Python ที่คุณสามารถลากและวางไฟล์ลงบนโปรแกรมที่แล้วสามารถทำgit addและgit commitและสิ่งที่ไม่และพวกเขาไม่เคยมีการจัดการกับมัน

หรือ

ใช้ระบบไฟล์ที่ใช้ WebDav คุณสามารถติดตั้งบนเครื่องของพวกเขาและให้เซิร์ฟเวอร์ทำgitสิ่งต่าง ๆ อย่างโปร่งใส

OSX / Linux

เขียนปลั๊กอิน FUSE ที่ใช้ Python ซึ่งจะใช้ไฟล์และคอมมิทมันเพื่อคอมไพล์ จากนั้นพวกเขาสามารถเปิดและบันทึกจากระบบไฟล์ที่เมาท์ได้อย่างโปร่งใส มีแหล่งข้อมูล FUSE สำหรับ Windows อยู่บ้าง แต่อาจไม่คุ้มกับการหลอก

ของ windows

คุณอาจเขียนโค้ดเพื่อใช้FileSystem Filter Driversเพื่อทำgitสิ่งต่าง ๆอย่างโปร่งใส


5

อาความสุขของผู้ไม่ใช้รหัสล้อเลียนเกี่ยวกับ ฉันขอแนะนำให้ตั้งค่าสภาพแวดล้อม git / mercurial สำหรับพวกเขา บอกให้พวกเขาบันทึกทุกอย่างในรูปแบบที่ repo สามารถจัดการได้ ด้วยtortoisegitหรือtortoisehgพวกเขาไม่จำเป็นต้องรู้ว่า repo ทำงานอย่างไร พวกเขาเพียงแค่ตรวจสอบว่าพวกเขามีเครื่องหมายอัศเจรีย์ในไดเรกทอรีโครงการของพวกเขาคลิกขวาที่ไฟล์ที่ละเมิดและคลิกกระทำ พิมพ์บทสรุปของการเปลี่ยนแปลง (พวกเขาเป็นนักเขียนใช่ไหม) และคุณก็ทำเสร็จแล้ว!

ขั้นตอนพิเศษในกระบวนการทำงานสำหรับพวกเขา แต่ไม่มีอะไรเกี่ยวกับการรวม / แยก / สิ่งที่ยอดเยี่ยม สภาพแวดล้อมที่สร้างไว้ล่วงหน้าได้รับการตั้งค่าให้อยู่ในสาขานักเขียนดังนั้นพวกเขาจึงไม่เห็นรหัส ให้สคริปต์ซิงค์อัตโนมัติทุกวัน ต่อมาหลังจากที่พวกเขาคุ้นเคยกับการกระทำคุณสามารถแสดงคุณสมบัติพิเศษให้พวกเขาได้ ความสามารถในการดูสิ่งที่เปลี่ยนแปลงเมื่อมีประโยชน์มากจนพวกเขาจะไม่สามารถทำได้หากไม่มีมันเมื่อคุณแอบเข้าไปในกระบวนการทำงานของพวกเขา


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

@greengit บางที หากคุณแสดงให้เห็นว่าคุณช่วยเหลือพวกเขาในการจัดการได้อย่างไรขั้นตอนที่ง่ายและสะดวกนี้ช่วยคุณได้อย่างไรและวิธีนี้ช่วยให้คุณประหยัดเงินหรือสร้างรายได้ให้ บริษัท ได้อย่างไรพวกเขาจะต้องดำเนินการต่อไป ธุรกิจขับเคลื่อนด้วยกำไรดังนั้นบอกหัวหน้าว่าสิ่งนี้รวมนักเขียนเข้ากับท่อทางเทคนิคและประหยัดเงินในต้นทุนการรวมการสำรองข้อมูล (คุณสำรองข้อมูล repo ใช่ไหม?) และการส่งผ่านข้อมูล
Spencer Rathbun

+1 นอกจากนี้เรายังได้ตั้งค่าผู้ประสานงานโครงการและเจ้าหน้าที่ฝ่ายบริการลูกค้าเพื่อใช้ TortoiseSVN หลังจากคำอธิบายเริ่มต้น (และช่วยพวกเขาในการชำระเงินแบบ inital) พวกเขาไม่มีปัญหาในการยอมรับรุ่นที่เปลี่ยนแปลงของพวกเขา (ส่วนใหญ่เป็นเอกสารสำนักงานและภาพจำลอง) พวกเขายังชอบว่าพวกเขาจะได้รับเวอร์ชันล่าสุดโดยอัตโนมัติหากเพื่อนร่วมงานมีการเปลี่ยนแปลงบางอย่าง
sleske

3

Share Point เป็นอย่างไร ฉันรู้ว่ามันไม่ได้เป็นที่นิยมในโลกแห่งการพัฒนา แต่ถ้านักเขียนของคุณใช้ Windows เป็นระบบปฏิบัติการมันจะทำงานได้ดีและพวกเขาก็ไม่รู้ว่าพวกเขากำลังใช้การควบคุมเวอร์ชัน (ข้อดีอย่างมากสำหรับงานของฉัน)

วิธีนี้ยังช่วยป้องกันไม่ให้พวกเขาจัดการกับสิ่งใดที่จะทำให้พวกเขาหวาดกลัวไปมากเพราะดูเหมือนว่าพวกเขากำลังขี้ตกใจกับสิ่งใหม่ ๆ


+1 เนื่องจากนี่คือสิ่งที่ทีมของเรากำลังทำอยู่และได้ผล
sq33G

ฉันชอบที่จะทำงานกับระบบควบคุมเวอร์ชันที่เหมาะสมไปยัง SharePoint ซึ่งเป็นเอกสารของ บริษัท ของเราบางส่วนเนื่องจากการอัปโหลดเวอร์ชันใหม่ไปยัง SharePoint นั้นใช้งานได้มากกว่า
Chris Morgan

2

คุณสามารถตั้งค่าเครื่องมือที่ตรวจสอบระบบไฟล์ที่ตัวเขียนกำลังบันทึกไฟล์และทำการคอมมิทอัตโนมัติทุกครั้งที่ทำการบันทึกหรือไม่?

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


1

คุณดู Plastic SCM หรือเปล่า พวกเขาพยายามทำให้ใช้ง่ายขึ้น

หากคุณต้องการสำรองข้อมูลเวอร์ชันคุณสามารถใช้ Dropbox หรือตั้งค่าบริการสำรองข้อมูลของ Windows หรือคุณสามารถติดตั้ง Crashplan หรือผลิตภัณฑ์อื่นที่คล้ายคลึงกัน


+1 สำหรับการชี้ให้ฉันเห็นข้อเสนอเชิงพาณิชย์ใหม่ในอาณาจักร DVCS
Roland Tepp

1

สำหรับ Mercurial DVCS มีอินเทอร์เฟซผู้ใช้ชื่อEasyMercurialซึ่งมีเป้าหมายที่ระบุไว้อย่างชัดเจนเพื่อให้มุมมองที่เรียบง่ายของการดำเนินการควบคุมเวอร์ชันพื้นฐาน

EasyMercurial มีวัตถุประสงค์เพื่อ:

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

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

ฉันอยากจะแนะนำให้ลอง


1

ฉันต้องทำงานร่วมกับโปรแกรมเมอร์ที่ไม่ใช่นักเขียนหลายครั้ง (ส่วนใหญ่เป็นศิลปินกราฟิกและหากนักเขียนของคุณมีเงื่อนงำเล็ก ๆ น้อย ๆ เกี่ยวกับวิธีจัดการไฟล์งานเป็นศิลปิน .) มีสามแนวทางที่เป็นไปได้:

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

โดยส่วนตัวฉันคิดว่าตัวเลือก 3 เป็นวิธีที่จะไป มันหมายถึงความเจ็บปวดและการระคายเคืองสำหรับใครก็ตามที่ต้องนำส่งไฟล์และได้รับการตรวจสอบ แต่น้อยกว่าตัวเลือกอื่น ๆ

ฉันจะบอกด้วยโปรดระวังว่าผู้ที่ไม่ใช่โปรแกรมเมอร์จะส่งไฟล์ด้วยชื่อไฟล์เก่า ๆ ที่คุณนึกออก อนุสัญญาการตั้งชื่อเป็นคนต่างด้าวที่แปลกสำหรับพวกเขา พวกเขาจะให้ไฟล์ที่เรียกว่า "รูปภาพ" หรืออะไรบางอย่างแล้วเมื่อคุณบอกพวกเขาถึงสิ่งที่ผิดปกติมันจะให้ไฟล์ที่ชื่อว่า "Picture_Final" ซึ่งมีความผิดพลาดเพียงประมาณ 3 ข้อเท่านั้น เมื่อคุณชี้ให้เห็นคุณจะได้รับไฟล์อื่นที่เรียกว่า "Picture_NewFinal" แล้ว (ถ้าคุณโชคดี) "Picture_NewFinal2" ถึงแม้ว่ามันจะเป็นไปได้ที่พวกเขาจะพูดถึงการพัฒนาทางประวัติศาสตร์และเรียกมันว่า "ไอคอนประแจ" สิ่ง".

อีกครั้งคุณสามารถลองบังคับใช้การตั้งชื่อซึ่งหมายถึงบอกพวกเขาล่วงหน้าว่าจะเรียกไฟล์ทุกไฟล์ไว้ล่วงหน้าหรือคุณสามารถใช้เวลาหลายชั่วโมงในการยกเลิกการคัดลอกและเปลี่ยนชื่อสิ่งที่พวกเขาส่งให้คุณ ที่นี่ฉันจะบอกว่าคุณต้องการสเปรดชีตเพื่อสุขภาพจิตของคุณเองดังนั้นลองไปให้พวกเขาทำตาม: อย่าแปลกใจเมื่อพวกเขาไม่ทำ

หวังว่าจะช่วยได้ - สนุก!


0

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

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

แต่นั่นเป็นสอง ifs ใหญ่สวย


0

ปล่อยให้พวกเขาทำงานในโฟลเดอร์บันทึกไฟล์ตามปกติ

วันละหนึ่งครั้ง (หรือสัปดาห์ ฯลฯ ) คัดลอกเนื้อหาของโฟลเดอร์นั้นไปที่ backup_dd_mm_yyyy ซอร์สโค้ดระบบส่วนใหญ่ใช้พื้นที่เล็กน้อยในการให้พื้นที่ว่างในปัจจุบัน

การคัดลอกสามารถทำได้โดยคุณพวกเขาบุคคลที่สามเครื่องมือหรือสคริปต์

สิ่งนี้ จำกัด การสูญเสียไปหนึ่งวันให้ประวัติมีความโปร่งใสต่อพวกเขา

ไม่สมบูรณ์แบบสำหรับฝ่ายใดฝ่ายหนึ่ง แต่คำตอบที่พยายามจะโจมตีกลาง

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