Storing user-specific configuration files in a "dotfiles" repository is a common practice among software developers, with hundreds of thousands choosing to publicly host their repositories on GitHub. This practice not only provides developers with a simple backup mechanism for their essential configuration files, but also facilitates sharing ideas and learning from others on how best to configure applications that are key to their daily workflows. However, our current understanding of these repository sharing practices is limited and mostly anecdotal. To address this gap, we conducted a study to delve deeper into this phenomenon. Beginning with collecting and analyzing publicly-hosted dotfiles repositories on GitHub, we discovered that maintaining dotfiles is widespread among developers. Notably, we found that 25.8% of the top 500 most-starred GitHub users maintain some form of publicly accessible dotfiles repository. Among these, configurations for text editors like Vim and shells such as bash and zsh are the most commonly tracked. Our analysis reveals that updating dotfiles is primarily driven by the need to adjust configurations (63.3%) and project meta-management (25.4%). Surprisingly, we found no significant difference in the types of dotfiles observed across code churn history patterns, suggesting that the frequency of dotfile modifications depends more on the developer than the properties of the specific dotfile and its associated application. Finally, we discuss the challenges associated with managing dotfiles, including the necessity for a reliable and effective deployment mechanism, and how the insights gleaned from dotfiles can inform tool designers by offering real-world usage information.
翻译:将用户特定配置文件存储在“点文件”存储库中是软件开发者的常见做法,数十万开发者选择在GitHub上公开托管其存储库。这种做法不仅为开发者提供了一种简单的关键配置文件备份机制,还促进了想法共享,并有助于向他人学习如何最佳配置对其日常工作流程至关重要的应用程序。然而,我们目前对这些存储库共享实践的理解有限,且多为轶事。为弥补这一不足,我们开展了一项研究以深入探究此现象。通过收集和分析GitHub上公开托管的点文件存储库,我们发现维护点文件在开发者中非常普遍。值得注意的是,我们发现GitHub上获星最多的500名用户中,有25.8%维护着某种形式的可公开访问的点文件存储库。其中,Vim等文本编辑器以及bash和zsh等shell的配置是最常被跟踪的。我们的分析表明,更新点文件的主要驱动力是调整配置的需求(63.3%)和项目元管理(25.4%)。令人惊讶的是,我们发现不同代码变更历史模式中观察到的点文件类型没有显著差异,这表明点文件修改的频率更多地取决于开发者,而非特定点文件及其关联应用程序的属性。最后,我们讨论了管理点文件相关的挑战,包括对可靠有效部署机制的需求,以及如何利用从点文件中获得的见解,通过提供实际使用信息来指导工具设计者。