Virtual File System for Git

Last updated

VFS for Git
Developer(s) Microsoft
Stable release
1.0.20210.1 / July 28, 2020;3 years ago (2020-07-28) [1]
Preview release
1.0.20175.6 / June 23, 2020;3 years ago (2020-06-23)
Repository
Written in C++ and C#
Operating system Windows 10 Creators Update and later, macOS
Type Virtual file system for Git
License MIT License
Website vfsforgit.org   OOjs UI icon edit-ltr-progressive.svg

Virtual File System for Git (VFS for Git), developed by Microsoft, is an extension to the Git version control system.

Contents

Overview

VFS for Git is designed to ease the handling of enterprise-scale Git repositories, such as the Microsoft Windows operating system (whose development switched to Git under Microsoft's internal "One Engineering System" initiative). The system exposes a virtual file system that only downloads files to local storage as they are needed.

History

VFS for Git was originally named Git Virtual File System (GVFS). However due to complaints by the developers of GNOME over confusion with GNOME Virtual File System, Microsoft announced that it would solicit ideas for a new name of the software in June 2018, following its acquisition of GitHub. [2] Its first release [3] under the new name was in August 2018.

In November 2017, GitHub announced that it would support VFS for Git. [4] [5]

VFS for Git has been superseded by Scalar. [6] Scalar was then integrated into the Microsoft Git project. [7] [8]

See also

Related Research Articles

Microsoft Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For instance, the family of desktop versions such as Windows 11 for consumers and corporate desktops, Windows Server for servers, and Windows IoT for embedded systems. Defunct Windows families include Windows 9x, Windows Mobile, and Windows Phone.

<span class="mw-page-title-main">GNOME Files</span> File manager

GNOME Files, formerly and internally known as Nautilus, is the official file manager for the GNOME desktop. Nautilus was originally developed by Eazel with many luminaries from the tech world including Andy Hertzfeld (Apple), chief architect for Nautilus. The nautilus name was a play on words, evoking the shell of a nautilus to represent an operating system shell. Nautilus replaced Midnight Commander in GNOME 1.4 (2001) and has been the default file manager from version 2.0 onwards.

gedit Linux text editor

gedit is a text editor designed for the GNOME desktop environment. It was GNOME's default text editor and part of the GNOME Core Applications until GNOME version 42 in March 2022, which changed the default text editor to GNOME Text Editor. Designed as a general-purpose text editor, gedit emphasizes simplicity and ease of use, with a clean and simple GUI, according to the philosophy of the GNOME project. It includes tools for editing source code and structured text such as markup languages.

<span class="mw-page-title-main">Cinelerra</span> Video editing software

Cinelerra is a video editing and track-based digital compositing program designed for Linux. It is free software distributed under the open source GNU General Public License. In addition to editing, it supports advanced composition operations such as keying and mattes, including a title generator, many effects to edit video and audio, keyframe automation, and many other professional functions depending on the variant. It processes audio in 64 floating-point form. Video is processed in RGBA or YUVA color spaces, in 16-bit integer or floating-point form. It is resolution and image refresh rate independent. The GG variant supports up to 8K video, and can also create DVDs and Blu-rays.

GnomeVFS was an abstraction layer of the GNOME platform for the reading, writing and execution of files. Before GNOME 2.22 GnomeVFS was primarily used by the appropriate versions of Nautilus file manager and other GNOME applications.

The Media Transfer Protocol (MTP) is an extension to the Picture Transfer Protocol (PTP) communications protocol that allows media files to be transferred automatically to and from portable devices. Whereas PTP was designed for downloading photographs from digital cameras, Media Transfer Protocol allows the transfer of music files on digital audio players and media files on portable media players, as well as personal information on personal digital assistants. MTP is a key part of WMDRM10-PD, a digital rights management (DRM) service for the Windows Media platform. In 2011, it became the standard method to transfer files to and from Android.

<span class="mw-page-title-main">Git</span> Software for version control of files

Git is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

In software development, distributed version control is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centralized version control, this enables automatic management branching and merging, speeds up most operations, improves the ability to work offline, and does not rely on a single location for backups. Git, the world's most popular version control system, is a distributed version control system.

A source-code-hosting facility is a file archive and web hosting facility for source code of software, documentation, web pages, and other works, accessible either publicly or privately. They are often used by open-source software projects and other multi-developer projects to maintain revision and version history, or version control. Many repositories provide a bug tracking system, and offer release management, mailing lists, and wiki-based project documentation. Software authors generally retain their copyright when software is posted to a code hosting facilities.

<span class="mw-page-title-main">Mercurial</span> Distributed revision-control tool for software developers

Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux.

GVfs is GNOME's userspace virtual filesystem designed to work with the I/O abstraction of GIO, a library available in GLib since version 2.15.1. It installs several modules that are automatically used by applications using the APIs of libgio. There is also FUSE support that allows applications not using GIO to access the GVfs filesystems.

<span class="mw-page-title-main">GitHub</span> Hosting service for software projects

GitHub, Inc. is a platform and cloud-based service for software development and version control, allowing developers to store and manage their code. It uses Git software, providing the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.

<span class="mw-page-title-main">GIO (software)</span>

GIO is a library, designed to present programmers with a modern and usable interface to a virtual file system. It allows applications to access local and remote files with a single consistent API, which was designed "to overcome the shortcomings of GnomeVFS" and be "so good that developers prefer it over raw POSIX calls."

<span class="mw-page-title-main">GNOME</span> Desktop environment for Linux and other Unix-like systems

GNOME, originally an acronym for GNU Network Object Model Environment, is a free and open-source desktop environment for Linux and other Unix-like operating systems.

systemd Suite of system components for Linux

systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manager" – an init system used to bootstrap user space and manage user processes. It also provides replacements for various daemons and utilities, including device management, login management, network connection management, and event logging. The name systemd adheres to the Unix convention of naming daemons by appending the letter d. It also plays on the term "System D", which refers to a person's ability to adapt quickly and improvise to solve problems.

In version control systems, a repository is a data structure that stores metadata for a set of files or directory structure. Depending on whether the version control system in use is distributed, like Git or Mercurial, or centralized, like Subversion, CVS, or Perforce, the whole set of information in the repository may be duplicated on every user's system or may be maintained on a single server. Some of the metadata that a repository contains includes, among other things, a historical record of changes in the repository, a set of commit objects, and a set of references to commit objects, called heads.

<span class="mw-page-title-main">Leafpad</span> Lightweight text editor

Leafpad is a free and open-source graphical text editor for Linux, Berkeley Software Distribution (BSD), and Maemo that is similar to the Microsoft Windows program Notepad. Created with the focus of being a lightweight text editor with minimal dependencies, it is designed to be simple-to-use and easy-to-compile.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, PowerPC, x86/IA-32, x86-64, and MIPS architecture.

In version-control systems, a monorepo is a software-development strategy in which the code for a number of projects is stored in the same repository. This practice dates back to at least the early 2000s, when it was commonly called a shared codebase. Google, Meta, Microsoft, Uber, Airbnb, and Twitter all employ very large monorepos with varying strategies to scale build systems and version control software with a large volume of code and daily changes.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

References

  1. "Latest Release". VFSForGit. GitHub . Microsoft . Retrieved September 27, 2020.
  2. "Microsoft is going to rename GVFS and wants your suggestions". BetaNews.com. June 6, 2018. Retrieved June 9, 2018.
  3. "VFS for Git 1.0.18234.1". GitHub.com. Retrieved February 13, 2018.
  4. Foley, Mary Jo. "Microsoft's One Engineering System brings Git Virtual File System to the masses". ZDNet. Retrieved June 4, 2018.
  5. "GitHub adopts Microsoft's tool for supporting massive software projects". VentureBeat. November 15, 2017. Retrieved June 4, 2018.
  6. "Frequently Asked Questions | VFS for Git". GitHub. Microsoft. Archived from the original on July 7, 2021. Retrieved July 7, 2021. We transitioned our large repository strategy to focus on using git sparse-checkout instead of filesystem virtualization. We then forked the VFS for Git codebase to create Scalar.
  7. "README | Scalar". GitHub. Microsoft. Archived from the original on March 22, 2021. Retrieved July 7, 2021. The Scalar executable has now been ported to be included in the microsoft/git fork.
  8. "A fork of Git containing Microsoft-specific patches". GitHub. Microsoft. Archived from the original on July 7, 2021. Retrieved July 7, 2021.