[darcs-users] darcs 2.8 release

Florent Becker florent.becker at ens-lyon.org
Sun Apr 22 18:34:56 UTC 2012

Hi all,

The darcs team is pleased to announce the release of darcs 2.8.


The easiest way to install darcs 2.8 from source is by first
installing the Haskell Platform (http://www.haskell.org/platform). If
you have installed the Haskell Platform or cabal-install, you can
install this release by doing:

$ cabal update
$ cabal install darcs-2.8

Alternatively, you can download the tarball from
http://darcs.net/releases/darcs-2.8.0.tar.gz and build it by hand as
explained in the README file.

The 2.8 branch is also available as a darcs repository from

Supported GHC versions and Unicode filenames.

Due to changes in ghc's handling of non-ASCII filenames, darcs 2.8
supports GHC versions 6.10.x, 6.12.x, 7.0.x, and 7.4.x. Version 7.2.x is
also supported on Windows. On Unix systems, version 7.2.x is disabled by
the cabal file, as using a darcs executable built using ghc 7.2.x could
make the on-disk format of repositories inconsistent.


These will be posted to http://wiki.darcs.net/Binaries as they become


If you have an issue with darcs 2.8, you can report it via the web
on http://bugs.darcs.net/ . You can also report bugs by email to bugs at
darcs.net, or come to #darcs on irc.freenode.net.

Most visible changes since darcs 2.5

Since darcs 2.5 has been tagged, there have been 1181 patches accepted.
Here is a list of the most user-visible changes:

    -   Local support for the legacy "old-fashioned" repository format
        has been removed.
          ~ -   You can still work with remote repositories in this
            -   Local repositories can still be upgraded via "darcs
                optimize --upgrade".
    -   "darcs annotate" is now significantly faster and uses less
        memory, although it still slows down linearly with repository
    -   An experimental option is available to speed up HTTP
          ~ -   You can now use "darcs optimize --http" to create a
                repo optimized for HTTP downloads, and use "darcs get
                --packs" to download such a repo.
            -   There are still some known issues with it, so the
                feature is not enabled by default.

    -   Darcs now supports multiple email addresses for the author in
        the global prefs file. So, if you use different identities for
        home and work, you can now easily select between them.
    -   The -o/-O options for obliterate which were removed in 2.5 are
    -   "darcs status" has been added as a hidden alias for "darcs
        whatnew -ls" to ease the transition from some other source
        control systems. (issue182)
    -   "darcs amend-record" now has the option --unrecord to allow
        individual changes to be unrecorded. (issue1470). This can
	also be used as "darcs amend-unrecord".
    -   "darcs amend-record"'s interactive selection now supports 'k'
        for going back to a previous patch.
    -   "darcs dist" now has the option --set-scripts-executable.
    -   pushing to ssh:// URLS is now supported. eg: darcs push
    -   If a test fails during darcs record, you now have the option
        to record it anyway. (issue332)
    -   Hunk-splitting now works in "darcs revert" (issue114)
    -   Sending patches by email is now more robust and human
        friendly. We display a cleaner version in plain text for
        humans, and have added a complete version of the patch for
        "darcs apply". (issue1350)
    -   "darcs send" now tries to report the right character set in
        the email headers, and has the option --charset to override
    -   A new environment variable has been added to help control
        network connections: DARCS\_CONNECTION\_TIMEOUT. See the
        manual for details.
    -   The --ephemeral and --partials options to "darcs get" has en
        removed. "darcs check --partial" has also been removed.
    -   "darcs rollback" now has a --no-record option, to be used en
        you only want to update the working directory.
    -   The --nolinks option for "darcs get" was removed.
    -   The "--old" flag has been removed for "darcs init", "darcs
        get" and "darcs put".
    -   "darcs resolve" has been removed an alias for "darcs
    -   "darcs init" and "darcs get" now have a --no-working-dir
    -   Conflicts are now marked with red in the terminal. ssue1681)
    -   ssh ControlMaster support has been removed.
    -   ssh stderr output is now passed through, making it easier to
        diagnose problems. (issue845)
    -   Interactive selection now has a 'g' command to go to the first
    -   The --unified flag is now available for record, end-record,
        revert and unrevert (issue1166)
    -   darcs now has a "darcs test" command for running whatever
        test-suite is associated with the repository.

-   Other Issues resolved in Darcs 2.8
    -   issue1266: "darcs init" now warns when run inside another
        darcs repo.
    -   issue1344: When using darcs send, let users know sooner if
        they won't eventually be able to send
    -   issue1397: darcs changes /bad /paths no longer lists all
    -   issue1473: problem with annotate --repodir
    -   issue1551: Now we only use 'file content did not change'
        prompt for darcs send
    -   issue1558: xml output for patch hash no longer includes "gz"
    -   issue1599: automatically expire unused caches
    -   issue1637: When darcs get fails due to a HTTP failure, port
        the actual HTTP failure.
    -   issue1640: darcs apply --verbose docs have been improved
    -   issue1661: darcs add --quiet is quieter
    -   issue1705: fix error with unhandled --index in "darcs show
    -   issue1714: provide more sensible behavior when combining an
        "ALL" default with a default for a specific sub-command
    -   issue1727: a better diagnostic message is provided when the
        user tries to move the root of the repository
    -   issue1740: "darcs mv" now gracefully the handles the case re
        the user first does an "mv" on a directory and then follows
        up with a "darcs mv"
    -   issue1804: The diagnostic message "getSymbolicLinkStatus: es
        not exist" has been improved
    -   issue1883: rename --patch-name option to --name. This is
        usually used in darcs record in shorthand (-m) form. This
        rename is aimed at eliminating the confusion with the patch
        matcher, which bites amend-record and rollback users.
    -   issue1884: darcs get was wrongly reporting "getting lazy
        repository" when you hit C-c
    -   issue1908: try to create a global cache before checking its
    -   issue1922: Fixed bug where obliterate -o was producing
        incorrect bundles in some cases
    -   issue1923: bad source warning mechanism no longer warns out
        sources outside your control
    -   issue1932: Handling of files with colons is improved
    -   issue1965: attempting "darcs move" on non-repo files now ves
        a sensible error
    -   issue1977: "darcs repair" now no longer complains if the
        pristine.hashed directory is missing
    -   issue1978: Improve handling of the \_darcs/format file with
        "darcs get"
    -   issue1984: "darcs convert" now gives a better error message
        for invalid repo names
    -   issue2013: "darcs send" no longer ignores --to (or default
        recipient) with --context
    -   issue2021: character encoding handling has been improved
    -   issue2041: "darcs add" no longer follows directory symlinks
    -   issue2054: The behavior when combining --boring with a ring
        file has been improved
    -   issue2066: "darcs record" better handles adding deleted and
        added files passed on the command line
    -   issue2067: darcs diff no longer outputs blank lines when
        non-existent files are given
    -   issue2076: "darcs move myfile" into directory confuses darcs
    -   issue2077: "darcs mv myfile" into directory no longer confuses
    -   issue2079: "darcs put" now does --set-default by default

darcs-users mailing list
darcs-users at darcs.net

More information about the darcs-users mailing list