On 10/4/07, Karl Fogel <firstname.lastname@example.org> wrote:
> As you can see, letting a 1.4.x client touch a depth=empty directory
> even once is dangerousbadnastysucksuckevilevilevil. I didn't have
> time to test whether the same would be true for other non-infinity
> depths (there are reasons why it might or might not).
> The easy answer is to just bump the format number, so the 1.4.x client
> errors out the moment it tries to do anything in the working copy.
As I said on IRC, I am against bumping the WC format. I think the
problems it creates are greater than the problem you demonstrated.
I'll come back to this.
> Other Conclusion:
> A somewhat better answer would be the following escape hatch: only
> bump a particular working copy directory's format number when the 1.5
> client is actually writing out a depth other than infinity. That way,
> only those who actually use the sparse directories features would pay
> the no-downgrading price.
> I have no idea how hard this would be. I'm not sure we always *know*
> the depth at the time we create the working copy administrative area,
> and if we later go back and rewrite the format number, I'm worried
> about creating race conditions. It might be better to be hard-nosed
> but correct, than forgiving but corruptible.
> Thoughts? Should we just bump it?
I would be in favor of something like this, even if you decided to
bump the format of the entire WC. If WC's that are using the depth
feature are inaccessible to earlier clients I think that is
reasonable. Let's not make every WC pay this price.
Getting back to the original example, it is not clear whether we could
still not do more work to recognize this scenario with a 1.5 client
and resolve it on the fly. I actually think bumping the format number
is preferable to this, as it is not clear to me that a 1.4 client
ought to be able to work with a sparse WC as it seems like there are
any number of problems it could cause.
I am against simply bumping the WC and calling it a day. I'd rather
have the bugs. I know I am in the minority but I really do not think
everyone appreciates how costly the last format bump was to our user
base. The problems that exist currently are at worst going to impact
some small subset of users. Bumping the format will effect the
majority of users. Troll the lists and blogs. Regular users never
understood the WC format change. There are all kind of posts out
there where people state and think a 1.4 client requires a 1.4 server,
entire companies not applying updates until they could update
There are lots of people stuck using old clients. For example, a user
might be forced to use an old version of a development tool, and then
forced to use an old SVN integration in that development tool. They
also install the latest TortoiseSVN, and the next thing they know they
cannot read any of their WC's with their old development tool. This
is a big problem and will hit way more people than the scenario above.
Let's do our best to find a solution that strikes a balance between
these two issues. Deferring the WC format bump until we have a sparse
WC would do that.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Thu Oct 4 13:45:09 2007