The most spectacular example of this is the command “git am”, which as far as I can tell, is something Linus hacked up and forced into the main codebase to solve a problem he was having one night.It combines email reading with patch applying, and thus uses a different patch syntax (specifically, one with email headers at the top). They describe the commands from the perspective of a computer scientist, not a user.
rules about dating - Updating paths is incompatible with switching branches forcing
You can make any changes you like, and you can always get it back”. Several ways a committer can irrevocably destroy the contents of a repository: In the traditional open source project, only one person had to deal with the complexities of branches and merges: the maintainer.
Everyone else only had to update, commit, update, commit, update, commit…
This is the bread and butter of VCS: checking out a repository, committing changes, and getting updates.
But yes, you can obviously script your way around anything for one local environment.
Case in point: Translation: git-rebase – Sequentially regenerate a series of commits so they can be applied directly to the head node Remember the complicated information model in step 1? Keep using Git, and more concepts will occasionally drop out of the sky: refs, tags, the reflog, fast-forward commits, detached head state (!
), remote branches, tracking, namespaces Git doesn’t so much have a leaky abstraction as no abstraction.Surely the correct solution is a better log output that can filter out these unwanted merges.As an added bonus, here’s a diagram illustrating the commands a typical developer on a traditional Subversion project needed to know about to get their work done.Git dumps the burden of understanding complex version control on everyone – while making the maintainer’s job easier.Why would you do this to new contributors – those with nothing invested in the project, and every incentive to throw their hands up and leave?But even beginners are quickly confronted with hideous internal details.