Git is, like many professional tools, something you simply got to learn. But like with many professinal tools, you don't need to know everything to get to work. I don't know all Photoshop or Ableton Live features, but I can improve my photos or create songs non the less. With these commands you can already start your own repo and work on it locally: git init // crate new repo git status // show which files are change…
This is very close to the result of the study that was I believe he reason to write gitless: - Most people use git by learning a set of a few commands - A minority actually understands git on a deeper level But both groups form a mental model of how git works, and that model is apparently usually wrong, which results in those cases were you get stuck and just start with a fresh checkout and manually reapplying the ch…
Gitless: a version control system
141–150 of 390 posts
Re: Gitless: a version control system
#142Earlier quoted context omitted.
https://www.atlassian.com/git/tutorials/ This is generally where I point people who have a technical background
Atlassian has put some great "mind abstractions" on top of git to help people understand how to use it. It's definitely fashionable these days to hate on complicated tools. I wonder if the same is true in other professions. Simple tools are easy to use, yes. But anyone who as worked on a Bicycle or other equipment that requires specialized tools knows that the having the correct, often more complicated tool beats the…
Re: Gitless: a version control system
#143Git is, like many professional tools, something you simply got to learn. But like with many professinal tools, you don't need to know everything to get to work. I don't know all Photoshop or Ableton Live features, but I can improve my photos or create songs non the less. With these commands you can already start your own repo and work on it locally: git init // crate new repo git status // show which files are change…
If switching to gitless became a thing I'd have to learn something new, but if it made things significantly easier for beginners, maybe my personal inconvenience isn't that important.
Re: Gitless: a version control system
#144My criteria for whether an interface to git is truly easier is whether artists can use it. I've worked in games alongside artists, with everyone using Perforce. At some point we switched to Perforce for the art, and git for the programmers, with a big janky glue system in-between. Git couldn't really handle all the binary assets, and the artists couldn't really handle git, so it made sense. When we switched, it also…
As far as version-controlling art, I'd lean towards a system where checking a file out locks it from any other concurrent modifications. Unfortunately, trying to merge concurrent changes into an image file, for instance, is just about impossible. It's almost as bad trying to work with MS Office file types - I wish I could get people on my team to use something else that is more VCS friendly, like HTML or Markdown, bu…
Re: Gitless: a version control system
#145There are some things that could be improved (and any of these can be config options for those who want the old behavior):
* switching branches should auto-stash changes, then auto-apply when switching back (apparently one of the things gitless does) * a rebase should leave a marker in the tree (with the old hashes) so if you force-push other clients can offer more intelligent options (e.g. Looks like these commits were rebased by a_user; rebase your changes skipping duplicate commits or merge?) * git still allows you to create branch names differing only by case which is a problem on macOS and Windows * cherry-pick -x should be the default and tools should do a better job of showing the relationships * tag sync should include the commit and update on pull so rewriting tags isn't such a PITA. Maybe we need movable vs static tags.
Re: Gitless: a version control system
#146Git is, like many professional tools, something you simply got to learn. But like with many professinal tools, you don't need to know everything to get to work. I don't know all Photoshop or Ableton Live features, but I can improve my photos or create songs non the less. With these commands you can already start your own repo and work on it locally: git init // crate new repo git status // show which files are change…
Re: Gitless: a version control system
#147Git is powerful. While the underlying architecture has beautifully simple aspects arguing that the complexity of the git tool-chain is simple is similar to arguing that TeX is simple as it is written in a simple language. Git is managing trees of file-sets in a distributed manner. It took many generations of configuration management systems to get there. Git is bottom up. Understand the inner workings and you know wh…
As a tangent, I think calling git a distributed system is misleading. Git is primarily a history manager for a local directory tree that has commands to sync with remote machines. Having to type stuff like git remote add mothership ssh://foo@bar.baz git push mothership in order to sync is not what I usually associate with a distributed system. The word distributed conjures something that's more like dropbox, where th…
Re: Gitless: a version control system
#148See also discussion about the Gitless paper: "Purposes, Concepts, Misfits, and a Redesign of Git" https://news.ycombinator.com/item?id=12612333 (1 day ago, 106 comments)
And it hits the most important point of: Gitless tries to do away with the staging area, thus completely misunderstands Git.
Re: Gitless: a version control system
#149Earlier quoted context omitted.
> Both of the solutions above are really cumbersome and prevent easy context switching. Too frequent context switching might actually be perjudicial for your productivity and health, while increasing stress levels. So git not making it trivial might not be a bad thing, in my opinion.
I don't think perjudicial is a word.
Re: Gitless: a version control system
#150Git needs the parent pointer equivalent of NIL. Whenever I start a blank new repo nowadays, I do a git commit --allow-empty -m "NIL" See, many git operations require a parent reference! For instance if you want to interactively rebase the top commit, it's actually "git rebase -i HEAD^": rebase back to (but excluding) HEAD's parent. The equivalent "git rebase -i HEAD~1" means the same thing: that ~1 actually spans two…
$ hg init
$ echo silver >colour
$ hg add colour
$ hg commit --message 'First commit'
$ hg checkout null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo liquid >state
$ hg add state
$ hg commit --message 'Second commit'
created new head
$ hg log --template '{rev} = {node|short} child of {p1node|short}: "{desc}" @ {date|isodate}\n'
1 = 99f1472f8a69 child of 000000000000: "Second commit" @ 2016-10-02 17:29 +0100
0 = 6433a3e95c3d child of 000000000000: "First commit" @ 2016-10-02 17:29 +0100
$ hg rebase --source 0 --dest 1
rebasing 0:6433a3e95c3d "First commit"
saved backup bundle to /path/to/repo/.hg/strip-backup/6433a3e95c3d-331b8224-backup.hg
$ hg log --template '{rev} = {node|short} child of {p1node|short}: "{desc}" @ {date|isodate}\n'
1 = b9951882336f child of 99f1472f8a69: "First commit" @ 2016-10-02 17:29 +0100
0 = 99f1472f8a69 child of 000000000000: "Second commit" @ 2016-10-02 17:29 +0100