"Mats Nilsson" <email@example.com> writes:
> > > Please set me straight. Why is this considered Badness:
> > > svn cp -r 1000 /trunk /module-snaps/rev1000
> > >
> > > while this is not?
> > > svn cp -r 1000 /trunk /tags/foobar-1.0
> > Greg's not saying that using 'svn cp' to create
> > tags/branches/cheap-copies is a Badness.
> > He's saying that it's Bad for a module system to *require* that you
> > make a cheap-copy, so that a particular module can always point to
> > that location in HEAD.
> > Instead, a particular module is simply going to point to (revision,
> > path) pairs. No copies required.
> I had to ask, since I've got the impression that the "a tag is a cheap copy"
> mantra has been defended quite intensely. Now during the switch, diff and
> module design discussions, all the sudden a quite different idea is
> stealthily introduced - that you can refer to a point in space and time
> *without* making a copy.
This is not a new idea. A (revision, path) pair is a universal
concept... it's the way to locate anything in the repository. Usually
we just imply HEAD revision.
> As someone noted a few days ago, modules can be a way of introducing a tag
> concept for those uncomfortable with making a copy to mark a tag. Maybe it
> would be better to introduce tags as a first class citizen object (something
> other than being equal to a cheap copy), if that level of detail is what an
> increasing number of commands and features require. Now, only modules will
> benefit from sneak-mode tags a.k.a module entries.
Tags are first class citizen objects -- they're ordinary directories. :-)
> I'm not saying that the current suggestion is bad, just that it is diluting
> the quite pure filesystem model. And I will still be able to make a cheap
> copy tag and refer to its HEAD.
It's perfectly fine for a module to point to a tag-directory in HEAD.
People can do that if they want. Greg Stein was simply saying that we
not *force* people do to that when defining a module. In other words,
he was making sure that a module is *able* to point to an arbitrary
(rev, path) location, rather than only being able to point to
locations in HEAD.
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Wed May 22 17:25:19 2002