Top Ads

Microsoft dan GitHub Menggunakan sistem kontrol versi Git untuk pengembangan windows



Microsoft bukan satu-satunya perusahaan yang tertarik untuk menskalakan Git.

Salah satu cerita mengejutkan tahun lalu adalah pengumuman Microsoft bahwa mereka akan menggunakan sistem kontrol versi Git untuk pengembangan Windows. Microsoft harus memodifikasi Git untuk menangani tuntutan pengembangan Windows namun mengatakan bahwa mereka ingin mendapatkan modifikasi ini diterima di hulu dan diintegrasikan ke dalam klien standar Git.

Rencana itu nampaknya berjalan dengan baik. Kemarin, perusahaan tersebut mengumumkan bahwa GitHub telah mengadopsi modifikasi dan keduanya akan bekerja sama untuk menghadirkan klien yang sesuai ke macOS dan Linux.

Microsoft ingin pindah ke Git karena fitur Git, seperti percabangan dan popularitasnya yang mudah di kalangan pengembang. Tapi transisi itu menghadapi tiga masalah. Git tidak dirancang untuk sejumlah besar pengembang - lebih dari 20.000 aktif mengerjakan basis kode. Selain itu, Git tidak dirancang untuk basis kode yang begitu besar, baik dari segi jumlah file dan riwayat versi untuk setiap file, atau dalam ukuran tipis, masuk lebih dari 300GB. Bila menggunakan Git standar, bekerja dengan sumber repositori tidak dapat diterima lambat. Operasi umum (seperti memeriksa file mana yang telah dimodifikasi) akan memakan waktu beberapa menit.

Solusi perusahaan adalah mengembangkan Git Virtual File System (GVFS). Dengan GVFS, repositori repositori Git lokal virtualisasi sedemikian rupa sehingga mengandung metadata dan hanya file kode sumber yang telah diambil secara eksplisit. Dengan menghilangkan kebutuhan untuk mereplikasi setiap file (dan, karenanya, memeriksa setiap file untuk modifikasi), baik jejak disk dari repositori dan kecepatan bekerja dengan itu meningkat pesat. 

Microsoft memodifikasi Git untuk menangani sistem file virtual ini. Klien diubah sehingga tidak perlu mencoba mengakses file yang tidak tersedia secara lokal dan protokol transfer baru ditambahkan untuk memilih file individual dari repositori jarak jauh secara selektif.

Secara internal, ini terbukti berhasil, dengan perkembangan Windows yang secara substansial bermigrasi ke Git pada bulan Mei tahun ini. Tapi bagaimana dengan komunitas Git yang lebih luas?

Microsoft mengatakan bahwa sejauh ini, sekitar setengah dari modifikasinya telah diterima di hulu, pengembang hulu Git secara luas menyetujui pendekatan yang telah diambil perusahaan untuk memperbaiki skala perangkat lunak. Redmond juga mengatakan bahwa pihaknya telah bersedia melakukan perubahan terhadap pendekatannya untuk memenuhi tuntutan Hulu Git. Kompleksitas terbesar adalah Git memiliki pendekatan kompatibilitas yang sangat konservatif, sehingga repositori tetap kompatibel di seluruh versi.

Minat dan keterlibatan GitHub dimotivasi oleh keinginan perusahaan untuk memenuhi kebutuhan pelanggan perusahaan. Open source, gratis GitHub hosting tidak memerlukan pekerjaan penskalaan yang telah dilakukan Microsoft - jelas, jika seseorang menggunakan standar Git, hari ini maka standar Git harus cukup baik untuk proses pengembangannya. Tapi di pihak perusahaan berbayar, situasinya bisa sedikit berbeda.

 Industri tertentu memiliki repositori besar yang menimbulkan masalah dengan Git; Misalnya, repositori permainan sering berukuran besar secara fisik bukan karena mereka memiliki jutaan file dan dekade sejarah, namun karena banyaknya grafis dan aset lainnya. Perbaikan penskalaan yang telah dilakukan Microsoft terhadap Git juga berguna untuk jenis repositori besar ini. Dengan demikian, memiliki keluarga perbaikan yang sama yang tersedia di GitHub akan memungkinkan perusahaan untuk melayani masyarakat dengan lebih baik.

Microsoft sendiri memiliki tuntutan serupa dari perusahaan; perusahaan tersebut mengatakan kepada kami bahwa Siemens ingin pindah dari kontrol versi Team Foundation Server untuk menggunakan Git sebagai gantinya. Tapi itu hanya akan bisa melakukan ini setelah perbaikan penskalaan dilakukan; Saat ini, skala kontrol TFS lebih baik.

Seperti namanya, GVFS membutuhkan driver sistem file untuk bekerja. Divisi Windows bekerja dengan tim teknik untuk menambahkan fitur ke Windows agar efisien. Tujuannya adalah untuk akhirnya membuat kemampuan ini menjadi API yang terdukung dan dapat diperluas, dan pada titik tertentu, memindahkan sistem seperti placeholder OneDrive baru untuk menggunakan API yang sama.

Microsoft dan GitHub juga bekerja untuk membawa kemampuan serupa ke platform lain, dengan macOS datang lebih dulu, dan kemudian Linux. Cara yang jelas untuk melakukan hal ini pada kedua sistem adalah dengan menggunakan FUSE, sebuah infrastruktur untuk membangun sistem file yang berjalan dalam mode pengguna daripada mode kernel (diinginkan karena pengembangan mode pengguna lebih mudah dan lebih aman daripada mode kernel). Namun, perusahaan telah menemukan bahwa FUSE tidak cukup cepat untuk ini-pelajaran Dropbox juga dipelajari saat mengembangkan kemampuan serupa, Project Infinite. Saat ini, perusahaan yakin bahwa mengetuk mekanisme kelayakan macos yang disebut Kauth (atau KAuth) akan menjadi cara terbaik untuk maju.

Author : Rama trisna pasa

Post a Comment

0 Comments