On Oct 21, 2011, at 9:43 AM, Robert Newson wrote:
> I'll also note that 'git pull --tags' will update any tags that have
> changed, despite what the man page for git-tags actually says.
dustinnmb:/tmp/test 695% mkdir upstream
dustinnmb:/tmp/test 696% cd upstream/
dustinnmb:/tmp/test/upstream 697% git init
Initialized empty Git repository in /private/tmp/test/upstream/.git/
dustinnmb:/tmp/test/upstream 698% git commit --allow-empty -m first
[master (root-commit) ca3e451] first
dustinnmb:/tmp/test/upstream 699% git tag -am 'beginning of time' testing
dustinnmb:/tmp/test/upstream 700% cd ..
dustinnmb:/tmp/test 701% git clone upstream downstream
Cloning into downstream...
done.
dustinnmb:/tmp/test 702% cd upstream/
dustinnmb:/tmp/test/upstream 703% git tag -d testing
Deleted tag 'testing' (was 21f1c92)
dustinnmb:/tmp/test/upstream 704% cd ../downstream/
dustinnmb:/tmp/test/downstream 705% git pull --tags
Fetching tags only, you probably meant:
git fetch --tags
dustinnmb:/tmp/test/downstream 706% git fetch --tags
dustinnmb:/tmp/test/downstream 707% git tag
testing
Deleting tags is hard.
Updating them is slightly less hard, but requires users to be
performing non-default behavior, and I think that leads to far, far more
confusion as there's no way to know whether the users are doing the non-default
things that cause your pointers to propagate, e.g.: "I'm running 1.1.1".
"Which 1.1.1?"
IMO, simplicity and conventions win here. Tags should be treated as
immutable pointers to commits that had some meaning and should be named and
labeled meaningfully as well. Branches are pointers to works in progress.
When work is "finished", they can be tagged and deleted. If you do this, all
of the defaults work and you don't have to invent and document as much.
I'm not trying to suggest you guys are doing a bad job or don't know
what you're doing, or should be using bcrypt or anything. I'm just pointing
out that some of the suggestions in this thread will lead to technical
difficulties. "temporary tag" isn't meaningful outside of a local repository.
And it's really easy to accidentally push one. And it's nearly impossible to
tell where it goes after you push it (e.g. every one of my github repos
automatically triggers replication on every push).
--
dustin sallings