Re: EasyGit [Was: Re: my git problem]
- From
Elijah Newren <newren@gmail.com>
- Date
- May 2, 2008, 11:54 UTC
- Message-ID
- <51419b2c0805020454p144698e4l843e8edab00ddeb7@mail.gmail.com>
- In-Reply-To
- <51419b2c0805020441l7a52f9d2q6bfc8eb4e18e4e7e@mail.gmail.com>
On Fri, May 2, 2008 at 5:41 AM, Elijah Newren <newren@gmail.com> wrote:
Show 8 quoted lines
> ... all I've really done so far in EasyGit is > * provide built-in tutorial-oriented documentation > * check for common user mistakes and warn about them > * add subcommand options in a way that breaks up the near cylic > knowledge dependence of git subcommands so that they can be learned in > a layered/hierarchical fashion > * add some gratuitous svn-compatibility commands to ease the > transition for svn users
I had typed up an explanation of what EasyGit is and does in more detail and was going to wait to send it until I resolved some of the issues Havoc brought up, but maybe it makes sense to send that out now. So, here it is:
EasyGit (eg) is a single-file script/porcelain that looks and feels like core git. In contrast to other simple-to-use porcelains, eg has all the same capabilities as git (in particular, it does not remove the index) and uses the same general syntax as core git. Eg primarily reduces the learning curve associated with git and prevents common user errors.
Changes:
Most of the changes in eg relative to git boil down to:
- plugging a large gap in git documentation (namely, providing a
tutorial-oriented built-in help system)
- warning about or preventing many common gotchas users run into with
git
- enabling users to learn in a layered fashion
A detailed explanation of the differences, rationale for the changes in
eg, and even arguments against some of the changes I made in eg can be
found at
http://www.gnome.org/~newren/eg/git-eg-differences.htmlSaving cvs/svn users:
EasyGit also looks and feels like svn on the most common subset of
functionality used in the two systems, mostly due to the addition of a
number of gratuitous svn-compatibility commands (such as cat, resolved,
update). cvs and svn users may be interested in the detailed comparison
at
http://www.gnome.org/~newren/eg/git-for-svn-users.htmlTrying it:
I believe new users will be able to learn git faster by first using eg,
than by starting with git directly. Switching between using eg and git
on the same repositories is considered perfectly normal. There are a
couple aids to assist users in switching back and forth between eg and
git:
- Each help page has a section for listing any differences between eg
and git.
- Users can run
eg --translate ARGS...
to see what git command(s) would be run by
eg ARGS...
without actually running them.Goals for eg:
Git has obtained a reputation for being difficult to learn. I wanted to
prove that a porcelain could be written which
1) was easy to learn
2) retained all the functionality in git
3) does not hinder the workflows of longtime git users and does not
require them to relearn the UI
Feedback from early adopters suggest that I have made good progress
towards achieving the first two goals; I do not have enough feedback
to determine whether I have done well with the last one.I would like to see the parts of eg that the community likes incorporated into git core. I do not know which changes would be wanted or welcome, and it may turn out that some of my changes show ignorance of certain aspects of git (some such cases have previously been uncovered already...and fixed). But the discussion can't hurt, and a number of the solutions I used in eg I have not found in searches of previous discussions in the archives.
Elijah