← Back to team overview

tortoisebzr-developers team mailing list archive

Re: Introduction

 

Alexander writes:

> >  Maybe there should be a generic "Update" item that "does 
> > the right thing"?
...
> Even if I'm working in the checkout I'm still able to do pull from
> another (different from master) branch. I'm not sure what you call 
> `generic "Update"`.
> Pull is valid operation for checkouts and it's not the same as update.

I think this gets to the heart of the matter, especially with a tool like bzr that offers so many possible workflows and options.

It seems that a very common operation that a user will want to perform is "update this directory so I've got the latest changes others may have made".  If I'm working in a checkout, that will usually mean I want to perform an update.  If I'm working in a regular branch, I probably want to perform a pull - but sometimes the distributed version of bazaar means I may actually need to perform a merge/checkin.  The question is: do we want to expose all this to the average Tortoise user?  Should "Merge" appear on every context menu to cater for this possibility?  If we do, then we also expect the Tortoise user to *understand* the various differences, and when to use them.  I'd suggest a better approach might be for Tortoise to cater to the "common" use cases, leaving the advanced use cases for the command-line client, or otherwise suitably "hidden" from the casual bzr user.

For a concrete example of the potential confusion:  Personally, I'm still not 100% sure about the use-cases for doing a pull on a branch.  Below is a (slightly snipped) transcript of a conversation on #bzr on the 17th (times are +10) - I was enquiring about the lack of a '-r' option to 'bzr up', and thought that it might just be "spelt" differently in bzr than svn:

(11:14:35 AM) markh: how do I update my checkout to an earlier revision of the branch?  I was surprised to find no '-r' option to 'bzr up' nor to bind.
(11:15:17 AM) beuno: markh, I don't think you can, since it's bound to the other branch
(11:15:29 AM) beuno: you could branch off of it at that revision
(11:15:31 AM) markh: so update the branch, then up the co?
(11:15:43 AM) pygi: markh, bzr pull --overwrite -r 8214
(11:15:45 AM) pygi: perhaps :p
(11:16:34 AM) pygi: markh, helped? :)
...
(11:18:02 AM) beuno: I think generally you'd branch -r off of it
(11:19:47 AM) markh: So what's the difference between "pull" (with no args) and "up" once you have a checkout?
(11:20:15 AM) markh: (I'm working with checkouts on a test machine, with the branches being on the main dev machine)
(11:20:56 AM) pygi: bzr pull is nicer in some cases :)
(11:21:09 AM) markh: heh :)  what's the conceptual difference?
(11:21:12 AM) pygi: well, anyway, they have different use-cases
(11:21:21 AM) pygi: bzr up will do a merge
(11:21:23 AM) pygi: bzr pull won't
...
(11:31:17 AM) fullermd: Using pull in a checkout to adjust your working copy is totally not what you want to do...

Note the general confusion between people who you would expect would know (obviously including me).  Note that last comment - it makes me concerned that, eg, exposing 'pull' on the default context menu of a checkout might be asking for trouble.

So while there is a use-case for using pull on a branch, is it a use-case Tortoise needs to cover?  This isn't a rhetorical question - I'm searching for the answer - or failing that, the most suitable middle-ground :)

Thanks,

Mark




Follow ups

References