Checkout existing branch to established workspace (.moved)

Jelmer Vernooij jelmer at samba.org
Fri Mar 23 21:41:43 UTC 2012


Hi Mark,

Are you sure you mean me, rather than somebody else? I don't seem to be
in that IRC conversation and I don't remember having it.

Cheers,

Jelmer

Am 23/03/12 21:13, schrieb Mark Grandi:
> (sorry, resent. I suck at mailing lists)
>
> Me and Jelmer had a conversation about this on IRC
> (http://bpaste.net/show/25779/) and I brought up that it would be nice
> to have it so if you checkout/branch into a directory that has
> conflicts (aka it tries to branch a file named foo.txt but foo.txt
> already exists), it should abort the branch/checkout and tell the
> user, and then make them choose to either move the conflicting files
> to .moved (current behavior), replace the conflicting files, or merge
> them (and have them conflicting like Kevin was wanting.
>
> However, as jelmer pointed out having the 'merged' behavior would be
> hard to due to some outstanding problems on how file-ids are tracked,
> but i feel having bzr require an option to move the conflicting files
> to .moved would be easy enough to implement (and just have it abort if
> there are conflicting files by default), and would prevent headaches
> like this in the future, until the ideal fix is figured out
>
> On Fri, Mar 23, 2012 at 7:06 AM, Bulgrien, Kevin
> <Kevin.Bulgrien at gdsatcom.com <mailto:Kevin.Bulgrien at gdsatcom.com>> wrote:
>
>     I have a few cases where I have a reference shared
>     repository/branch stored
>     somewhere.  There are other locations that I want to compare to
>     that reference
>     branch that should have the capability of being used to update the
>     branch as
>     needed.
>
>     Scenarios might be along the lines of using bzr to help a user
>     standardize a
>     home directory across multiple systems - including when bringing
>     new systems
>     up, controlling system configuration (along the lines of
>     etckeeper), or
>     converting sandboxes of other VCS over to bzr after converting the
>     other VCS
>     repository to a bzr repository/branch.  One might also think of
>     having a
>     workspace based on a tarball, and subsequently deciding that the
>     workspace
>     should be made a checkout of a project branch.
>
>     The idea is that some shared repository/branch is checked out into
>     an existing
>     workspace that is well established and working per the owner's
>     wishes, and,
>     to make a point, has over a hundred files that have minor
>     variations to the
>     branch.
>
>     Now a the point the owner decided to checkout a project branch so
>     that the
>     branch is useful for merging stuff from the branch or committing
>     to it, the
>     owner does `bzr co someplace .`.  All of a sudden over a hundred
>     of these
>     occur:
>
>     Conflict adding file blah.  Moved existing file to blah.moved.
>
>     Owner screams in anguish.  The workspace is now broken.  He thinks
>     software
>     should operate by the principle of least astonishment:
>
>     http://en.wikipedia.org/wiki/Principle_of_least_astonishment
>
>     In the owner's experience, another VCS doesn't choose to do things
>     for him
>     unless he asks it to.  He realizes that by doing `bzr co` the way
>     he did, that
>     in a sense he asked it to to all that moving (without realizing
>     it) BUT what
>     he didn't ask it to do was BREAK his workspace.  That other VCS
>     would have
>     complained about conflicts and needing to move the existing stuff
>     out of the
>     way (or something) every time he asked for status, tried to
>     update, etc, but,
>     it would NOT have decided it needed to automatically move
>     conflicts.  On the
>     otherhand, this other VCS would have moved and renamed old files
>     if the owner
>     had specifically included a command-line option that explicitly
>     requested
>     something that might be dangerous.
>
>     In short, the assumption of `bzr co` that it should rename files
>     by default is
>     not friendly.
>
>     Realizing that this owner is coming to bzr late in the game,
>     perhaps the
>     community does not agree, however, there is no option even to
>     disable this, in
>     some scenarios, behavior.  I have searched around and found a
>     number of other
>     bzr users who felt the same way I do, and some on #bzr also agreed
>     that my
>     view was not altogether unreasonable.
>
>     Is there some way that bzr can be modified to help a group of bzr
>     users (of
>     an unknown size) with the .moved issue?  Is .moved seen as "a good
>     thing" so
>     often that the default cannot be changed?  If not, what about
>     prompting the
>     user and telling him what is about to happen?  Or, what about
>     having some
>     kind of configuration (maybe in the repository), that suppresses
>     the .moved
>     behavior?
>
>     Perhaps new adopters of bzr are most impacted, but, even knowing
>     about .moved,
>     I am not sure how to checkout a branch into a pre-existing
>     workspace without
>     the checkout breaking it by renaming lots of files.  I am also in
>     the position
>     of considering transitioning my workplace over from another VCS to
>     bzr, and
>     see this as one of the pain factors associated with advocating
>     that change.
>
>     Respectfully,
>
>     Kevin Bulgrien
>
>     This message and/or attachments may include information subject to
>     GD Corporate Policy 07-105 and is intended to be accessed only by
>     authorized personnel of General Dynamics and approved service
>     providers.  Use, storage and transmission are governed by General
>     Dynamics and its policies. Contractual restrictions apply to third
>     parties.  Recipients should refer to the policies or contract to
>     determine proper handling.  Unauthorized review, use, disclosure
>     or distribution is prohibited.  If you are not an intended
>     recipient, please contact the sender and destroy all copies of the
>     original message.
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/bazaar/attachments/20120323/73c73330/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 900 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/bazaar/attachments/20120323/73c73330/attachment.pgp>


More information about the bazaar mailing list