4 ms·
Foucault talked about the idea of "governmentality."[1] This has gone many places, but one of the terms applications is to talk about learning to see like a sta
by aeturnum 6y ago
Foucault talked about the idea of "governmentality."[1] This has gone many places, but one of the terms applications is to talk about learning to see like a state. To stop seeing humans or experience and start seeing the world as raw resources, defensible borders, potential treaty partners, etc.
I think git creates a kind of "gitmentality" - where people start to think about code development in the structures and metaphors that git uses internally. I have always found git easy to use and easy to navigate, but I don't believe that the "git way" of representing changes or branching development are natural or obvious. The git way of talking about code is rigorous and reliable, but I don't think the structures it uses are grounded in previous human experience. Even though one can look back to previous structures (family trees, textual criticism) and see the techniques that git draws on, it generally avoids evoking cultural associations with those older systems (probably because doing so risks misunderstanding about the particulars of git).
In general, it seems to me that when git encounters a situation that might be confusing, the tool chooses[2] to reveal more internal details instead of using a high level organizing concept. One could imagine a DSCM where the details of commit hashes and merge commits are hidden under guiding metaphors explained by the tools, but creating such a system is clearly a huge challenge! I can imagine it could be done, but I certainly don't know how to do it. Many of the things git does do not have culturally common antecedents.
[1] https://en.wikipedia.org/wiki/Governmentality#Further_developments_of_the_concept https://en.wikipedia.org/wiki/Governmentality#Further_develo...
[2] Which, of course, means the tools' designers choose.
- pmeunier 6y ago> The git way of talking about code is rigorous and reliable That's not quite true, for example the mere existence of "git rerere" means that conflicts are not really represented internally. Also, merges like 3-way merge (the default in Git) are not associative [1], meaning that you might get different results if you pull two consecutive commits A and B from a remote, or if you just pull B. [1] https://tahoe-lafs.org/%7Ezooko/badmerge/simple.html https://tahoe-lafs.org/%7Ezooko/badmerge/simple.html