Git

From Illogicopedia
Jump to navigation Jump to search

Git is a version control system used by software developers to manage the branching, merging, and timeline-arrangement of reality. While one might fear the arising of temporal paradoxes and accompanying existential threats, such fears are unfounded, as basic features of the design ensure existential stability. In particular, old objects are never overwritten by new ones, but new ones are rather created to exist alongside the old ones.

While fears concerning the rewriting of history are often expressed, they are based on simple misunderstandings, such as thinking that the old is truly replaced by the new, rather than existing alongside it. While the main references are usually updated to point to the new rather than to the old, don't worry – the objects of which the new is composed are distinct from those of which the old is composed, and the old objects remain in existence at least until after the last active references to them are dropped, so just hold on to yourself, and wherever you are and have been, you'll still be there along with your personal history.

An older timeline may be superseded by a newer one, but the old contents remain there (or at least somewhere) in parallel, possibly branching out from a common point in history. Old contents are dropped only if nothing refers to them any longer. Thus, anyone and anything playing any kind of active role in existence, even that of being pointed to as a long-superseded branch of reality, is assured of existential continuity. But just because something exists doesn't mean you need to pay attention to it – indeed, lots and lots of old stuff and stuffy old ones remain archived and seldom looked-at while newer and more exciting realities emerge.

That old branch looks a bit stale. Time to clear out the cobwebs?

Branching and merging[edit | edit source]

A branch of reality is a line of events. Several lines may extend from each event, so that reality branches out over time. Several lines may also reach from different directions to the same destination, so that several realities end up turning into one.

Reality merge ahead? Let's do this...

Some reality-defining developers prefer to add events linearly to a main branch one by one, while other developers line up their events in side branches before integrating them into the main branches. As work proceeds, one or several branches may be main destinations of added events to occur, given that several histories could be worked on at any given time, so to say. Sometimes merges between branches are smaller and sometimes they are larger.

Other than merging realities by connecting timelines, there's also another way of bringing together events from several histories. Bits and pieces of an alternative history can be cherry-picked and crammed into a timeline, or a portion of the past yanked out and perhaps replaced with something else, resulting in a new line of events which others are pushed to adopt.

To further describe the two main styles of integrating things, they are:

  • Creating merge events which join several lines of history at a single point, from which a common line then proceeds. This may sometimes cause a confusing duplication of events in the memory of those involved, when several merged histories contain the same or similar events. At the point of merging, the developer may need to manually tinker with the state of things so as to resolve any trickier inconsistencies between the different histories. The events of the different histories brought together will all seem to have occurred after the merge, making for a larger and superficially conflicting historical record.
  • Picking events from various branches or sources and arranging them into a neat and tidy linear sequence in a target history. The order of events may possibly be rearranged in the process, and some events may be dropped and others duplicated, as the developer prefers. The only oddity that may be visible afterwards could be that the dates and times of successive events in history jump back and forth instead of proceeding in the usual way, which only bothers those who pay attention to it. This can be used not only to rework the future, but also the past.

The resulting descriptions of the history may look quite differently, but otherwise the result is the same.

BANG! Merge conflicts can be frustrating...

When it's not altogether clear how adjacent versions of reality are supposed to be related after events are rearranged or brought together, such conflicts may rupture the fabric of the new versions of reality. Fragments of the befores and the afters may pile up as debris, until the developer wades through the debris and brings it all together in some way.

It took work, but wow! A successful merge can be mind-expanding!

See also[edit | edit source]