Atlassian บริษัทเจ้าของเว็บฝากซอร์ส Bitbucket (คู่แข่งรายสำคัญกับ GitHub) ออกฟีเจอร์ดีพลอยขึ้นสู่กลุ่มเมฆของ Amazon, Microsoft และ DigitalOcean ได้ภายในหน้าเว็บเลยทันที
เบื้องหลังความสามารถดังกล่าว สำเร็จได้ผ่านเครื่องมือ Bamboo ที่คอยจัดการงานด้าน CI (continuous integration) ร่วมกับ Bitbucket Connect ซึ่งเป็นส่วนเสริมสำหรับติดต่อกลุ่มเมฆ โดยปัจจุบันมีกลุ่มเมฆที่รองรับส่วนเสริมนี้แล้ว 3 เจ้า ได้แก่ AWS CodeDeploy จาก Amazon, Microsoft Azure และ DigitalOcean ครับ
GitHub ประกาศว่าจะปล่อย 2 ความสามารถใหม่ภายในไม่กี่สัปดาห์หน้า ได้แก่
GitHub ออกแอพ GitHub Desktop สำหรับ Windows และ OS X โดยแอพดังกล่าวจะมาแทนที่แอพ GitHub for Windows / Mac เดิมครับ
เท่าที่ลองเล่นคร่าวๆ ผมพบว่าระบบกิ่งก้านถูกออกแบบให้เข้าใจง่ายขึ้นมากครับ และการสั่งรวมกิ่งก้านที่ก่อให้เกิดข้อขัดแย้ง (merge conflict) ก็ทำงานได้อย่างถูกต้องไม่ต้องเปิดคอมมานด์ไลน์ขึ้นมาแก้ไขแล้ว
นอกจากนี้ หากใครยังใช้ Git ไม่คล่อง เมื่อเปิดโปรแกรมครั้งแรกจะมี tutorial เล็กๆ ช่วยแนะนำ best practice การใช้งานด้วยครับ
ดาวน์โหลดแอพได้จาก desktop.github.com
ที่มา: GitHub Blog
ไฮไลท์รอบนี้อยู่ที่คำสั่งย่อย git worktree
สำหรับจัดการกับโค้ดโครงการเดียว แต่มีก๊อบปี้หลายชุดครับ
โดยหลักการของ worktree นั้น เกิดจากการที่บางครั้งเมื่อต้องทำงานกับโครงการที่ซับซ้อน เราอาจต้องการ checkout รุ่นต่างๆ ในโค้ดโครงการออกมาเป็นหลายไดเรกทอรี เช่น ในขณะที่กำลังทำงานอยู่ที่กิ่ง develop
และต้องการสลับไปแก้ไขข้อผิดพลาดที่กิ่ง hotfix
แต่ไม่ต้องการ checkout มาทับงานที่ทำอยู่ในไดเรกทอรีปัจจุบัน ท่าเดิมที่ใช้อาจจะเป็นการ clone โครงการออกไปยังไดเรกทอรีใหม่แล้วเริ่มทำงานกับกิ่ง hotfix
ที่นั่น หากเปลี่ยนมาใช้ worktree คำสั่งจะหดสั้นเหลือเพียง
เราเพิ่งเห็นข่าว Google Code ประกาศปิดโครงการ ไปเมื่อเร็วๆ นี้ โดยคำแนะนำของกูเกิลคือให้ย้ายไปใช้ GitHub หรือ Bitbucket แทน
แต่ล่าสุดกูเกิลกลับเปิดตัวบริการลักษณะเดียวกันอย่างเงียบๆ ในชื่อว่า Google Cloud Source Repositories โดยเป็นสมาชิกหนึ่งของบริการ Google Cloud Platform
Google Cloud Source Repositories คือบริการ Git แบบโฮสต์อยู่บนคลาวด์ของกูเกิล (แบบเดียวกับ GitHub) แต่ก็เพิ่มฟีเจอร์ต่อเนื่องกันอย่าง Source Code Editor ผ่านเว็บเบราว์เซอร์ และ Cloud Debugger สำหรับดีบั๊กโค้ดที่รันอยู่บน Compute Engine หรือ App Engine ได้ด้วย
Git เป็นซอฟต์แวร์ version control ที่ได้รับความนิยมเป็นอย่างมากเพราะช่วยอำนวยความสะดวกในการจัดการซอร์สโค้ดในโครงการขนาดใหญ่ที่มีนักพัฒนาจำนวนมากได้ดี
โครงการโอเพนซอร์สหลายโครงการที่ใช้ Git เป็นหลักนิยมใช้บริการ GitHub ซึ่งเป็น Git hosting ที่มีเครื่องมืออำนวยความสะดวกในการทำงานอย่าง wiki, issue tracker ให้ใช้ได้ฟรีและในบางโครงการที่ต้องการความเป็นส่วนตัวเข้าถึงได้เฉพาะคนภายในก็สามารถตั้งเซิร์ฟเวอร์เองได้เช่นกัน
แม้ว่า Git จะถูกออกแบบให้สามารถทำงานแบบกระจาย (decentralized) แต่ก็ต้องพึ่งพาเซิร์ฟเวอร์สำหรับเก็บไฟล์ index และซอร์สโค้ด นักพัฒนาในโครงการยังจำเป็นต้องเข้าถึงเซิร์ฟเวอร์ผ่าน URL หากเซิร์ฟเวอร์มีปัญหาก็อาจทำให้การพัฒนาหยุดชะงักได้
ความสามารถใหม่รอบนี้คือ push แบบอันหนึ่งอันเดียว (atomic) ครับ เช่น
$ git push --atomic branch1 branch2
การกระทำนี้จะรับรองว่า การ push กิ่งทั้ง branch1
และ branch2
ต้องสำเร็จเท่านั้น ถึงทำการ push กิ่งทั้งสองได้ มิเช่นนั้นแล้วก็จะไม่มีกิ่งไหนที่ถูก push เลย
ในสถานการณ์ทั่วๆ ไปอาจจะไม่ได้ใช้ความสามารถนี้เท่าไหร่ แต่เมื่อต้องทำระบบอัตโนมัติ มันจะช่วยลดความผิดพลาดได้ครับ
ส่วนความสามารถอื่นๆ ที่ถูกปรับปรุงเพิ่มเติมคือ
เมื่อเดือนที่แล้ว Git มีอายุครบ 10 ปีพอดี เว็บ Linux.com ได้สัมภาษณ์ Linus Torvalds ผู้พัฒนาซอฟต์แวร์ตัวนี้ขึ้นมา โดยความเห็นที่น่าสนใจมีดังนี้
การออกแบบที่เป็นจุดแข็งอย่างหนึ่งของระบบจัดการเวอร์ชันซอฟต์แวร์แบบกระจายศูนย์อย่าง Git คือ เครื่องไคลเอนต์ทุกเครื่องต้องเก็บข้อมูลทุกอย่างไว้ติดตัว (เพื่อจะสามารถทำหน้าที่เป็นเซิร์ฟเวอร์สำรองได้ทันทีเมื่อเครื่องเซิร์ฟเวอร์จริงเสียหาย)
แต่จุดแข็งนี้ก็อาจไม่ใช่ข้อดีเสมอไป โดยเฉพาะอย่างยิ่งเมื่อต้องทำงานกับไฟล์ขนาดใหญ่ เช่น ไฟล์เสียง ไฟล์ภาพยนตร์ เพราะเครื่องไคลเอนต์ทุกเครื่องต้องเสียพื้นที่เก็บไฟล์ขนาดใหญ่นี้ติดตัวเสมอ
GitHub จึงออกส่วนเสริม Large File Storage (LFS) โดยเปลี่ยนมาเก็บพอยเตอร์ของไฟล์ขนาดใหญ่เหล่านั้นแทน ส่วนไฟล์จริงจะเก็บไว้บนเซิร์ฟเวอร์ของ GitHub หรือ GitHub Enterprise
หลังจากออกรุ่น 2.0 ไปเมื่อกลางปีที่แล้ว ตอนนี้ Git ก็เดินทางมาถึงเลขรุ่น 2.3 แล้วครับ
ของเล่นใหม่รุ่นนี้ คือการสั่ง push เพื่อ deploy จากไคลเอนต์ได้ทันที เพียงเพิ่มคำสั่งนี้ไปที่ repository ฝั่งเซิร์ฟเวอร์
$ git config receive.denyCurrentBranch updateInstead
คำเตือนสำหรับเทคนิคนี้คือเซิร์ฟเวอร์จะใช้พื้นที่เก็บไฟล์มากขึ้น เพราะ Git ต้องเก็บประวัติทั้งหมดของ repository ไว้ นอกจากนี้ยังต้องระวังผู้ใช้ทั่วไปเข้ามาอ่านไฟล์ในโฟลเดอร์ .git
ด้วยครับ
ช่องโหว่บนไคลเอนต์ของ Git หลายตัวบน OS X และวินโดวส์ทำให้การโคลนจาก repository ที่มุ่งร้ายสามารถรันโค้ดบนเครื่องของเหยื่อได้ ตอนนี้มีผลกับ OS X และวินโดวส์เท่านั้น เนื่องจากใช้ระบบไฟล์ที่ไม่สนใจตัวใหญ่หรือตัวเล็กในภาษาอังกฤษและการแปลงค่า unicode
ช่องโหว่นี้อาศัยการโคลนโฟลเดอร์ .Git
(G ตัวใหญ่) ทำให้บนระบบไฟล์ที่ไม่สนตัวใหญ่ตัวเล็กจะวางโฟลเดอร์ทับโฟลเดอร์เดิมของ Git ไป อีกส่วนหนึ่งคือแนวทางการแปลง unicode ของระบบไฟล์ HFS+ ที่ไม่สนใจ unicode บางตัว ทำให้แฮกเกอร์สามารถสร้างโฟลเดอร์เช่น .g\u200cit
แล้วยังวางไฟล์ทับโฟลเดอร์ .git
อยู่ดี
Junio C Hamano ผู้ดูแลคนสำคัญของโครงการ Git ประกาศว่า Git รุ่น 2.0 ออกแล้ว
ความเปลี่ยนแปลงในรุ่นนี้ไม่ค่อยมีอะไรใหม่ให้ผู้ใช้เดิมสังเกตได้ แต่สำหรับผู้ใช้ใหม่จะได้รับความสะดวกมากขึ้น เช่น การเปลี่ยนค่าเริ่มต้นของการ push ที่เปลี่ยนจาก matching ไปเป็น simple อ่าน release note สำหรับรายละเอียดการเปลี่ยนแปลงทั้งหมด
ขณะนี้หน้าดาวน์โหลดยังเป็นเวอร์ชันเก่าอยู่ อยากได้ต้อง build เองครับ
ที่มา: บล็อกของ Junio C Hamano
Windows Azure กลายเป็นแบรนด์ใหญ่สำหรับบริการกลุ่มเมฆสารพัดชนิดของไมโครซอฟท์ ซึ่งหนึ่งในนั้นคือ Azure Mobile Services บริการ "แบ็คเอ็นด์บนกลุ่มเมฆ" สำหรับแอพมือถือที่ไม่ยากลงทุนทำเซิร์ฟเวอร์เอง
ล่าสุดไมโครซอฟท์ประกาศขยายฟีเจอร์ของ Azure Mobile Services อีกหลายอย่าง ดังนี้
ไมโครซอฟท์ประกาศข่าวว่าเครื่องมือพัฒนาโปรแกรมของตัวเอง 2 ตัวคือ Visual Studio และ Team Foundation Server รองรับระบบการจัดการเวอร์ชันซอฟต์แวร์แบบโอเพนซอร์ส Git แล้ว
Git เป็นระบบการจัดการเวอร์ชันซอฟต์แวร์แบบกระจายศูนย์ (distributed version control systems หรือ DVCS) ที่พัฒนาโดย Linus Torvalds เพื่อใช้กับเคอร์เนลของลินุกซ์แทนระบบ BitKeeper เดิม ปัจจุบัน Git ได้รับความนิยมสูงมากในโลกโอเพนซอร์ส และเริ่มขยายตัวเข้ามาสู่โลกซอฟต์แวร์แบบปิดโค้ดด้วยเช่นกัน
ไมโครซอฟท์อธิบายเหตุผลของการสนับสนุน Git เพราะเห็นว่า DVCS คืออนาคตของการจัดการเวอร์ชันซอฟต์แวร์ และจากการประเมินระบบที่มีในท้องตลาดแล้ว Git เหมาะสมที่สุด (เทียบกับตัวอื่นๆ อย่าง Mercurial หรือสร้างขึ้นมาใหม่เอง)
ทางเว็บไซต์ GitHub ได้ร่วมมือกับ Code School ทำการเปิดตัวเว็บไซต์ "Try Git" ซึ่งจะเป็นบทเรียนสอนการใช้ Git เบื้องต้น โดยผู้ใช้ไม่จำเป็นต้องลงโปรแกรมบนเครื่องคอมพิวเตอร์ เพราะสามารถพิมพ์คำสั่งและลองใช้งาน Git ผ่านทางเว็บเบราว์เซอร์ได้เลยครับ
หลังจากใช้ Subversion เป็นตัวจัดการซอร์สมาพักใหญ่ ตอนนี้ PHP ก็ย้ายมาอยู่บน GitHub แล้ว
การเปลี่ยนแปลงนี้มีการพูดคุยและโหวตกันตั้งแต่กลางปีก่อน และเพิ่งย้ายเสร็จสิ้นเมื่อไม่นานมานี้ โดยเหตุผลที่เลือก GitHub ก็เพราะต้องการใช้ Git นั่นเอง
ท่านใดสนใจซอร์สของมัน ก็สามารถเข้าไปเยี่ยมชมที่ php-src ได้เลยครับ
ที่มา: GitHub Blog
ASP.NET MVC เป็นเฟรมเวิร์คสำหรับการพัฒนาเว็บที่ใช้หลักการ model-view-controller (ลักษณะเดียวกับ Rails, Django, Symfony, Zend) บนเทคโนโลยี ASP.NET ฝั่งของไมโครซอฟท์
ASP.NET MVC ใช้สัญญาอนุญาตแบบโอเพนซอร์สมาตั้งแต่เวอร์ชันแรก (ตอนนี้ถึงเวอร์ชัน 3 แล้ว) เพียงแต่เปิดโค้ดอย่างเดียว การพัฒนายังเป็นไมโครซอฟท์ทำคนเดียวเป็นหลัก
ล่าสุด Scott Guthrine หัวหน้าทีม .NET ของไมโครซอฟท์ออกมาประกาศความเปลี่ยนแปลงดังนี้
ทำได้ไม่เลวเลยทีเดียว สำหรับโปรแกรม software configuration management (SCM) ที่เพิ่งเกิดเมื่อปี 2005 อย่าง Git หลังจากมี GitHub เป็นของตัวเองจนได้รับการยอมรับจาก Bitbucket, SourceForge, Google Code เป็นหนึ่งใน SCM ที่มีให้เลือกใช้ ตอนนี้ก็ถึงคราวของ CodePlex บริการโฮสต์โครงการโอเพนซอร์สของไมโครซอฟท์แล้ว
ผลจากการรองรับ Git ในครั้งนี้ ทำให้ผู้ใช้ CodePlex มีทางเลือกมากขึ้นจาก Team Foundation Server (TFS) ที่เป็นของไมโครซอฟท์และ Mercurial ซึ่งเป็น SCM แบบ distribution เช่นเดียวกัน ผู้ที่มีโครงการเดิมฝากไว้อยู่แล้วสามารถขอเปลี่ยนมาใช้ Git ได้ผ่านหน้าซัพพอร์ตครับ
Andy Rubin เป็นผู้ก่อตั้งมือถือตระกูล Sidekick ซึ่งโดนไมโครซอฟท์ซื้อกิจการไป ภายหลังเขาออกมาตั้งบริษัทใหม่ Android ก่อนขายให้กูเกิลอีกรอบ การเรียกเขาว่าเป็น "บิดาแห่ง Android" คงไม่ผิดนัก
มีรายงานว่า Andy Rubin เข้าสู่โลกแห่งทวิตเตอร์แล้ว (@arubin) โดยข้อความแรกและข้อความเดียวของเขาในขณะนี้ พูดถึง "ความเปิด" ของ Android โดยแสดงผ่านโค้ดการดึงซอร์สโค้ดของ Android ผ่าน git และสั่ง make
the definition of open: "mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make"
ผมคงไม่ต้องอธิบายมั้งว่า Andy Rubin ตอบโต้ใคร
เมื่อสักครู่ผมได้อ่านข่าวเกี่ยวกับ Git จาก Blog ของเว็บ GitHub ตอนนี้เขากำลังจัดทำแบบสำรวจผู้ใช้ Git ประจำปีกันครับ
ผมเข้าไปดูก็เห็นว่าช่องแรกนั้นให้ใส่ชื่อประเทศ ก็เลยคิดว่าน่าจะชวนให้ทุกๆ คนที่ใช้ Git ในประเทศไทยเข้าไปทำกันนะครับ ประเทศเราจะได้มีส่วนร่วมกับโปรเจ็คดีๆ อย่างนี้เยอะขึ้น
Survey เข้าไปทำได้ที่ http://tinyurl.com/GitSurvey2010 เลยครับ ส่วนผลสำรวจนั้นเมื่อทำเสร็จแล้วทางทีมงานเขาจะเอาไปขึ้นไว้บน Git Wiki ที่หน้า GitSurvey2010 ครับ