[AstroPy] proposal for astropy version control software and respository

Erik Tollerud erik.tollerud at gmail.com
Sat Jul 16 18:55:07 EDT 2011

> I'm not sure what you mean here. Revision numbers in what sense? Git
> does track versions by numbers (if very large ones...). Do you mean
> numbers that have some sequential properties or something like that?

git's revision numbers (like hg and bzr), are hashes, so they aren't
sequential - they uniquely identify a *commit*, but you can't use them
to get a sense of ordering.  Most importantly (at least, for me, when
I've encountered this problem), if you want to have preview releases
and/or documentation labelled based on the commit, the
distutils/setuptools/distribute won't work correctly if versions
aren't in sequential order.  Fortunately, the "git describe" command
can get around this, as long as you use "git tag" whenever you have a
new version number.

> Would I be correct, then, in guessing that the main argument in favor of
> github + git is really something like "github seems to be the best place
> for hosting this sort of project, and git is required to use github"?
> (Rather than something like, e.g., "git is so much better than hg
> because X, Y, and Z, and github is a natural place for hosting git-based
> projects".)

I'd say this is part of it (probably the most compelling reason to
prefer git over hg), but that's partly because some of the git design
choices make it easier to implement/use the things that make github
really nice (maily this is lightweight branches, and slightly more
flexible history).   Honestly, I'd say there's not a big difference
between git and hg though - git used to be more user-hostile, but
that's changed recently (better docs and github, mainly). Most of the
things that can be done in one can also be done in the other, but it's
just sometimes harder in one than the other.  Generally, git has more
support for doing somewhat arcane things, though, which we may need
when we join affiliated projects here in astropy.

There's a much bigger difference between hg/git and non-distributed
VCSs, though.  You couldn't implement anything like github or
bitbucket on a non-D VCS, because of the poor/non-existant support for
many local commits, many trees, remote branches, etc.

Erik Tollerud

More information about the AstroPy mailing list