Subject: Re: for newbs = little exercise / tutorial / warmup for windows and other non-sophisticated new Git users :-)

From: "Zorba" <[email-masked]>
Date: Tue, 30 Dec 2008 16:07:37 -0000

"Jeff Whiteside" <[email-masked]> wrote in message 
news:[email-masked]...
hi zorb,

you have done a great justice here to inadvertently explaining the
learning curve of git, through a few mistakes, especially for ppl
behind in their scm use.  i enjoyed reading your blog posts though, as
they remind me of myself, not long ago.

you have a couple of mistakes i think you should correct.

-"Imagine a project with 4 versions, made up of various configurations
of the three files."
this line implies that you have branches (the word configurations).
you should be focusing, at first, on a project that has a set number
of files, and the content merely changes.  ideally, you don't often
add and rm files across versions.  also, the project doesn't really
have 4 versions, like windows has 4 different versions of vista, the
project has 3 old versions and 1 new version.

** ok, I've changed "configurations" as its overloaded in the context of 
older SCMs.
Point taken about changing content not containers. However changing content 
is easier, and therefore less need for a tutorial
Also this write-up is basically a "note to self", that I've cleaned up in 
case someone else can find it useful, and the problem I was solving was a 
problem that involved containers changing.
I've explained the context for going the way of containers now in the 
write-up.
I've covered off your concern for ppl thinking we have 4x current versions 
(ie. branches) with "4 progressively more recent versions"

"Setup a git index in the project directory"
-this implies you're talking about the index.  you're not.  you're
talking about the repository.  either make it clear that the index is
an intermediary staging area, or ignore its existence and change all
git-add && git-commit references to git-commit -a references.  this
will ease the user of older scms into git.

** Don't forget they'll have read the tutorial and/or user-guide, and the 
concepts of an index and staging are fairly easy to pick up.
I'll keep it in, and make sure I refer to it as you suggest.

-"Rollback to each of the versions, starting with version A"
this is bad.  you're saying rollback.  to others that have used scms,
this will mean, "retrieve an older copy", but in git, this is DELETING
all the versions after the version that you "rollback" to.  your blog
post shouldn't discuss the git-reset --hard command at all, since
you're rewriting history, which is dangerous.  afaik, most scms don't
allow you to rewrite history.  to "rollback" to an older version you
should use checkout the git-checkout command.  maybe the git reset
-–hard HEAD is okay to include... but it won't be immediately obvious
to new users why it does what it does... this nomenclature was likely
not the best choice whenever it was made.

** have now promoted git-checkout as the way to review older versions
I've left git-reset in there, for my own notes as much as anything, but not 
suggesting it be used as some sort of cursor to move the HEAD up and down 
the branch

NB getting some funny results with git-checkout near the head of the branch
- will investigatge and report

u're talking sdf

On Sat, Dec 27, 2008 at 5:29 PM, Zorba <[email-masked]> wrote:
>
> tidied up the formatting, added a few more comments where needed, fixed
> errors/lack of clarity
>
> "Zorba" <[email-masked]> wrote in message
> news:[email-masked]...
> > Here is a little exercise / tutorial / warm-up for someone starting out
> > with Git. If you're anyting like me you may find the tutorials etc. on
> > git.or.cz a bit daunting. I recommend you try this after reading the 
> > user
> > manual but before tearing your hair out trying to follow all the 
> > examples
> > in the user manual. After you've followed this simple workflow, then go
> > back to the more advanced stuff  in the tutorials and user manuals (like
> > cloning repositories and creating and merging branches).
> >
> > I created this exercise to try and model our workflow and what we wanted
> > to use git for = tracking a project with multiple files where the 
> > filebase
> > might change frequently from one version to the next.
> >
> > http://siliconmouth.wordpress.com/category/nerdy/
> >
> > look for December 27, 2008 or "git warmup"
> >
> >
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html