[PATCH] Use merge3 for text merging

Robey Pointer robey at lag.net
Mon Aug 1 02:25:25 BST 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On 26 Jul 2005, at 12:17, Aaron Bentley wrote:

> Robey Pointer wrote:
>
>> tla's habit of dropping little
>> *.orig and *.rej files and making me pick up the pieces is one of my
>> pet peeves.  I noticed that bzr currently does the same thing   
>> (*.BASE,
>> etc) and am hoping it's just a temporary thing. :)
>>
>
> No, it's intended to be long term.  Perhaps it could be optional.
> It's intended for handling difficult merge scenarios-- the user can
> invoke tools like meld on the three files to resolve the conflict.  It
> also makes it easy to determine whether a merge operation resulted in
> text conflicts.
>
> What *I*'d like to do about this is implement 'bzr resolved [-- 
> all]', to
> tell bzr that you've resolved the conflict, and it can delete the  
> files.
>  What do you think?
>
> I'd even take it futher, and refuse to commit conflicted files.  But
> people say I'm wierd.

That sounds good to me, actually.

Let me try to make a coherent argument about why I don't like the  
"*.rej" files being dropped around:

My tla & bzr projects tend to be fairly small, but at work we deal  
with some huge source trees (mozilla is checked in as a subtree of  
one!), and when the number of files gets that big, you don't want to  
have to remember to do 'find . -name "*.rej"' after every checkout.

CVS munging of files with the conflict markers isn't particularly  
bulletproof, but it's better than *.rej IMHO, because CVS can use  
them to "remember" what files have conflicts and I don't have to go  
clean up after it.

Perforce (what we use at work) is even better: It leaves the  
conflicted file alone -- the way it was before I synced up -- and  
keeps a copy of the updated version in some secret place, remembering  
that the file has a conflict and that I haven't resolved it yet.  I  
then have to do a special "resolve" command which has a default  
behavior of creating a CVS-style conflict-marker version and letting  
me edit it.

If bzr dropped *.rej files but remembered them, and I had a simple  
command I could use to resolve conflicts & clean up those *.rej  
files, I'd be happy.  I just hate how tla drops the *.rej files and  
leaves the merging and cleanup for me to do manually.  I can't see  
that scaling past very tiny projects.

Y'know, even better would be if bzr kept a secret list of conflicted  
files, with a secret copy of the archive version, and left my copy  
alone -- then had a command that would either generate the *.rej  
files or merge using conflict markers, depending on CLI options or  
config preferences.  (Just sorta free-thinking here.)

robey

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Darwin)

iD8DBQFC7XoLQQDkKvyJ6cMRAlyJAKDOArW5H3mC+SsI8YQNfngBCyky4QCg2J3/
lDCWegFfnTPytemRhCALY6c=
=HX6J
-----END PGP SIGNATURE-----




More information about the bazaar mailing list