On 26/08/17 16:10, Joe wrote: >> Thank you for the list of solutions. It is interesting that SVN can >> be used with etckeeper. It looks like I should learn git. I have >> used SVN for other things, but I am easily pulled from my comfort >> zone for value. > > Git is very widely used, and on important projects, so it is being > vigorously maintained. It's probably the right choice for new projects. New project should use Mercurial. Existing project should switch to Mercurial.
Although Git can do anything that can be needed (and so can Mercurial), the difference is that Git has an horrendously designed interface and the concepts it is based on are many times irrational. For example, consider the “git reset” command. This one deserves an award for the most irrationally designed command in all of GNU/Linux. If you want to change what commit the current branch points to, you must use “git reset”, and you must memorize the meanings of “--soft”, “--mixed”, “--hard” and “--keep”. If you do it wrong (e.g.: “keep” instead of “--mixed”, you lose data). But surprisingly, git reset does not always change what commit the current branch points to. Sometimes it just moves files from a commit to the index (“staging area”). (“git reset <COMMIT> -- .”). So “git reset” does 4 things with little relation: Sometimes it moves what commit the current branch points to and *maybe* changes the working directory and staging area. Sometimes it just de-stages your staged changes (“git reset”). Sometimes it cancels a failed merge. Sometimes it copies files from an older commit to the staging area. These tasks are group into a single command for no logical reason. Now, this is no problem *after* you have learned how to use Git. You may even think that well, it ought to be difficult to learn how to use it, but that is incorrect. It is difficult only because the interface and the concepts behind it are irrationally designed. By contrast, Mercurial interface is very clean. Every command always does one simple thing. This does not mean that it is less powerful. Although in a previous time (years ago) when one could not do powerful history modification as in Git, that era is now history. Imagine how many man-hours are wasted learning how to use Git, which would otherwise be used to do actual programming. -- Do not eat animals, respect them as you respect people. https://duckduckgo.com/?q=how+to+(become+OR+eat)+vegan
signature.asc
Description: OpenPGP digital signature