I tried to show somebody TSVN and stumbled on a dangerous merge situation.
For the demo I did the following:
1.) created two different working directories to simulate two users (called
Jo and Pete) on my harddisk.
2.) checkout out the HEAD of the trunk in each directory(user).
3.) file X was at rev 256 when we checked it out.
4.) now Jo changed file X twice and commited it twice (no problems), rev now
at 258. Both changes was at the start of the file
5.) Pete changed the end of file X. When he commits he gets an error
"commit failed" because his working base is still at rev256 and the head of
the trunk is at 258.
6.) Now what does he do??? If he does a diff he only sees his "working base"
and his "working copy" in TMerge. He does not see the differences between
the HEAD of the trunk Rev258, his working base and his working copy. That
would be very easy if TMerge could show that.
7.) Now he can just update, but he will have no idea where Jo changed the
file as Jo's changes are outomatically added to his file. This could
implement bugs in his code, I have a problem with this.
8.) Best for him is to do a Blame from rev256 to head of trunk to see the
changes between his working copy and the current head. But it will be good
if TMerge had a blame option and showed the info as described in 6).
9) or Update (which is the intuitive thing one wants to do ) showed a
diff/Tmerge (when it detects the rev of repository has changed) between the
HEAD and the working copy instead of being so outomatic.
Perhaps I'm missing some thing here, but appart from this I think it is a
great product.
regards
Paul
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Fri Aug 20 09:04:07 2004