gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Re: darcs vs tla


From: Jeremy Shaw
Subject: Re: [Gnu-arch-users] Re: darcs vs tla
Date: Thu, 11 Nov 2004 12:55:15 -0800
User-agent: Wanderlust/2.11.30 (Wonderwall) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI)

At Wed, 10 Nov 2004 12:47:30 -0800 (PST),
Thomas Lord wrote:

> I opened my mind for this darcs thread and it looks like I'm going to
> wind up where I started:  they have some rather esoteric merge
> technology that could be added to arch;  aside from that, they are
> missing too much.   Would have been better if darcs had, in the first
> place, been done as an extension to arch.   Meanwhile, their novel
> merge tech is "on the list of things todo" but not a high priority.

I think most people using darcs could care less about the relative
merits of the darcs merge operator vs arch, and adding the darcs merge
operator to arch would not convince them to switch. 

The key compelling reason that people use darcs is it is really easy
to get started using, and it works Good Enough™ for their purposes.

For example, let's say you wanted to work on the YI editor, which is
maintained in a darcs repo. Lets say you have never installed darcs
and this is your first time using it, here is what you need to do:

┌──────────────────────────────────────────────────────────────┐
│ $ apt-get install darcs                                      │
│   <snip>                                                     │ 
│ $ darcs get http://www.cse.unsw.edu.au/~dons/yi              │
│ Copying patches...                                           │
│ ............................................                 │
│ Applying patches to the "working" directory...               │
│ .........................................................    │
│ Finished getting.                                            │
│ $ cd yi                                                      │
│ ~/yi $                                                       │
└──────────────────────────────────────────────────────────────┘

Now you hack around a bit and want to save your changes locally:

┌──────────────────────────────────────────────────────────────┐
│ ~/yi $ darcs record --all                                    │
│ What is the patch name? Added an emacs keymap                │
│ Do you want to add a long comment? [yn] n                    │
│                                                              │
│ Finished recording patch 'Added an emacs keymap'             │
│ ~/yi $                                                       │
└──────────────────────────────────────────────────────────────┘

Now you want to get the latest changes from upstream:

┌──────────────────────────────────────────────────────────────┐
│ ~/yi $ darcs pull --all                                      │
│ Pulling from http://www.cse.unsw.edu.au/~dons/yi ...         │
│ Finished pulling.                                            │
└──────────────────────────────────────────────────────────────┘

Pretty simple stuff. 

Now a (synthesized) tla version:

┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ $ apt-get install tla                                                         
              │
│                                                                               
              │
│ $ tla register-archive http://address@hidden/home/{archives}/address@hidden │
│ Registering archive: address@hidden                                           
   │
│                                                                               
              │
│ $ tla get address@hidden/yi--devo--1.0 yi                                     
   │
│ * from import revision: address@hidden/yi--devo--1.0--base-0                  
   │
│ * making pristine copy                                                        
              │
│ * tree version set address@hidden/yi--devo--1.0                               
   │
│                                                                               
              │
│ $ cd yi                                                                       
              │
└─────────────────────────────────────────────────────────────────────────────────────────────┘

Now you hack around a bit and want to save your changes locally:

┌───────────────────────────────────────────────────────────────────────────────────────┐
│ ~/yi $ mkdir ~/{archives}                                                     
        │
│ ~/yi $ tla make-archive address@hidden ~/{archives}/address@hidden            
  │
│ ~/yi $ tla my-id "my name <address@hidden>"                                   
           │
│ ~/yi $ tag -S address@hidden/yi--devo--1.0 address@hidden/yi--devo--1.0 │
│ ~/yi $ tla sync-tree address@hidden/yi--devo--1.0                             
     │
│ ~/yi $ tla set-tree-version address@hidden/yi--devo--1.0                      
     │
│ ~/yi $ tla commit -s 'Added an emacs keymay'                                  
        │
└───────────────────────────────────────────────────────────────────────────────────────┘

Now you want to get the latest changes from upstream and are
confronted with a dizzying array of choices:

┌───────────────────────────────────────────────────────────────┐
│ ~/yi $ tla update address@hidden/yi--devo--1.0     │
│ ~/yi $ tla replay address@hidden/yi--devo--1.0     │
│ ~/yi $ tla star-merge address@hidden/yi--devo--1.0 │
│ ~/yi $ tla apply-delta ....                                   │
└───────────────────────────────────────────────────────────────┘

And maybe someday:

┌──────────────────────────────────────────────────────────────────────┐
│ ~/yi $ tla darcs-style-merge address@hidden/yi--devo--1.0 │
└──────────────────────────────────────────────────────────────────────┘

I think it is pretty hard to convince the new user that all of those
extra steps and long command lines are making their life easier --
even if it is true.

> (Does that sound insulting towards Darcs?   It doesn't at all if you
> regard darcs as a short-term R&D exploration.)

What it sounds like you are saying is:

"The only thing darcs has going for it is some wacky merge operator
that we could implement, if someone actually wanted it. Other than
that it has nothing of value and is doomed to obscurity."

It would be a lot nicer if you sounded like you were saying:

"The darcs core technology does not seem to have an inherent advantage
over arch, but the user experience totally blows tla out of the
water. We must make the new user experience for tla superior to darcs
and svn, or we will arch will be doomed to obscurity."

Jeremy, beta-max vs vhs, Shaw.
--

This message contains information which may be confidential and privileged. 
Unless you are the
addressee (or authorized to receive for the addressee), you may not use, copy 
or disclose to anyone
the message or any information contained in the message. If you have received 
the message in error,
please advise the sender and delete the message.  Thank you.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]