couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dustin Sallings <dus...@spy.net>
Subject Re: Tweaking the release procedure
Date Fri, 21 Oct 2011 18:04:30 GMT

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




Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message