[Numpy-discussion] DVCS at PyCon

josef.pktd@gmai... josef.pktd@gmai...
Fri Apr 10 20:30:52 CDT 2009

On Fri, Apr 10, 2009 at 5:47 PM, Matthew Brett <matthew.brett@gmail.com> wrote:
> Hi,
> I enjoyed this quote from http://www.eecs.harvard.edu/~cduan/technical/git/
> Summary: You can only really use Git if you understand how Git works.
> "When I first started using Git, I read plenty of tutorials, as well
> as the user manual. Though I picked up the basic usage patterns and
> commands, I never felt like I grasped what was going on “under the
> hood”, so to speak. Frequently this resulted in cryptic error
> messages, caused by my random guessing at the right command to use at
> a given time. These difficulties worsened as I began to need more
> advanced (and less well documented) features.
> After a few months, I started to understand those under-the-hood
> concepts. Once I did, suddenly everything made sense. I could
> understand the manual pages and perform all sorts of source control
> tasks. Everything that seemed so cryptic and obscure now was perfectly
> clear.
> Understanding Git
> The conclusion I draw from this is that you can only really use Git if
> you understand how Git works. Merely memorizing which commands you
> should run at what times will work in the short run, but it’s only a
> matter of time before you get stuck or, worse, break something."

break something:

I updated my eclipse so I can try out the git eclipse plugin. Except
for a description how to clone a github repository and push back to
it, I didn't find much information on the internet.

cloning from a remote repository (pymvpa), setting it up for local
version control in eclipse and converting to a pydev project went very
easily. Creating local branches and a clone in a parallel directory
tree also worked.

>From then on its working mostly blind. Working with branches in one
repository doesn't clearly indicate which branch I'm in and which
branch my files belong to. `checkout` doesn't appear to change the
visible files on the hard drive as with the command line, switching a
branch with `reset` can be soft, mixed or hard. `hard` changes the
files with a warning that all edits will be overwritten, but it
doesn't tell whether there are any uncommitted changes in files.

Fetching between clones seemed to work, there are still some things
that I need to figure out, it wasn't always clear whether my commits
actually happened or not. But finally with switching around, I managed
to get a "circular reference" in my clone, and now I cannot access it
as git repository any more. On the command line, git says this is not
a repository. So I guess it's gone with all the changes that are not
currently on the file system.

I still miss a git directory browser with status information for each
file, and I still didn't manage to get diffs between branches or
clones. I can fetch or push, but I cannot see directly what it is that
I'm pulling or pushing, except maybe a long alphanumeric status code.

Without a help file, I wasn't sure what I was doing, but, for sure,
git eclipse is not foolproof and not very self-explanatory.

For someone used to a real and not a virtual file system, I will, for
now, stay away from saving any of my edits in branches, that might
disappear when I make a mistake. And both git gui and the eclipse
plugin seem to require still some work before they are really useful,
unless there are some working examples and recipes to proof my
impression wrong.
But from the webpages of the gui and eclipse plugin, there seems to be
currently a lot of work going on.

Simple cloning from and committing to a real remote repository seems
to work easily enough, but then there isn't much reason to switch away
from svn, if maintaining several local branches is a risky pain.

So for users who don't "get it", the branch system of bazar and
mercurial is a lot more intuitive than git.


More information about the Numpy-discussion mailing list