\

Facebook


แสดงบทความที่มีป้ายกำกับ TortoiseSVN แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ TortoiseSVN แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 1 พฤษภาคม พ.ศ. 2557

[TortoiseSVN] icon overlay หายไปไหน! เรียกสเตตัสบน folder กลับคืนมา


นั่งเขียนโค๊ดอยู่ดีๆวันดีคืนดี icon แสดง status ของ TortoiseSVN ก็หายไปซะอย่างงั้น ไม่มีอีกแล้วสีเขียวที่แสดง lasted version กับสีแดงคือ modify version เนื่องจากงานยุ่งมากเลยไม่ได้ใส่ใจ คิดว่าถ้า restart เครื่องใหม่ก็น่าจะหาย วันนั้นทั้งวันเลยคอมมิตแบบนิมิตล้วนๆ เดาเอาว่าไฟล์ไหนเราแก้บ้าง เสียววูบ




หลังรีสตาทก็ยังไม่หายอีก แสดงว่า SVN น่าจะพังแล้วหล่ะ แล้ววันนี้ก็แก้หลายไฟล์ด้วย ด้วยคอมมิตแบบนิมิตอีกได้พังทั้งเซิฟแน่ เลยต้องนั่งหาทางแก้กันไปสรุปได้สั้นๆดังนี้

TortoiseSVN จะไปสร้างคีย์ใน shell icon overlay identifiers ให้เราอัตโนมัติ โดยมันก็มีลิมิตอยู่ว่าไม่เกินเท่าไหร่ แต่เมื่อโปรแกรมอื่นๆก็อยากสร้าง icon overlay ขึ้นมาเหมือนกันทำให้มันเกินลิมิตที่ Windows จะแบกรับไหวดังนั้นเราต้องเข้าไปลบตัวที่ไม่จำเป็นก็ใช้งานได้เหมือนกัน


เริ่มกันเลยไปที่ RUN แล้วใส่คำว่า "regedit"  เพื่อเปิดรีจิสเตอร์ขึ้นมาแก้ไข จากนั้นไปที่ HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Explorer > ShellIconOverlayIdentifiers จะเห็นเรียงรายกันมาเป็นแถวๆเลยครับ ซึ่งเอสวีเอนก็จองไปละ 5-6 ตัว ให้ลบตัวที่เป็น TortoiseIgnore, TortoiseLocked พวกที่ไม่สำคัญที่คุณไม่ได้ใช้ จากนั้นให้ start task manager โดยการคลิกขวาที่ task bar > task manager แล้ว End task ตัว Explorer ซะแล้ว Restart มันขึ้นมาใหม่ หรือถ้ากลัวพัง ให้ restart เครื่อง 1 ครั้ง แล้ว SVN จะกลับมาเป็นไอคอนเขียว แดง เหมือนเดิม



ถ้ายังไม่หาย ลองคลิกขวาเลือก TortoiseSVN > Settings เลือกตามหาแทป Icon overlay แล้วติกเลือกตรงส่ง Network drives คลิก Apply แล้วกด OK เพียงแค่นี้ Folder ที่มี repository ก็จะเห็น icon แสดงเว่อร์ชั่นแล้วหล่ะครับ

ที่มา : http://www.sitepoint.com/missing-tortoisesvn-file-status-overlay-icons/

วันอังคารที่ 27 สิงหาคม พ.ศ. 2556

อัพเดตโค๊ด Revisionล่าสุดมาMerge >> แล้วโค๊ดอะไรเปลี่ยนแปลงบ้าง


การใช้งาน Revision Control ในโปรเจกค์เขียนโปรแกรมที่มีขนาดใหญ่ถือว่าจำเป็นมาก เพราะเป็นเหมือนตัวช่วยให้เราทำงานแยกส่วนกับคนอื่นได้โดยอ้างอิงโค๊ดตรงกลาง ดังนั้นเมื่อใดก็ตามที่มีการแก้ไขไฟล์จะมีการเก็บ Log ส่วนที่เปลี่ยนแปลงไปกับ SVN ทำให้เราทราบ version ปัจจุบันว่ามีการปป.ไปถึงไหน และสามารถ revert กลับเพื่อกู้คืน version เดิมกรณีที่โค๊ดใหม่กระทบระบบส่วนรวม


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


ถ้าใช้เต่า SVN (TortoiseSVN) และ plugin svn กับ visual Studio
บนโปรเจกของเราคลิกขวาที่ไฟล์ที่เพิ่ง update มาใหม่ >> เลือก Show Different from xxx.cs แล้ว SVN จะทำการเปรียบเทียบไฟล์ของเรากับ Version ล่าสุดว่ามีส่วนไหนที่แตกต่างกันบ้าง โดย

- สีเขียว : โค๊ดที่ฝั่งเราเพิ่มลงไป
- สีแดง : โค๊ดที่ฝั่งเค้ายังไม่มี หรือโดนลบ
โค๊ดในหน้าต่างทางซ้ายมือคือฝั่ง server ส่วนทางขวามือคือโค๊ดของเรา เพียงเท่านี้เราก็สามารถ อัพเดตโค๊ดแล้วเอามาดูความแตกต่างได้ง่ายๆ

นอกจากนี้ยังสามารถดูความแตกต่างของแต่ละ revision ได้ด้วยการ คลิกขวาที่หัว solution คลิก VisualSVN > Show Log.. เพื่อเเสดง Log ไฟล์ทั้งหมดที่ถูกคอมมิต > เลือกไฟล์เดียวกัน 2 ไฟล์ที่ต่าง revision > เลือก Compare  Revision จะปรากฎหน้าต่างซ้ายขวาเหมือนเดิม แต่คราวนี้จะเเสดงสีเหลืองที่โค๊ดที่แตกต่างกัน
ส่วนคำสั่ง Show different as unified diff จะใช้เพื่อแสดงเฉพาะโค๊ดตัวล่าสุดว่ามีการอัพเดตส่วนไหนไปบ้าง

พอใช้ SVN เเล้วการควบคุม version เป็นเรื่องง่ายไปเลย ยิ่งบน Windows มีเต่าSVN ที่ใช้งานง่ายมากๆ นึกถึงตอนเรียนที่พองานแต่ละคนเสร็จก็ก็อปใส่ Handy Drive มารวมกันแล้วแก้กันยาวมากๆ นึกแล้วตลกตัวเอง

May be like this posts