Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

Re: Algebraic manipulation of patches vs. dependencies: msg#00001

version-control.revctrl

Subject: Re: Algebraic manipulation of patches vs. dependencies

Mark Seaborn wrote:
I've been trying out Darcs recently, finding it useful, and trying to
understand how it works.

What puzzles me is that Darcs does not store a dependency graph of all
the patches in a repository. Instead it keeps patches in a list, and
manipulates the list algebraically, reordering patches that commute.
When two patches modifying the same file are reordered, the line
numbers they refer to must be rewritten. In some cases, Darcs groups
together patches that can be applied in parallel.

Is there any reason why Darcs doesn't go a step further by storing a
full dependency tree? This would have the advantage of being a
canonical representation. Patches' line numbers would not need to be
rewritten according to where the patch appears in the sequence. The
line numbers of a patch could be given relative to the file contents
defined by all the patches it depends on.

Mark Seaborn:

I think this is an excellent question. The major jumping off point that separates darcs from my own personal vaporous idle thought experiment of a tool (which is named "zxc") is that in my tool dependencies are explicitly calculated (greedily) and explicitly stored (persistently).

I do not know for sure, but I harbor the suspicion that the reason darcs does otherwise is that Haskell programmers (like many smart programmers) are enamoured of timeless, lazy, declarative, mathematical algorithms. Therefore, they naturally think of writing a purely functional algorithm which evaluates to the right result, and that they naturally don't think of algorithms which are imperative and which explicitly and greedily store intermediate results to disk.

Regards,

Zooko


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
hardware.arm.at...    cms.citadel.dev...    video.gstreamer...    java.facelets.u...    misc.basics.qna...    web.wiki.instik...    network.uip.use...    xdg.devel/2003-...    tex.bibtex.bibd...    finance.quotesp...    ietf.zeroconf/2...    redhat.blinux.g...    suse.db2/2003-0...    php.phpesp/2004...    uml.devel/2003-...    gnome.labyrinth...    qnx.openqnx.dev...    boot-loaders.gr...    db.dataperfect....    audio.audacity....    linux.uclinux.m...    editors.j.devel...    os.openbsd.tech...    kde.users.multi...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation