Justificación de "abajo hacia arriba" sobre cómo funciona Git

Recuerdo haber leído un gran documento hace un time explicando los motivos por los que Git fue diseñado como era. Al less, estoy bastante seguro de que era específico de Git, pero podría haber sido solo por el concepto de DVCS. No estaba tan enfocado en los commands reales que pondría; En cambio, se centró principalmente en cómo resolver los problemas de trabajar fuera de línea, mantener sus versiones actualizadas entre personas, hacer un seguimiento de los cambios entre sucursales, etc., y cómo Git resuelve estos problemas. (De nuevo, podría haber sido un DVCS diferente, pero creo que fue Git)

Esencialmente, el documento era una historia escrita casualmente sobre cómo un progtwigdor podría hacer un seguimiento de sus files, y cómo Git (o lo que sea) ayuda a resolver estos problemas. Recuerdo una primera parte sobre cómo uno podría mantener sus versiones anteriores de un documento en una carpeta de "copy de security", labelda en un file para hacer un seguimiento de cada versión, y cómo podrían necesitar trabajar en un error mientras están en medio de la encoding una nueva característica, por lo que el "file de seguimiento" crece para include twigs.

Realmente disfruté leyéndolo, ya que explicaba claramente muchas de las razones detrás de ciertas características y también era una gran "historia de control de versiones". Me gustaría encontrarlo de nuevo.

Parece que te estarás refiriendo a The Git Parable de Tom Prestn-Werner.

La historia describe cómo uno podría derivar un sistema similar a Git empezando simplemente haciendo copys completas de treees (instantáneas). Se basa en estas instantáneas para agregar twigs, tags, flujos de trabajo distribuidos / fuera de línea, fusiones, etc.

Parece que podría estar buscando uno o ambos de los siguientes:

  • Git de abajo hacia arriba
  • Git Magic