[AstroPy] proposal for astropy version control software and respository
sienkiew at stsci.edu
Mon Jul 18 17:51:30 EDT 2011
> I'm not sure what you mean by "real" tags in subversion. Git has tags
> that are as simple as "git tag <tagname>" (the current commit - in git
> parlance, HEAD) or "git tag <tagname> <commit-hash>" (tag some other
And presumably I can ask git to "update" or whatever to a specific tag
name. Once I update to a tag, a commit does not change the tagged data
-- it just makes a new revision.
Yes, that would be a real tag.
Subversion does not have tags or branches at all, but we pretend it
does. By convention, you have a directory named /trunk where your code
lives; to make a branch or a tag, you copy that directory to
/branches/xxx or /tags/xxx. Since there is no difference between /trunk
and /tags/xxx except the name, nothing prevents you from committing to
the tagged code. This is relatively easy to do by mistake, compared
with CVS where you would have to explicitly do a commit and then issue
tag-altering commands to change the content of a tag.
> Generally the convention is to use tags locally as shorthand for some
> commit you often go back to, and publically tag version numbers. Then
> the "git describe" command basically gives you all the information you
So, for example, if you have a continuous integration system that does
builds/tests every day, it would start by tagging the source code it is
about to build, instead of just noting a revision number in the logs.
As a user, I can see what source code the CI system used by telling git
"get me this tag", where I know the name of the tag that the CI assigned.
More information about the AstroPy