
Hello darcs users, I am pleased to announce the release of darcs 2.0.0! It's been a long time coming, and hopefully you will be pleased with the result. Notable new features include (in no particular order): * New ssh-connnection mode that dramatically improves connection times when darcs 2.0.0 is present on the server as well as the client. * New "hashed" format that improves darcs' robustness with regard to network or filesystem errors, and also allows for efficient (and safe) caching of patch data, greatly improving access times to a repository that you have had previous contact with--which is the common case of pulling, pushing or sending. This format allows patches to move back and forth with darcs1-format repositories, and is the recommended format (with an old-format mirror) if you do not wish to require darcs 2.0.0, but want to benefit from most of its improvements. * New "darcs-2" format, which features improved conflict handling, and also has all the benefits of the hashed format. Because this format features new and different semantics, it is not possible to interact with darcs 1.x, and care must be taken in switching to this format. It is the recommended format for new projects (although we haven't made it the default). * The --partial get is now replaced with a --lazy get when using hashed formats, and in fact if you forget to provide one of these flags on the command line, you can acheive a lazy get simply by hitting control-C after darcs prints a message suggesting you do this. Lazy repositories are identical to full repositories so long as you have a working network connection and the original repository is accessible, with patches downloaded as they are needed. When the original repository is no longer accessible, a lazy repository will behave like the old --partial repositories. * We have added support for pipelined http downloading via either libwww or a very recent version of libcurl. Neither of these is yet the default, but it is recommended that you try one of them if possible, as they greatly improve download times. * There is now a configurable global cache, which can help reduce network traffic if you have multiple local copies of the same--or similar--remote repositories. * I'm sure there are other new features, but this is all that comes to mind at the moment. BUGS There are numerous issues with the --darcs-2 repository semantics (see a discussion at http://wiki.darcs.net/DarcsWiki/DarcsTwo). In general, I believe the status is that anything you could do with darcs 1.x you can do with the darcs-2 semantics, but the high-level code hasn't been updated to take into account the new possibilities opened up by the new semantics. In particular, patch dependencies are much more complex. Alas, there has not been enough time (or sufficient contributors) to make the code take these complexities into account, and if you're clever you can reveal bugs. You have been warned. Darcs 2.0.0 contains some performance regressions when running with large repositories. It is possible that these regressions will be sufficient to prevent its effective use in some projects. If this describes your project--and the only way to know is to try it--then I recommend considering either switching to a different revision control system, or helping us to improve darcs. The former is certainly the easier path. If I knew how to easily make darcs dramatically faster, I would have done so. FUTURE DIRECTIONS FOR DARCS The existing model for darcs maintenance has been the use of two branches, a darcs-stable branch for well-tested changes, and a darcs-unstable branch for more experimental work. Each branch has a separate maintainer, so most patches will be reviewed by two maintainers before making it into a darcs release. This is quite a nice system. Unfortunately, it is also a rather labor-intensive process, and due to a lack of contributors, we've moving to a more streamlined process. Starting with the darcs 2.0.0 release, there will be just one central branch of darcs and only one maintainer: for now this is me, David Roundy. Moreover, I will be attempting to act as a much lower-profile maintainer than we've had previously. I will not be reading bug reports, reading the darcs-users email list or even the darcs-devel mailing list. I will only be reviewing patches that are contributed. I will not write up long user-friendly release announcements like this for future darcs releases. I will only be reviewing and applying contributed patches. What does this mean? It means that if darcs is to continue to improve, we need new contributors. If bug reports are to be read, responded to and bugs are to be fixed, we need new contributors. If darcs is to be made more efficient, we need new contributors. The new URL for the darcs repository is simply http://darcs.net. (Yes, this is a lame ending to the email, but I'm sending it anyhow, because I'm tired, and I've got to get this done.)

Hello David, Monday, April 7, 2008, 9:22:25 PM, you wrote:
* I'm sure there are other new features, but this is all that comes to mind at the moment.
there was some issues with efficiency of darcs 1.x. am i correctly understood that these issues was not addressed by new release? its hard to understand why darcs 2.0 is better than 1.x from your announcement. afair from gsoc project your primary goal was to improve patches flexibility? -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

On Apr 7, 2008, at 14:28 , Bulat Ziganshin wrote:
Hello David,
Monday, April 7, 2008, 9:22:25 PM, you wrote:
* I'm sure there are other new features, but this is all that comes to mind at the moment.
there was some issues with efficiency of darcs 1.x. am i correctly understood that these issues was not addressed by new release?
From discussion of the regressions on IRC, I'm given to understand that hashing makes many things faster but a few operations on very large repos are now slower. As darcs1 was uniformly almost unusably slow on such repos, the result is that they're somewhat faster in general but some operations are still very slow; work is still being done to optimize these. That said, I think a large part of the point behind darcs2 is to fix some of the odd corner cases in patch reconciliation that could lead to having to throw out your repo and start over in darcs1 (which I had to do several times with my ghc repo). -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH

On Mon, Apr 07, 2008 at 10:28:12PM +0400, Bulat Ziganshin wrote:
Monday, April 7, 2008, 9:22:25 PM, you wrote:
* I'm sure there are other new features, but this is all that comes to mind at the moment.
there was some issues with efficiency of darcs 1.x. am i correctly understood that these issues was not addressed by new release?
Some efficiency issues have dramatically improved. Others have gotten worse. I don't know how better to summarize the situation than that.
its hard to understand why darcs 2.0 is better than 1.x from your announcement. afair from gsoc project your primary goal was to improve patches flexibility?
Yes, it's much better at dealing with conflicts, if you use the darcs-2 format. And it's less buggy than 1.0.9 is, which directly relates to one slowdown that I'm aware of. Try it and you can see whether you like it more. There's also the factor that darcs 1.0.x isn't going to see another release. If you don't want to switch to eventually darcs 2.0, then I would strongly recommend that you switch to some other revision constrol system. -- David Roundy Department of Physics Oregon State University

On Mon, Apr 07, 2008 at 10:22:25AM -0700, David Roundy wrote:
Hello darcs users,
I am pleased to announce the release of darcs 2.0.0! It's been a long time coming, and hopefully you will be pleased with the result. Notable new features include (in no particular order):
Hello, Congrats for getting it out! I'd just like to let everyone know that I have made packages for Ubuntu Gutsy and Hardy available from my Launchpad PPA (personal package archive), available from [1]. These releases are intended only as a band-aid for the impatient until the official packages come out, or until I have time to talk to the appropriate people; I haven't tested them thoroughly - all the usual disclaimers apply ;). That said, they *do* appear to be working fine from my (very) limited testing. To install, add the lines given at [1] that correspond to your release to your /etc/apt/sources.list file, then perform an `apt-get update' and `apt-get dist-upgrade' or `apt-get install darcs' as appropriate. It appears that the same package builds on Debian unstable (sid), but I don't have a system available to test it on. Please let me know of any problems, and I will endeavour to fix them. I am on IRC as Laney. Thanks all, Iain [1] https://launchpad.net/~laney/+archive

David, thank you for the last push, and clear re-org! And thanks to all darcs 2 contributors. -Simon

Hooray for the release of darcs-2! Way to go, David! Regards, Zooko
participants (6)
-
Brandon S. Allbery KF8NH
-
Bulat Ziganshin
-
David Roundy
-
Iain Lane
-
Simon Michael
-
zooko