[darcs-users] darcs patch: Revert --restrict-paths removal. (and 2 more)

David Caldwell david at porkrind.org
Mon Jan 5 10:36:09 UTC 2009


On 1/4/09 4:38 PM +0000 Eric Kow wrote:

> Hi David,
>
> I'm almost ready to apply this patch, thanks to Florent's review, but
> before I do so, I would like to see a use case of where this would
> actually be a good thing to have.  Could you supply one, preferably in
> the form a a user manual patch?

I have a few fake darcs repos in the test section of a perl module I'm 
writing. I want to be able to test the module without having darcs 
installed so that the CPAN automated testers can do it for me.

> P.S. typo: s/tempering/tampering/

I'm going to add a new patch to fix it because that particular patch was a 
straight rollback patch (I didn't write those docs) so it seems a little 
dirty to rollback and then amend... But if you'd rather have it that way 
then let me know and I'll do it.

> On Sun, Jan 04, 2009 at 17:29:27 +0100, Florent Becker wrote:
>
>> Would it make sense to have a per-repository whitelist of safe paths
>> which would otherwise be rejected as unsafe?

It would actually make a little more sense in my case. What might make even 
more sense is to change the path restriciton checker. It appears to 
complain if "_darcs" is anywhere in the path, when it seems to me it's only 
bad if it's the first component. That leaves symlinks and "x/../_darcs" 
style paths as a possible attack. ".." is already taken care of in the 
is_malicious_path function. Symlinks don't appear naturally in darcs, but 
specific repositories might create them with a makefile or something. To be 
very safe it would require a "resolve symlinks" pass before the check, 
which might be annoying to implement.


I've added one new patch to this set. It improves the error reporting in 
the malicious path situation. When I try to pull my repo's testing patch I 
now get this:

> darcs failed:  Malicious path in patch:
>     ./t/darcs-2/_darcs
>     ./t/darcs-2/_darcs/format
>     ./t/darcs-2/_darcs/hashed_inventory
>     ./t/darcs-2/_darcs/pristine.hashed
>     ./t/darcs-hashed/_darcs
>     ./t/darcs-hashed/_darcs/format
>     ./t/darcs-hashed/_darcs/hashed_inventory
>     ./t/darcs-hashed/_darcs/pristine.hashed
> 
./t/darcs-hashed/_darcs/pristine.hashed/da39a3ee5e6b4b0d3255bfef95601890afd80709
>     ./t/darcs-old/_darcs
>     ./t/darcs-old/_darcs/inventory
>     ./t/darcs-old/_darcs/pristine
>
> If you are sure this is ok then you can run again with the 
--dont-restrict-paths option.

I think this is a better thing to do than a straight documentation patch, 
as no one really cares about the option until you have to avoid the check. 
And when the issue hits you it's nice to have the info right there instead 
of having to root around in the manual (or the source code) for what the 
error means and what you can do about it.

-David
-------------- next part --------------
Fri Jan  2 02:17:05 PST 2009  David Caldwell <david at porkrind.org>
  * Revert --restrict-paths removal.

Fri Jan  2 02:17:26 PST 2009  David Caldwell <david at porkrind.org>
  * Add --restrict-paths (and --dont-restrict-paths) to "darcs pull".

Fri Jan  2 02:17:37 PST 2009  David Caldwell <david at porkrind.org>
  * Add --restrict-paths (and --dont-restrict-paths) to "darcs apply".

Sun Jan  4 18:42:08 PST 2009  David Caldwell <david at porkrind.org>
  * Fix typo in --dont-restrict-paths documentation.

Mon Jan  5 02:16:28 PST 2009  David Caldwell <david at porkrind.org>
  * Print malicious paths and optional way around them when they cause a failure.

New patches:

[Revert --restrict-paths removal.
David Caldwell <david at porkrind.org>**20090102101705
 Ignore-this: 1fba1f9a589aaabb1fa27a268f7c972e
] hunk ./src/Darcs/Arguments.lhs 32
                          DarcsOption( .. ), option_from_darcsoption,
                          help, list_options, list_files,
                          help_on_match,
-                         any_verbosity, disable,
+                         any_verbosity, disable, restrict_paths,
                          notest, test, working_repo_dir,
                          testByDefault,
                          remote_repo,
hunk ./src/Darcs/Arguments.lhs 463
 working_repo_dir :: DarcsOption
 possibly_remote_repo_dir :: DarcsOption
 disable :: DarcsOption
+restrict_paths :: DarcsOption
 
 pipe_interactive, all_pipe_interactive, all_interactive, all_patches, interactive, pipe,
   human_readable, diffflags, allow_problematic_filenames, noskip_boring,
hunk ./src/Darcs/Arguments.lhs 1498
 \end{code}
 
 \begin{options}
+--dont-restrict-paths, --restrict-paths
+\end{options}
+By default darcs is only allowed to manage and modify files and directories
+contained inside the current repository and not being part of any darcs
+repository's meta data (including the current one). This is mainly for
+security, to protect you from spoofed patches modifying arbitrary files
+with sensitive data---say, in your home directory---or tempering with any
+repository's meta data to switch off this safety guard.
+
+But sometimes you may want to manage a group of ``sub'' repositories'
+preference files with a global repository, or use darcs in some other
+advanced way. The best way is probably to put
+\verb!ALL dont-restrict-paths! in \verb!_darcs/prefs/defaults!. This turns
+off all sanity checking for file paths in patches.
+
+Path checking can be temporarily turned on with \verb!--restrict-paths! on
+the command line, when pulling or applying unknown patches.
+
+\begin{code}
+restrict_paths =
+    DarcsMultipleChoiceOption
+    [DarcsNoArgOption [] ["restrict-paths"] RestrictPaths
+     "don't allow darcs to touch external files or repo metadata",
+     DarcsNoArgOption [] ["dont-restrict-paths"] DontRestrictPaths
+     "allow darcs to modify any file or directory (unsafe)"]
+\end{code}
+
+\begin{options}
 --allow-unrelated-repos
 \end{options}
 By default darcs checks and warns user if repositories are unrelated when
[Add --restrict-paths (and --dont-restrict-paths) to "darcs pull".
David Caldwell <david at porkrind.org>**20090102101726
 Ignore-this: dd3bc04632d341be16709e0aee6753ec
] hunk ./src/Darcs/Commands/Pull.lhs 41
                          test, dry_run,
                          set_default, summary, working_repo_dir, remote_repo,
                          set_scripts_executable, nolinks,
-                         network_options, umask_option, allow_unrelated_repos
+                         network_options, umask_option, allow_unrelated_repos, restrict_paths
                       )
 import Darcs.Repository ( Repository, SealedPatchSet, identifyRepositoryFor, withGutsOf,
                           amInRepository, withRepoLock, ($-), tentativelyMergePatches,
hunk ./src/Darcs/Commands/Pull.lhs 97
                                                  ignoretimes,
                                                  remote_repo,
                                                  set_scripts_executable,
-                                                 umask_option] ++
+                                                 umask_option,
+                                                 restrict_paths] ++
                                                 network_options,
                      command_basic_options = [match_several,
                                               all_interactive,
[Add --restrict-paths (and --dont-restrict-paths) to "darcs apply".
David Caldwell <david at porkrind.org>**20090102101737
 Ignore-this: f6ab937573bf0d5397361ddefed902c9
] hunk ./src/Darcs/Commands/Apply.lhs 46
                         all_interactive, sendmail_cmd,
                         leave_test_dir, happy_forwarding, 
                         dry_run, print_dry_run_message_and_exit,
-                        set_scripts_executable
+                        set_scripts_executable, restrict_paths
                       )
 import qualified Darcs.Arguments as DarcsArguments ( cc )
 import Darcs.RepoPath ( toFilePath, useAbsoluteOrStd )
hunk ./src/Darcs/Commands/Apply.lhs 108
                                                   happy_forwarding,
                                                   sendmail_cmd,
                                                   ignoretimes, nocompress,
-                                                  set_scripts_executable, umask_option],
+                                                  set_scripts_executable, umask_option,
+                                                  restrict_paths],
                       command_basic_options = [verify,
                                               all_interactive]++dry_run++
                                               [apply_conflict_options,
[Fix typo in --dont-restrict-paths documentation.
David Caldwell <david at porkrind.org>**20090105024208
 Ignore-this: 16197eeef34dedddeda036b47747f234
] hunk ./src/Darcs/Arguments.lhs 1504
 contained inside the current repository and not being part of any darcs
 repository's meta data (including the current one). This is mainly for
 security, to protect you from spoofed patches modifying arbitrary files
-with sensitive data---say, in your home directory---or tempering with any
+with sensitive data---say, in your home directory---or tampering with any
 repository's meta data to switch off this safety guard.
 
 But sometimes you may want to manage a group of ``sub'' repositories'
[Print malicious paths and optional way around them when they cause a failure.
David Caldwell <david at porkrind.org>**20090105101628
 Ignore-this: cdb706087869e19e046bc0dd424ca38d
] hunk ./src/Darcs/CommandsAux.hs 55
 check_paths :: Patchy p => [DarcsFlag] -> FL p C(x y) -> IO ()
 check_paths opts patches
   = if check_is_on  && or (mapFL has_malicious_path patches)
-      then fail "Malicious path"
-           -- TODO: print patch(es) and path(s)
+      then fail $ unlines $ ["Malicious path in patch:"] ++
+                            (map (\s -> "    " ++ s) $ concat $ mapFL malicious_paths patches) ++
+                            ["", "If you are sure this is ok then you can run again with the --dont-restrict-paths option."]
+           -- TODO: print patch(es)
            -- NOTE: should use safe Doc printer, this can be evil chars
       else return ()
  where
hunk ./src/Darcs/CommandsAux.hs 71
 
 has_malicious_path :: Patchy p => p C(x y) -> Bool
 has_malicious_path patch =
+    case malicious_paths patch of
+      [] -> False
+      _ -> True
+
+malicious_paths :: Patchy p => p C(x y) -> [String]
+malicious_paths patch =
   let paths = list_touched_files patch in
hunk ./src/Darcs/CommandsAux.hs 78
-    any is_malicious_path paths
+    filter is_malicious_path paths
 
 {-|
   What is a malicious path?

Context:

[TAG 2.2.0pre2
Petr Rockai <me at mornfall.net>**20090104115909] 
[Bump darcs version to 2.2.0pre2, in configure.ac.
Petr Rockai <me at mornfall.net>**20090104115743] 
[Distribute README in Cabal-based tarballs.
Petr Rockai <me at mornfall.net>**20090104111358] 
[Cabal does not allow listing of autogen'd modules in exposed-modules.
Petr Rockai <me at mornfall.net>**20090104111344] 
[Fix a bug in release/distributed-context generation in Setup.lhs.
Petr Rockai <me at mornfall.net>**20090104111242] 
[Fix an off-by-one error in patch counting code in Setup.lhs.
Petr Rockai <me at mornfall.net>**20090104111202] 
[Bump version to 2.1.98.2, in darcs.cabal.
Petr Rockai <me at mornfall.net>**20090104085835] 
[Tweak cabal build instructions.
Trent W. Buck <trentbuck at gmail.com>**20090104101303] 
[make stringify cut the string
florent.becker at ens-lyon.org**20090104102125
 Ignore-this: e1a0cd83fce5085f60b812d894ca26e7
 This avoids choking utilities such as grep (or emacs' internal grep) which parse haskell files line-by-line.
] 
[Resolve conflicts in GNUmakefile.
Petr Rockai <me at mornfall.net>**20090104085641] 
[Resolve conflicts in darcs.cabal.
Petr Rockai <me at mornfall.net>**20090104085621] 
[TAG 2.2.0pre1
Petr Rockai <me at mornfall.net>**20081219015734] 
[Bump cabal version to 2.1.98.1.
Petr Rockai <me at mornfall.net>**20081219013855] 
[Include autoconf.mk in GNUmakefile for make dist.
Petr Rockai <me at mornfall.net>**20081219013036] 
[Add Cabal-based build instructions to README.
Petr Rockai <me at mornfall.net>**20090104092142] 
[make unit's return value depend on all tests
Florent Becker <florent.becker at ens-lyon.org>**20090102184930
 Ignore-this: fce3636c70bcb4a80413823c88e3ac6a
] 
[Resolve issue1285: remove "cabal test" intermediaries.
Trent W. Buck <trentbuck at gmail.com>**20090103095347] 
[Resolve issue1206: Countable Nouns.
Trent W. Buck <trentbuck at gmail.com>**20090101062452
 Use the conventional term "Countable" instead of "Numbered".
] 
[remove --restrct-paths from the manual
Jason Dagit <dagit at codersbase.com>**20081115205752] 
[remove unused export restrict_paths in Arguments
Jason Dagit <dagit at codersbase.com>**20081115205717] 
[Workaround issue1292: disable Haskeline by default, for now.
Judah Jacobson <judah.jacobson at gmail.com>**20081230062721
 Ignore-this: 36e64538118d4788a6f6d50a6bbdb930
 The Haskeline backend doesn't return non-ASCII input in a way that Darcs can process.  The next
 release of Haskeline should make it easier to resolve this issue.
] 
[Improve readability of bug reporting.
Trent W. Buck <trentbuck at gmail.com>**20081226120833
 Moving "at <location>" to the first line gives the descriptive string
 a line all to itself.  For example, darcs show bug:
 
     darcs: bug at src/Darcs/Commands/ShowBug.lhs:57 compiled Nov  4 2008 12:05:43
     This is actually a fake bug in darcs.
] 
[Use imperative mood for primitive matcher help.
Trent W. Buck <trentbuck at gmail.com>**20081228114434] 
[Check GADT witnesses when doing Cabal-based builds.
Petr Rockai <me at mornfall.net>**20081228111229] 
[Fix haddock error
Eric Kow <kowey at darcs.net>**20081227204218
 Ignore-this: 60f05d20e5f37312f6b477067114fac7
] 
[Haddock for primitiveMatchers (untested).
Trent W. Buck <trentbuck at gmail.com>**20081227141921] 
[Rewrite primitive matcher examples.
Trent W. Buck <trentbuck at gmail.com>**20081227141845] 
[Rewrite "darcs help --match" output.
Trent W. Buck <trentbuck at gmail.com>**20081227141819
 Add an introductory paragraph, and put all the examples into a single
 code block, since one-line paragraphs are kind hard to read.
] 
[Delete superfluous "Introduction" headings.
Trent W. Buck <trentbuck at gmail.com>**20081227034129
 I don't think it's useful to grant a subsection heading to the single
 introductory paragraph of a section.
] 
[Refactor error text for readability.
Trent W. Buck <trentbuck at gmail.com>**20081109144007] 
[Tweak user manual's title page.
Trent W. Buck <trentbuck at gmail.com>**20081227011031
 It annoyed me that the user manual was just called "Darcs", not "Darcs
 User Manual".
] 
[Improve readability of bug reporting.
Trent W. Buck <trentbuck at gmail.com>**20081226104243
 Moving "at <location>" to the first line gives the descriptive string
 a line all to itself.  For example, darcs show bug:
 
     darcs: bug at src/Darcs/Commands/ShowBug.lhs:57 compiled Nov  4 2008 12:05:43
     This is actually a fake bug in darcs.
] 
[Haddockize developer comment.
Trent W. Buck <trentbuck at gmail.com>**20081214041902] 
[Fix a memory leak in Darcs.Repository.Repair.
Petr Rockai <me at mornfall.net>**20081223122227
   
 The way we repaired patches forced the whole repository into memory. We now
 only store patches that we have actually changed and "zip" them back into the
 repository using replaceInFL.
] 
[resolve issue1273: Work around a race in download code.
Petr Rockai <me at mornfall.net>**20081225211634
 
 When we had multiple darcsen downloading the same repo, with cache enabled,
 they would stomp on each other's temporary files and die horribly.
] 
[Fix GNU-isms (cp -a, sed -i) in tests/repair-corrupt.sh.
Petr Rockai <me at mornfall.net>**20081224083145] 
[Darcs.ColorPrinter: factor out getPolicy call
gwern0 at gmail.com**20081222180227
 Ignore-this: aee5b5415ee8bbfe1dac06e240b90080
 Less redundancy. 'getPolicy' is being called with the same args, and it's
 not like the environmental variables are going to change in between each
 call.
] 
[Add a rudimentary test for repair of a corrupt repository.
Petr Rockai <me at mornfall.net>**20081223084036] 
[Make it possible to run just specific tests from cabal commandline.
Petr Rockai <me at mornfall.net>**20081223083742
 
 All of `cabal test repair-corrupt bugs/newlines bugs/issue27.sh` should work as
 expected. The implementation is not very efficient, but seems to work fine.
] 
[Neatify "cabal test" option munging in Setup.lhs.
Petr Rockai <me at mornfall.net>**20081223080811] 
[Sort the list of tests that are run by cabal.
Petr Rockai <me at mornfall.net>**20081223073642] 
[Remove now-unused replacePristine.
Petr Rockai <me at mornfall.net>**20081210065138] 
[Add missing tests-related files to darcs.cabal.
Petr Rockai <me at mornfall.net>**20081219012851] 
[Bump version to 2.2.0pre1.
Petr Rockai <me at mornfall.net>**20081219010555] 
[resolve issue948: rewrite darcsman.
Trent W. Buck <trentbuck at gmail.com>**20081221081934
 
 Significant changes are:
 
  - Avoid duplicating groups from TheCommands.
  - Due to growing command_helps, list commands in SYNOPSIS.
  - Use subsections (.SS) for groups.
  - Include (with fancy markup!) command arguments.
  - Include darcs help --match.
  - Copy-and-paste description from darcs.cabal.
  - Remove AUTHORS section as suggested by man-pages(7).
  - Declare my copyright.
 
] 
[Tweak punctuation in "darcs help --match".
Trent W. Buck <trentbuck at gmail.com>**20081221080949
 
 Manpages treat apostrophes in the first line specially.  Use `TeX
 style' quotes instead, so this string can be included in the manpage.
 
 Also omit mention of &&, || and ! until I find time to clarify that
 they are aliases for the human-readable and, or and not.
] 
[To "make dist" we need .depend.
Trent W. Buck <trentbuck at gmail.com>**20081219014641
 
 I have also excluded slowdisttest, because it depends on darcs (via
 test_unit) and thus needs to compile things.
 
 Finally, splitting the "include" line in two again hopefully fixes a
 confusing transient error because to build .depend, autoconf.mk must
 already be built and sourced!
 
 This is essentially a partial rollback of the following patches:
 
 Sat Oct 25 12:22:08 EST 2008  Trent W. Buck <trentbuck at gmail.com>
   * Refactor targets that prevent "include autoconf.mk" (and .depend).
   As well as being clearer, this is now a good deal more liberal. For
   example, it won't rebuild .depend during "make maintainer-clean".
 
 Sun Nov  2 15:53:59 EST 2008  Trent W. Buck <trentbuck at gmail.com>
   * Merge autoconf.mk and .depend inclusion.
 
   In a declarative expert system like Make, it shouldn't matter where
   .depend is included.  Actual experiments suggest that it does, and
   putting it at the top will help avoid illogical behaviour.
] 
[Bump darcs version to 2.2 in cabal file.
Salvatore Insalaco <kirby81 at gmail.com>**20081217104953
 Ignore-this: 14e33b627ddde6759addb286f6fe2fa
] 
[Remove pkgconfig check for curl on Windows.
Salvatore Insalaco <kirby81 at gmail.com>**20081217104754
 Ignore-this: 663d4019bb8da4277a2b3a96450e3cc4
] 
[Disable haskeline on Windows by default.
Salvatore Insalaco <kirby81 at gmail.com>**20081217104336
 Ignore-this: 9c1f7748012a3f836b741632de9c80df
] 
[Add missing modules (Autoconf, ThisVersion) to the cabal file
Ian Lynagh <igloo at earth.li>**20081216011742] 
[fix list command to select accepted patches only
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081215201740
 Ignore-this: 3578f67dfa0a05ac350b4398592233ba
] 
[Have "make tags" generate TAGS, too.
Trent W. Buck <trentbuck at gmail.com>**20081213085308] 
[Move format documentation hunks from Init.lhs to formats.tex.
Trent W. Buck <trentbuck at gmail.com>**20081214032133
 
 This discussion already takes place in formats.tex; having parts of it
 in Init.lhs is confusing both for readers and for contributors trying
 to keep the documentation up-to-date.
 
 This patch doesn't attempt to refactor or properly integrate the
 hunks; it just moves them verbatim.
] 
[The cache is enabled by default.
Trent W. Buck <trentbuck at gmail.com>**20081214024439] 
[Minor cleanups in Get, Convert, Flags
Florent Becker <florent.becker at ens-lyon.org>**20081212155718
 Ignore-this: d6e2418e6225d8f40bb22edc94c68fed
] 
[Remove --no-pristine test which is no longer relevant
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081212104743
 Ignore-this: 6fd58a45ff45c53d723d79057502881f
] 
[Remove unused import
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081212104644
 Ignore-this: 58ba17e56f47fed8e535b5b3a7f43000
] 
[Do not use replacePristine in copyFullRepository.
Petr Rockai <me at mornfall.net>**20081210065120] 
[fix regression in default behavior or check.
David Roundy <droundy at darcs.net>**20081208131416
 Ignore-this: 28a7edd9f5b3afddcf246fd1657775f9
 At the same time, clean up default handling of test just a tad.
] 
[fix bug in check.
David Roundy <droundy at darcs.net>**20081207141115
 Ignore-this: a177fb977e77c79cd5d0d0ba4ca987d2
] 
[Tell user it's safe to abort after external merge
Florent Becker <florent.becker at ens-lyon.org>**20081212100311
 Ignore-this: 9dcc44849ccf3acb79a4a5dcc35cd6ba
] 
[avoid ln -f flag to fix api doc building
Simon Michael <simon at joyful.com>**20081209204655
 Ignore-this: b09aa246e752cfa0a701090b9b94252
] 
[Remove the choice between --pristine-tree and --no-pristine-tree.
Eric Kow <kowey at darcs.net>**20081209110027
 Ignore-this: b3e36e81099e912663d3a1b6268f8848
 This just removes the switches and their documentation, not the code that
 actually creates such repositories or recognises --no-pristine-tree
 repositories.
] 
[fix bug in checkpoint generation.
David Roundy <droundy at darcs.net>**20081210154208
 Ignore-this: 1eee1b2d44e459096ac59eb0dd837afc
] 
[Remove obsolete (unused) checkPristineAgainstCwd and checkPristine.
Petr Rockai <me at mornfall.net>**20081210062937] 
[Fix build flags of darcs executable in cabal.
Salvatore Insalaco <kirby81 at gmail.com>**20081209184405
 Ignore-this: fa6c521300d6a60237418e22733ad6fa
] 
[Remove all references to makeRelative
Salvatore Insalaco <kirby81 at gmail.com>**20081209183850
 Ignore-this: 846533678645a299a976ec48d2719cdf
] 
[Fix whitespace in Darcs.ProgressPatches
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081209164902
 Ignore-this: 6e9aa4ae6f857ea904a48744aeb80bf2
] 
[add a list all selected things command to text_select
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081209155352
 Ignore-this: e3ec0367f2a52aaa0f7bd4e273c12e81
] 
[resolve issue1249: remove makeRelative usage in defaultrepo
Salvatore Insalaco <kirby81 at gmail.com>**20081209121553
 Ignore-this: 2670c16531c03c93b7d82111c28d51e4
 
 makeRelative causes issues with Windows absolute paths
 e.g. c:\something. It is used only in defaultrepo, and
 it appears to be a leftover from previous path management.
 This patch removes it, making defaultrepo management more
 like "regular" command line repo management.
 Note that the makeRelative code is not removed in this
 patch, just the usage.
] 
[resolve issue1165: tag feedback for progress in get
florent.becker at ens-lyon.org**20081209115229
 Ignore-this: 91d3217e38e6b8e5d581ef27059c1cc9
 Make darcs get print the following as its progression indicator:
 42/1664 back to: TAG ada strawberry
 Where "ada strawberry" is the most recent tag that was effectively fetched.
 This makes it easier to know when to hit Ctrl-C
] 
[Some cleaning in progress.hs, move it to src/, split darcsish bits
florent.becker at ens-lyon.org**20081209112803
 Ignore-this: 96ed60798c193b67821399476786f859
 Split src/Darcs/Progress.hs into:
  - src/Progress.hs for the general functionalities, might be worth releasing
  outside darcs proper
  - src/Darcs/ProgressPatches.hs for the darcsish stuff, progressFL 
  and progressRL
] 
[Simplify build dependencies: put is_tag in Patch.Info
florent.becker at ens-lyon.org**20081208102357
 Ignore-this: b6d44e86a4f12e9dc5f8f32bbc50df23
] 
[cut unused run_test
David Roundy <droundy at darcs.net>**20081207141201
 Ignore-this: cdc8a2b58695be5ac318b3e5634339cd
] 
[resolve issue1247: avoid reference to removed $CTAGS variable.
Trent W. Buck <trentbuck at gmail.com>**20081207022013
 This was just a simple typo on my part.
] 
[Further simplify "darcs put" help.
Trent W. Buck <trentbuck at gmail.com>**20081207040323] 
[Refactor "darcs put" help.
Trent W. Buck <trentbuck at gmail.com>**20081206112917] 
[Expose modules as a library in darcs.cabal
Eric Kow <kowey at darcs.net>**20081125102729
 Ignore-this: 4bfd8b48d4bf0519e7cb803ae62266b3
] 
[Added support for using the utf8-string library if it's available
Rob Hoelz <rob at hoelzro.net>**20080809171510] 
[Refactor "darcs dist" help.
Trent W. Buck <trentbuck at gmail.com>**20081130011414] 
[tests/*: rm IFS hack from selected subset
gwern0 at gmail.com**20081130234814
 Ignore-this: 46af9351b82f9d8d8b497e9c1cce6b21
] 
[Fix haddock error
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081130111241
 Ignore-this: ab270cce2bc0aaa5c2d1f284705a027d
] 
[Refactor "darcs tag" help.
Trent W. Buck <trentbuck at gmail.com>**20081129224224] 
[Refactor "darcs check" help.
Trent W. Buck <trentbuck at gmail.com>**20081129120817] 
[Refactor "darcs unrevert" help.
Trent W. Buck <trentbuck at gmail.com>**20081129115913] 
[Enable haskeline by default in the Cabal file.
Judah Jacobson <judah.jacobson at gmail.com>**20081129165047
 Ignore-this: feeab33d5e512487a13b1a09300f5a60
] 
[Don't use the terminfo package on Windows (Cabal).
Judah Jacobson <judah.jacobson at gmail.com>**20081128194821
 This lets us use terminfo by default while not breaking the Windows build.
] 
[Rollback disabling of terminfo by default.
Judah Jacobson <judah.jacobson at gmail.com>**20081128173611] 
[Refactor "darcs mark-conflicts" help.
Trent W. Buck <trentbuck at gmail.com>**20081129015407] 
[Refactor "darcs whatsnew" help.
Trent W. Buck <trentbuck at gmail.com>**20081129045756] 
[resolve issue1238: refactor "darcs setpref" help.
Trent W. Buck <trentbuck at gmail.com>**20081128125305] 
[Disable terminfo by default (Cabal)
Eric Kow <kowey at darcs.net>**20081128120951
 Ignore-this: 18de9bcaf3b380cf8c1d1b6565321297
 Salvatore points out that the terminfo package does not install on Windows
] 
[Refactor take/repeat as replicate.
Trent W. Buck <trentbuck at gmail.com>**20081128114653] 
[Refactor "darcs transfer-mode" help.
Trent W. Buck <trentbuck at gmail.com>**20081127123101] 
[Bump cabal version to 2.1.2.3
Eric Kow <kowey at darcs.net>**20081126195252
 Ignore-this: 78bcf676f83a67ff547ad9aa529166c3
] 
[Disable external-zlib by default (darcs.cabal)
Eric Kow <kowey at darcs.net>**20081126195237
 Ignore-this: bfac85e5425df8d8386abd586934d17d
] 
[Remove unit testing modules form darcs.cabal
Eric Kow <kowey at darcs.net>**20081125101839
 Ignore-this: 66a158494870dd8d548d66fc6a7658eb
] 
[Refactor "darcs add" help.
Trent W. Buck <trentbuck at gmail.com>**20081124134407] 
[Refactor "darcs amend-record" help.
Trent W. Buck <trentbuck at gmail.com>**20081124134349] 
[Refactor "darcs repair" help.
Trent W. Buck <trentbuck at gmail.com>**20081124134152] 
[Refactor "darcs help" help.
Trent W. Buck <trentbuck at gmail.com>**20081124133935] 
[resolve issue1199: Backup files darcs added after external merge
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081125092916
 Ignore-this: bc5c1365bdf4ca70073a85712f00e21c
] 
[Remove empty literate blocks from src/*.lhs.
Trent W. Buck <trentbuck at gmail.com>**20081124113021
 I used perl -pi -0 -e 's/\n*\\end{code}\n*\\begin{code}\n*/\n\n/g'.
] 
[Remove empty literate blocks from src/Darcs/*.lhs.
Trent W. Buck <trentbuck at gmail.com>**20081124112956
 I used perl -pi -0 -e 's/\n*\\end{code}\n*\\begin{code}\n*/\n\n/g'.
] 
[Remove empty literate blocks from src/Darcs/Repository/*.lhs.
Trent W. Buck <trentbuck at gmail.com>**20081124112938
 I used perl -pi -0 -e 's/\n*\\end{code}\n*\\begin{code}\n*/\n\n/g'.
] 
[Remove empty literate blocks from src/Darcs/Patch/*.lhs.
Trent W. Buck <trentbuck at gmail.com>**20081124112916
 I used perl -pi -0 -e 's/\n*\\end{code}\n*\\begin{code}\n*/\n\n/g'.
] 
[Remove empty literate blocks from src/Darcs/Commands/*.lhs.
Trent W. Buck <trentbuck at gmail.com>**20081124112636
 I used perl -pi -0 -e 's/\n*\\end{code}\n*\\begin{code}\n*/\n\n/g'.
] 
[Fix haddock for unsafeDiffAtPaths.
Reinier Lamers <tux_rocker at reinier.de>**20081115211420
 Ignore-this: f857de0b4f2d3fa2c7daa18b7a52a224
] 
[Add very rudimentary haddocks in Darcs.Patch.{Non,Real}.hs
Jason Dagit <dagit at codersbase.com>**20081123204958] 
[Appease ghc-6.10 type witnesses in SelectChanges.
Jason Dagit <dagit at codersbase.com>**20081123085733
 Ignore-this: b4db36fc77072c2dbefc27496cbc33e
] 
[Appease ghc-6.10 on witness types in Repository.Internal.
Jason Dagit <dagit at codersbase.com>**20081123085140
 Ignore-this: 73899c04b7af77af77a33798abd7ec41
 Introduce a local function, doChanges, so we can give more rigid types.
] 
[Appease ghc-6.10 on witness types.
Jason Dagit <dagit at codersbase.com>**20081123083650
 Ignore-this: 916417e4ae63cf9e966a1c703716690f
 Introduces f and g_s as local functions to appease the ghc-6.10 type
 checker.
] 
[Point to new shorter URL for binaries wiki page.
Eric Kow <kowey at darcs.net>**20081122083014] 
[Rollback IFS removal
Eric Kow <kowey at darcs.net>**20081121230952
 Removing this seems to break for the case where there is a space in the
 path
 
 rolling back:
 
 Fri Nov 21 21:29:21 GMT 2008  gwern0 at gmail.com
   * tests/*.sh: rm vitiated IFS variable
   Originally there to help portable_pwd on Cygwin. We no longer need it.
] 
[Appease ghc-6.10 witnesses in Real.hs.
Jason Dagit <dagit at codersbase.com>**20081121174926
 Ignore-this: 5b9d1a02a88ced416d650bffa2a76645
 Introduce a local function to get rid of another non-rigid type in a
 pattern match.
] 
[Appease ghc-6.10 witnesses in Prim.lhs.
Jason Dagit <dagit at codersbase.com>**20081121173215
 Ignore-this: 9289f3ece580ccdff1ba583aa1140562
 I introduce sc in the where-clause so that the case-expression can
 have a rigid type at the point of pattern match.  This patch would
 have a few less redundant bits, except that the existentials wouldn't
 quite unify otherwise.  This is why I introduced p1'.
] 
[tests/*.sh: rm vitiated IFS variable
gwern0 at gmail.com**20081121212921
 Ignore-this: f795b7ad4f9a52a9b59cdcca24fa7de9
 Originally there to help portable_pwd on Cygwin. We no longer need it.
] 
[documentation/website: Fix bigpage compilation.
Eric Kow <kowey at darcs.net>**20081121092030
 Bigpage should be compiled from doc/manual/darcs.tex, not src/darcs.tex
 The first is a giant tex file manufactured by preproc; the second is
 what used to be the literate source in darcs.lhs.
] 
[Use let to avoid duplication in Darcs.Patch.Real.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081120223434
 Ignore-this: 76b6f7c7c88c0a95436878b1cdc77caa
] 
[Make darcs.pdf just a copy of darcs_print.pdf and likewise for darcs.ps
Eric Kow <kowey at darcs.net>**20081119175845
 Ignore-this: 79407b453c89224d6bb895fff40ba596
 This fixes a likely regression in which darcs.pdf was compiled from
 darcs.tex and not darcs_print.tex.  It seems like darcs.tex exists for
 tools like latex2html.  Perhaps a better solution would be for that file
 to be called darcs_html.tex.
] 
[Remove seemingly unused ps/pdf targets
Eric Kow <kowey at darcs.net>**20081119174858
 Ignore-this: b6765af06196140b3a7934841306da1d
 These targets, for example, copy src/foo.pdf to doc/manual/foo.pdf
 But it seems like the makefile is instead designed to compile these
 from doc/manual/foo.tex directly.
] 
[Remove OPTIONS_GHC that GHC-6.10.1 warns as "deprecated"
Thorkil Naur <naur at post11.tele.dk>**20081120170402
 Remove all occurrences of -fallow-undecidable-instances, 
 -fbang-patterns, and -fffi in {-# OPTIONS_GHC ... #-} lines. GHC-6.10.1 
 warns that these options are deprecated. In addition, remove nearby -cpp
 options. The removed OPTIONS_GHC options are all covered by 
 corrresponding LANGUAGE options.
] 
[add newlines to the default entries so we don't break the file
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081120091932
 Ignore-this: 47cfad0c016be68d8f21fdd5cc68210f
] 
[bump package version number for hackage
Jason Dagit <dagit at codersbase.com>**20081120091843] 
[correctly add Distribution/ShellHarness.hs to darcs.cabal
Jason Dagit <dagit at codersbase.com>**20081120091826] 
[sdist errors on trying to move tests/shell_harness
Jason Dagit <dagit at codersbase.com>**20081120090417
 This may not be an idea solution, but for now I just remove
 tests/shell_harness from the cabal file.  Perhaps it should be
 replaced with mention to the new shell_harness.hs.
] 
[bump version number in darcs.cabal
Jason Dagit <dagit at codersbase.com>**20081120090401] 
[issue1043b now also resolved by David
Eric Kow <kowey at darcs.net>**20081120000307] 
[resolve issue1043: avoid use of sort_coalesceFL in Patch.Real.
David Roundy <droundy at darcs.net>**20081119150234
 Ignore-this: 79003144c8571ef746108e09192cb4ed
 The trouble was that sort_coalesceFL does the "coalescing" which isn't
 governed by strict rules.  This might have been fixed by changing
 sort_coalesceFL to also run canonize, but the cleaner solution is to
 simply acknowledge that what I really wanted was just to join together
 pairs of inverses, which is much easier than the problem
 sort_coalesceFL is trying to solve.
] 
[code clarification
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081025204519] 
[resolve issue1117: warn if file does not exist in whatsnew
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081119155734
 Ignore-this: 96cb2370609e7acd9d0137725f5e56b5
] 
[shell_harness.hs hSetBuffering stdout NoBuffering
Thorkil Naur <naur at post11.tele.dk>**20081118220043
 Not a big deal, but this makes the output from shell_harness.hs a
 bit more entertaining.
] 
[Harden release/STATE munger.
Trent W. Buck <trentbuck at gmail.com>**20081118012512
 
 This fixes the short name DARCS_VERSION_WITH_PATCHES when
 release/STATE looks like "2.1.1rc2 (release candidate 2)" rather than
 "2.1.1rc2 (+ 533 patches)".
] 
[resolve issue1101: also display cc'ed recipients
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081115133214
 Ignore-this: 9955a84598aa60e14f5471c02ec0d9b8
] 
[Move make_repo_name after identifyRepoFormat in get.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20081118114246
 Ignore-this: a1d4f7f0b3321652acd3ea1288d6bff5
 Fixes darcs printing "Directory already exists, creating repository as"
 in case of bad repo or network failure, when no directory is created in
 fact.
] 
[Trivially extend unit test to work with Pavel's extended make_email.
Eric Kow <kowey at darcs.net>**20081118122415
 Note that this only passes in an empty list of extra headers.  It may
 also be useful in the future to automatically generate extra headers
 for our write-read test.
] 
[tests/README: add a section warning about use of 'yes' and 'find'
gwern0 at gmail.com**20081117205213
 Ignore-this: 618f92168403e6261fd68218fec82656
] 
[tests/*: per kowey, replace all portable_pwd with hspwd
gwern0 at gmail.com**20081117193340
 Ignore-this: bca937aa253b5a13feae0ea8a3edf152
] 
[tests/lib: scrap portable_pwd definition for alias to hspwd
gwern0 at gmail.com**20081117192517
 Ignore-this: ff9d290cf3d430c4de2d7e426dff79d3
] 
[Replace workaround with fix (Windows' sort doesn't have -o).
Trent W. Buck <trentbuck at gmail.com>**20081118014158
 
 rolling back:
 
 Mon Nov 17 07:44:22 EST 2008  Eric Kow <E.Y.Kow at brighton.ac.uk>
   * Work around difference between Windows and Cygwin sort program in test
 
     M ./tests/query_manifest.sh +2
] 
[Refactor Cabal package description.
Trent W. Buck <trentbuck at gmail.com>**20081118071254
 Based on the homepage description.
] 
[Consistently punctuate cabal flag descriptions.
Trent W. Buck <trentbuck at gmail.com>**20081118105924] 
[Test for darcs send with --in-reply-to option
Pavel Shramov <shramov at mexmat.net>**20081117185534] 
[Add --in-reply-to flag for send command
Pavel Shramov <shramov at mexmat.net>**20081117102056
 
 Patch adds --in-reply-to flag to darcs send and
 modifies make_email function in Darcs/Email.hs to
 accept list of additional headers.
 
 With --in-reply-to option two additional headers will be
 added to email - In-Reply-To and References.
] 
[in make file, quote the "$(DARCS_VERSION_WITH_PATCHES)" variable
zooko at zooko.com**20081117141727
 Ignore-this: 7f350c4b8b8e815e867dc88b38695b58
 Because the release candidate version has spaces in its version string.
] 
[Darcs works with regex-compat 0.92.
Trent W. Buck <trentbuck at gmail.com>**20081117111239] 
[don't run posthook if the command terminated with exitWith.
David Roundy <droundy at darcs.net>**20081116230521
 Ignore-this: d87d2bb442060d54284eef6bc27cc766
 This is a change in policy, and means that for instance darcs pull -a will
 only run the posthook if there are patches to pull.  It does mean that we
 have to be careful how we exit commands, since this adds new meaning to
 "exitWith ExitSuccess", but my audit of the code shows that this is only
 used when I wouldn't want to run the posthook anyhow.
 
 Actually, I found two gratuitous uses of exitWith ExitSuccess, and have
 removed them.
] 
[tests/README.test_maintainers.txt: add a section on the use of lib
gwern0 at gmail.com**20081117155840
 Ignore-this: 8bdf4592849569c34c209eb40104c72f
] 
[tests/*.sh: remove "set -ev" from all callers of lib
gwern0 at gmail.com**20081117152754
 Ignore-this: 8f00e36a574db7cd7ccd64c6610944e4
] 
[tests/lib: rm shebang header
gwern0 at gmail.com**20081117152152
 Ignore-this: d6e4907818407ba473bf8ee972aff7fb
] 
[mv lib.sh -> lib & update callers
gwern0 at gmail.com**20081117152050
 Ignore-this: 449b1a8deb686421d74afce2e3518fbb
] 
[tests/*.sh: factor out windows abortion
gwern0 at gmail.com**20081115210959
 Ignore-this: 4b0d0fb42b53e43d8f3b8ca082566864
] 
[tests/*.sh: factour out ~61 of the 'not' definitions to lib.sh
gwern0 at gmail.com**20081115205735
 Ignore-this: 889d88e1a4eb0c17447502fde02fdd0f
] 
[tests/*.sh: factor out definitions of portable_pwd to lib.sh
gwern0 at gmail.com**20081115201847
 Ignore-this: dda84abdcd2e833273e5a0f9668deeb
] 
[+tests/lib.sh: library for test scripts
gwern0 at gmail.com**20081115201608
 Ignore-this: 639f1e602f31949f93daab6053793127
 This adds a file to the tests directory for storing function definitions. This will cut down on silliness like 'not' being defined  in 63 different scripts - the exact same way.
] 
[Remove mention of unstable branch from the homepage
Eric Kow <kowey at darcs.net>**20081117131411] 
[Add --disable-unit to configure script
Eric Kow <kowey at darcs.net>**20081117115625
 Note that with this patch alone, this has no effect other than to disable
 the test for QuickCheck
] 
[Work around difference between Windows and Cygwin sort program in test
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081116204422] 
[Add DARCS_TESTING_HOME to shell harness
Eric Kow <eric.kow at gmail.com>**20081116180124
 This enables Petr's workaround for Windows not using $HOME by default
] 
[Conditionally compile out reset_umask on Windows
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081116161631] 
[import Arguments just once in WhatsNew
Jason Dagit <dagit at codersbase.com>**20081115210750] 
[clean up unused exports in Arguments.lhs
Jason Dagit <dagit at codersbase.com>**20081115205224] 
[tighten up imports in preproc.hs
Jason Dagit <dagit at codersbase.com>**20081115193944] 
[tighten imports in Commands.lhs
Jason Dagit <dagit at codersbase.com>**20081115193414] 
[tighten up imports in Tag.lhs
Jason Dagit <dagit at codersbase.com>**20081115192839] 
[tighten up imports in Replace.lhs
Jason Dagit <dagit at codersbase.com>**20081115192052] 
[tighten up imports in Commands.Dist
Jason Dagit <dagit at codersbase.com>**20081115191113] 
[remove unused export for isa from Arguments
Jason Dagit <dagit at codersbase.com>**20081115185607] 
[Appease Windows by replacing find(1) with globbing.
Trent W. Buck <trentbuck at gmail.com>**20081116020213
 
 On Windows, there are two utilities named "find".  The cygwin version
 is Unix-like, but the native Windows version behaves more like grep.
 If %PATH% makes the latter the default, $(shell find) does completely
 the wrong thing.
 
 Therefore we use $(wildcard) instead.  This is actually better in
 every respect bar one: it does not recurse.  This means that if
 someone starts creating Haskell files in subsubsubdirs of src, they
 won't be included by the current globs.
 
 Note that in GNU make, a glob expands to nothing if there are no
 matches.  By contrast, sh globs expand to themselves in that case.
] 
[issue525 fixed by David's patch
Eric Kow <kowey at darcs.net>**20081115225739] 
[Fix Darcs.Patch.Prim haddock
Eric Kow <kowey at darcs.net>**20081115224010] 
[resolve issue525: canonize output of sort_coalesceFL in AmendRecord.
David Roundy <droundy at darcs.net>**20081115211925
 Ignore-this: cb7485c971d7d8d6f7ffce9f9ec40e98
] 
[Make test-network a .PHONY target
Eric Kow <kowey at darcs.net>**20081114101217
 Ignore-this: 58b2f5d4ee869f2105f8a05e42766dc4
] 
[Create the .darcs directory in the test-network dir
Eric Kow <kowey at darcs.net>**20081114101151
 Ignore-this: d2d05cf3d18ba75c6a00f9c7500c298d
] 
[Remove obsolete test-franchise .PHONY entry from makefile
Eric Kow <kowey at darcs.net>**20081114101117
 Ignore-this: 8d5d36dba70acaa297310ac94f7d8256
] 
[Use Control.OldException if compiling shell harness with GHC 6.10
Eric Kow <kowey at darcs.net>**20081114093740
 Ignore-this: 5219c7e1b5a1dc4dbc607a729288e54d
] 
[use ShellHarness in Setup.lhs
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081112183809
 Ignore-this: 5322065b2d5d5595c01d22ca7ff527f
] 
[Use the shell harness in Makefile
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081112194558
 Ignore-this: bd01f57e24a840ddd474dca912258ef0
] 
[make ShellHarness a module
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081112193615
 Ignore-this: 814fb721a9a91bf35c189355c21e6e61
] 
[move shell_harness to Distribution/ShellHarness.hs
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081112183642
 Ignore-this: 1ae7f4587a9542a595e78e6523c8fbb0
] 
[remove bash shell_harness
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081113194438
 Ignore-this: 3621d4992e6cf5fbe8a1a8e1340a64a0
] 
[on "make darcs-snapshot" make a copy of the executable in a directory named "snapshots" and named with its version number including patch count
zooko at zooko.com**20081113175008
 Ignore-this: 75ddfaf921e1e84ddf86cd1fef8cb77e
] 
[replace `test -e' in makefile with either `test -d' or `test -f'
Karel Gardas <kgardas at objectsecurity.com>**20081113173715
 Ignore-this: 1ba6cf3262142b0d09f84570aab9b16a
 This patch replaces usage of `test -e' in makefile with either usage
 of `test -d' for testing directory of `test -f' for testing file. The
 reason is that GNU make is using /bin/sh for running its commands and
 `test -e' is not supported by Solaris' shell.
] 
[Update darcs.cabal to reflect removal of homegrown filepath modules
Eric Kow <kowey at darcs.net>**20081112162303
 Ignore-this: 90192f5d97a18402fe43cb6f951755dd
] 
[Generalise use of --optghc to all GHCFLAGS for haddock
Eric Kow <kowey at darcs.net>**20081112162233
 Ignore-this: b6bf56c82079b4e722f2faa53dccb9d2
 This makes it possible for me to make api-doc with GHC 6.10
] 
[Remove deprecated (and now unused) homegrown filepath modules
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112154607
 Ignore-this: 61d94b19c737251607d57e91b5b4a8d7
] 
[Replace homegrown code with filepath functions in Darcs.Commands.Dist
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081113171047
 Ignore-this: 673e6775d0c90b880478e1b0f2ef11e3
] 
[Remove homegrown code with filepath equivalents in Darcs.Commands.Mv
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112154541
 Ignore-this: 57950f6ca7c396753fe8f13f05c3ecf2
] 
[Replace homegrown code with filepath equivalents in Darcs.Commands.Add
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112153944
 Ignore-this: ee2e76b00e9683c6ffddb149648ae0af
] 
[Specifically import System.FilePath.Posix in darcs commands
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112153509
 Ignore-this: 2a024c22ad2122fe5354b2982821273b
 We want to document the fact that we are only using forward
 slashes.
] 
[Replace FilePathUtils.(///) with filepath equivalent in Darcs.Diff
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112153114
 Ignore-this: 59798326958df9e1c89864a35cd8ab5f
] 
[Copy UglyFileName.patch_filename into Darcs.Commands.Send
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112150818
 Ignore-this: 36db426613ee907dad21996b1ab38c55
 (which is the only place where it is used)
] 
[Replace UglyFileName with filepath equivalents in Darcs.CommandsAux
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112150646
 Ignore-this: 79ef4a080cf711300b7953a8901cae98
] 
[Replace our breakup with filepath's splitDirectories in Darcs.Lock
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081112150313
 Ignore-this: 3b460204007863fe65a71dccac701bed
] 
[make finds more portable
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081113125703
 Ignore-this: 6f1b6ac29c96d200b93cad86013f5062
 
 This patch changes the way find -exec is used before. OpenBSD does
 not support the -exec rm -f {} + syntax. So we stick to the less
 performant -exec rm -f {} \;
 
] 
[Replace liftM with fmap in Darcs.Repository.Prefs
Eric Kow <kowey at darcs.net>**20081112202148
 Ignore-this: aa04437e8d10cf9f26c6a760fedbaff6
] 
[Tidy up type signatures in Darcs.Repository.Prefs
Eric Kow <kowey at darcs.net>**20081112202001
 Ignore-this: 52b1925994627ce27b982fec4deefbc
] 
[Tidy up global_cache_dir
Eric Kow <kowey at darcs.net>**20081112201354
 Ignore-this: f06c8f86c96eda4fe600c6731553b28b
] 
[Resolve conflict between my UserProfile override and DARCS_TESTING_HOME
Eric Kow <kowey at darcs.net>**20081112200457
 Ignore-this: bceb8957061cea385cb8b4bbb7eec49e
 We undo the UserProfile because it had no useful effect
] 
[Enable .darcs location override through DARCS_TESTING_HOME that also works on Windows.
Petr Rockai <me at mornfall.net>**20081111222806
 
 With only overriding $HOME, on win32 we get darcs still looking into the
 windows-specific user data directory for .darcs, which in turn breaks the
 testsuite (which relies on overriding HOME). This patch should address that
 problem, albeit in a little inelegant fashion.
] 
[Override UserProfile environment variable in (Perl) shell_harness
Eric Kow <kowey at darcs.net>**20081112171634
 Ignore-this: 36fcf89e63d690a662288f34432c472b
] 
[Replace UglyFileName with filepath equivalents in Darcs.RepoPath
Eric Kow <eric.kow at gmail.com>**20081028141522
 Ignore-this: c685595782a0eb01e7b7c37da991e7b9
] 
[Replace FilePathUtils.(///) with filepath equivalent in preproc
Eric Kow <eric.kow at gmail.com>**20081027173947
 Ignore-this: 99a21202f798d6423d047afe4b417403
] 
[Specify that we want System.FilePath.Posix in Darcs.External
Eric Kow <eric.kow at gmail.com>**20081027172514
 Ignore-this: 8548e7e86f2c5dff1ddf0806e48bda15
 to prevent the accidental creation of patches with backslashes
 in their paths.
] 
[Replace UglyFileName normalisation in Darcs.External
Eric Kow <eric.kow at gmail.com>**20081027170454
 Ignore-this: 53c57c63eead2574dcf3e211b376fd7f
 with System.FilePath equivalent
] 
[Replace basename with filepath's takeDirectory in Darcs.External.
Eric Kow <eric.kow at gmail.com>**20081027165405
 Ignore-this: 2a3eec675e9f63cc0549317564bfee54
 Note that basename was a misnomer in the original code.
] 
[Replace (++ "/" ++) with filepath's (</>) in Darcs.External.cloneTree
Eric Kow <eric.kow at gmail.com>**20081027165044
 Ignore-this: 2c820b01f52de3544dd05f87e88dbc50
] 
[Replace absolute_dir with ioAbsoluteOrRemote in Darcs.Repository
Eric Kow <eric.kow at gmail.com>**20081027155955
 Ignore-this: 8f745c354308ca9406dbb2e54f66b600
 only very superficially though
] 
[Switch from absolute_dir to ioAbsoluteOrRemote in commands
Eric Kow <eric.kow at gmail.com>**20081027142933
 Ignore-this: 79e892ea2f0732367b8d293b550946e9
 Note that this is only a superficial change, but it brings
 us one step closer to getting rid of FilePathUtils.
] 
[Add an AbsoluteOrRemotePath type
Eric Kow <eric.kow at gmail.com>**20081024170048
 Ignore-this: 8b2ec1303eea170b88f2c8081efd1315
] 
[Trivial style improvement
Duncan Coutts <duncan at haskell.org>**20081112133456] 
[Fix compile failure in gzReadFilePS without HAVE_OLD_BYTESTRING
Duncan Coutts <duncan at haskell.org>**20081112131210
 The previous #ifdef HAVE_OLD_BYTESTRING changes made it work for
 ghc-6.6 but fail for ghc-6.8+. This should work both ways round.
] 
[Isolate overriding-defaults.sh failures to that test.
Petr Rockai <me at mornfall.net>**20081111222759
 
 When this test previously failed, it left broken .darcs/defaults around. We
 trap exits now and fixup the broken file.
] 
[Fix shell_harness so it uses --ignore-times
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081112105646
 Ignore-this: 4b07a9727f723ad917ec6145728c21e2
] 
[Silence haskell_policy complaining about Setup.lhs.
Petr Rockai <me at mornfall.net>**20081111222951] 
[Allow "cabal test tests network bugs" as suggested by Trent.
Petr Rockai <me at mornfall.net>**20081111110411] 
[Include the testsuite in Cabal sdist.
Petr Rockai <me at mornfall.net>**20081111095747] 
[Fixes to the release/distributed-* file generation in Cabal sDistHook.
Petr Rockai <me at mornfall.net>**20081111095332] 
[Bundle the version/context data (produced by Setup.lhs sdist) in the tarball.
Petr Rockai <me at mornfall.net>**20081111093452] 
[Update Cabal file lists to match reality.
Petr Rockai <me at mornfall.net>**20081111093426] 
[Bundle version and context data in Cabal source distribution.
Petr Rockai <me at mornfall.net>**20081111093342] 
[Implement runTests hook for Cabal.
Petr Rockai <me at mornfall.net>**20081111082551
 
 This makes it possible to run "cabal test", "cabal test bugs" and "cabal test
 network". It has some Ctrl+C issues which probably relate to naive use of
 "system" to run programs.
] 
[Darcs works with regex-compat 0.91.
Trent W. Buck <trentbuck at gmail.com>**20081111023911
 Debian has been using this version for some time.
] 
[Refactor DARCS_FILES to work around Solaris' buggy find(1).
Trent W. Buck <trentbuck at gmail.com>**20081112010502
 Sorry this is so ugly; at least it's still much shorter than the
 whitelist that existed before I started refactoring the makefile.
] 
[Remove silly sort.
Trent W. Buck <trentbuck at gmail.com>**20081107023723
 If .depend is doing its job, this list shouldn't need to be sorted,
 and in any case $^ (but not $+) implicitly sorts and uniquifies.
] 
[Fix filepath test
Eric Kow <kowey at darcs.net>**20081111210909
 Ignore-this: 5d3e1f532ce652620b964a9e693a82e5
] 
[Fix get test (it was assuming a clean directory)
Eric Kow <kowey at darcs.net>**20081111210615
 Ignore-this: f73f5529f1f14d257ec3009492411444
 Also make it clean up after itself and use more standard temp names.
] 
[Resolve issue1223: Fix broken init.sh test
Eric Kow <kowey at darcs.net>**20081111205233
 Ignore-this: 6c619ab1614abe13d7eb15b320211733
] 
[Fix regression in configure test for zlib.
Eric Kow <kowey at darcs.net>**20081111171554
 Ignore-this: df51bbbe12ebaf20d66e193f6960548f
 I had replaced an
   if test foo -a bar = baz
 with
   if bar = baz
] 
[Use conditional compilation for Salvatore's strict readFile fix
Eric Kow <kowey at darcs.net>**20081111145114
 Ignore-this: bf4e3159d1bdd2cadbb7b007c64f5e6d
] 
[Fix gzReadFilePS to close file descriptor even on old bytestrings.
Salvatore Insalaco <kirby81 at gmail.com>**20081108084939
 BL.readFile is not strict enough, and it actually leaves the file descriptor opened. This should not happen, and probably it's a bug with older bytestrings (the one shipped with ghc 6.8.x).
 This causes issues on Windows, where an opened file cannot be deleted.
 Using strict bytestring readFile, and then converting them to lazy bytestring (should be O(1)) fix the problem.
] 
[Add configure check for bytestring 0.9.1
Eric Kow <kowey at darcs.net>**20081111115319
 Ignore-this: f25fef6236879a1a2ad0ab44e337faee
 This introduces a HAVE_OLD_BYTESTRING flag
] 
[Simplify bytestring check.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081111115258
 Ignore-this: 58feb27fd83415b6b539bd4a2ebd7216
 Either base-2.0 (which includes Data.ByteString) or the bytestring package
 are now required.
] 
[resolve issue844: don't call gzwrite with zero length.
David Roundy <droundy at darcs.net>**20081111145122
 Ignore-this: ac80c1db0fad3279ccee3b7b5f1f87ea
] 
[Avoid exporting cleanupRepositoryReplay.
Petr Rockai <me at mornfall.net>**20081111100548
 
 We instead let replayRepository take the post-replay action as a parameter and
 clean up automatically when it's done. Looks like a safer API to me.
] 
[Remove literacy stub from Darcs.Patch.Choices.
Trent W. Buck <trentbuck at gmail.com>**20081109110636] 
[Remove literacy stub from Darcs.Patch.Info.
Trent W. Buck <trentbuck at gmail.com>**20081109110434] 
[Remove literacy stub from Darcs.Patch.Read.
Trent W. Buck <trentbuck at gmail.com>**20081109110254] 
[Remove literacy stub from Darcs.Patch.Test.
Trent W. Buck <trentbuck at gmail.com>**20081109110103] 
[Remove literacy stub from Darcs.Patch.Real.
Trent W. Buck <trentbuck at gmail.com>**20081109105434] 
[Remove literacy stub from Darcs.Patch.Non.
Trent W. Buck <trentbuck at gmail.com>**20081109105400] 
[Remove literacy stub from Darcs.Patch.Depends.
Trent W. Buck <trentbuck at gmail.com>**20081109105308] 
[Remove literacy stub from Darcs.Patch.Check.
Trent W. Buck <trentbuck at gmail.com>**20081109105222] 
[Remove literacy stub from Darcs.Patch.Viewing.
Trent W. Buck <trentbuck at gmail.com>**20081109104757] 
[Remove literacy stub from Darcs.Patch.Unit.
Trent W. Buck <trentbuck at gmail.com>**20081109104720] 
[Remove literacy stub from Darcs.Patch.QuickCheck.
Trent W. Buck <trentbuck at gmail.com>**20081109104633] 
[Remove literacy stub from Darcs.Patch.Permutations.
Trent W. Buck <trentbuck at gmail.com>**20081109104610] 
[Remove literacy stub from Darcs.Patch.Patchy.
Trent W. Buck <trentbuck at gmail.com>**20081109104516] 
[Remove literacy stub from Darcs.Patch.Bundle.
Trent W. Buck <trentbuck at gmail.com>**20081109104403] 
[Remove literacy stub from Darcs.Patch.FileName.
Trent W. Buck <trentbuck at gmail.com>**20081109103658] 
[Remove literacy stub from Darcs.Patch.Set.
Trent W. Buck <trentbuck at gmail.com>**20081109102952] 
[Remove literacy stub from Darcs.Patch.MatchData.
Trent W. Buck <trentbuck at gmail.com>**20081109102546] 
[Remove literacy stub from Darcs.Repository.HashedRepo.
Trent W. Buck <trentbuck at gmail.com>**20081109105612
 The deleted comments here are duplicated elsewhere.
] 
[Remove literacy stub from Darcs.Repository.Pristine.
Trent W. Buck <trentbuck at gmail.com>**20081109105012] 
[Remove literacy stub from Darcs.Repository.HashedIO.
Trent W. Buck <trentbuck at gmail.com>**20081109104947] 
[Remove literacy stub from Darcs.Repository.Cache.
Trent W. Buck <trentbuck at gmail.com>**20081109104933] 
[Remove literacy stub from Darcs.Repository.
Trent W. Buck <trentbuck at gmail.com>**20081109104840] 
[Remove literacy stub from Darcs.Repository.Format.
Trent W. Buck <trentbuck at gmail.com>**20081109103758] 
[Remove literacy stub from Darcs.Repository.ApplyPatches.
Trent W. Buck <trentbuck at gmail.com>**20081109102829] 
[Remove literacy stub from Darcs.Repository.InternalTypes.
Trent W. Buck <trentbuck at gmail.com>**20081109102801] 
[Remove literacy stub from Darcs.Repository.Checkpoint.
Trent W. Buck <trentbuck at gmail.com>**20081109102321] 
[Make --match 'date "after year"' work into the future.
Petr Rockai <me at mornfall.net>**20081109211305] 
[Add a test for matching 'date "after year"' working for future patches.
Petr Rockai <me at mornfall.net>**20081109203045] 
[Remove franchise build file and test scripts.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081110153528
 Ignore-this: 85d1b68798815121f5b2ed24d54fc9eb
 David feels that having more than one build system is a bad idea.
] 
[Restore configure check for QuickCheck 2.1
Eric Kow <kowey at darcs.net>**20081110152808
 Ignore-this: 470ec554bb115c783fb105b29ae3bd44
] 
[Fix Repair.applyAndFix.
Petr Rockai <me at mornfall.net>**20081106101557
 
 The way I have got the recursion versus syncing slurpies backwards is actually
 pretty embarassing.  We also use syncSlurpy to avoid unneccessary (likely slow)
 syncs while keeping memory use at bay. This fix should make repair and check
 run much faster in much less memory.
] 
[Resolve conflicts between darcs repair and literacy removal patches
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081110152620
 Ignore-this: d7f097d054a22db40ac135551da48da1
] 
[Introduce syncSlurpy, that syncs slurpy to disk as needed.
Petr Rockai <me at mornfall.net>**20081106102101
 
 syncSlurpy takes an IO action that does the actual syncing, but only calls it
 when neccessary to prevent memory blowups. It is fairly cheap to call often
 (ie. after every applied patch). The sync threshold is currently hardcoded to
 ~100M.
] 
[Move Cabal based build to repository root
Eric Kow <eric.kow at gmail.com>**20081109112502
 Note that we use the Setup.lhs extension because the franchise based
 build uses Setup.hs and we want to avoid introducing a spurious
 dependency on the franchise patches.
] 
[Remove makefile instructions to test franchise build
Eric Kow <eric.kow at gmail.com>**20081108001051] 
[Remove now superfluous darcs.cabal.in
Eric Kow <eric.kow at gmail.com>**20081108000445] 
[Refactor Repository.Repair.replayRepository to get rid of CanRepair.
Petr Rockai <me at mornfall.net>**20081105234638
 
 We now instead return the new (repaired) patchset that needs to be written out
 to the caller, and let them handle it.
] 
[Remove literacy stub from Darcs.SlurpDirectory.Internal.
Trent W. Buck <trentbuck at gmail.com>**20081109105853] 
[Remove literacy stub from Darcs.SelectChanges.
Trent W. Buck <trentbuck at gmail.com>**20081109105159] 
[Remove literacy stub from Darcs.Ordered.
Trent W. Buck <trentbuck at gmail.com>**20081109104306] 
[Remove literacy stub from Darcs.SignalHandler.
Trent W. Buck <trentbuck at gmail.com>**20081109103602] 
[Remove literacy stub from Darcs.Sealed.
Trent W. Buck <trentbuck at gmail.com>**20081109103520] 
[Remove literacy stub from Darcs.TheCommands.
Trent W. Buck <trentbuck at gmail.com>**20081109103449] 
[Remove literacy stub from Darcs.TouchesFiles.
Trent W. Buck <trentbuck at gmail.com>**20081109103419] 
[Remove literacy stub from Darcs.RemoteApply.
Trent W. Buck <trentbuck at gmail.com>**20081109103301] 
[Remove literacy stub from Darcs.PrintPatch.
Trent W. Buck <trentbuck at gmail.com>**20081109103028] 
[Remove literacy stub from Darcs.Show.
Trent W. Buck <trentbuck at gmail.com>**20081109102720] 
[Remove literacy stub from Darcs.SlurpDirectory.
Trent W. Buck <trentbuck at gmail.com>**20081109102637] 
[Work around grep -Fw platform differences in haskell_policy.sh
Thorkil Naur <naur at post11.tele.dk>**20081110013603
 Experiments have demonstrated that grep -Fw behaviour depends on the platform,
 even for the same grep --version. This patch removes the F flag which, in the
 present context, seems unnecessary. Removing the F flag appears to iron out the platform
 differences.
] 
[shell_harness script in haskell
Christian Kellermann <Christian.Kellermann at nefkom.net>**20081107121607
 Ignore-this: 46d1138c233788cb00b71071e5f9b8ff
] 
[Avoid test issue1017_whatsnew_stack.sh looping under buildbot control
Thorkil Naur <naur at post11.tele.dk>**20081109122052
 The replaced "yes | head -n count" mechanism for generating a large file loops when
 run via Python under Mac OS X. This, apparently, makes the test loop when run by the Mac OS X buildbot
 slaves. The replacement mechanism is not nearly as elegant as I would like, so better suggestions are
 welcome.
] 
[Remove literacy stub from CommandLine.
Trent W. Buck <trentbuck at gmail.com>**20081109102016] 
[Remove literacy stub from Darcs.Hopefully.
Trent W. Buck <trentbuck at gmail.com>**20081109101604] 
[Remove literacy stub from Darcs.Global.
Trent W. Buck <trentbuck at gmail.com>**20081109101536] 
[Remove literacy stub from Darcs.CheckFileSystem.
Trent W. Buck <trentbuck at gmail.com>**20081109101331] 
[Remove literacy stub from Darcs.Bug.
Trent W. Buck <trentbuck at gmail.com>**20081109101257] 
[Remove literacy stub from Darcs.IO.
Trent W. Buck <trentbuck at gmail.com>**20081109101235] 
[Remove literacy stub from Darcs.Flags.
Trent W. Buck <trentbuck at gmail.com>**20081109100625] 
[Haddockize Darcs.Lock.
Trent W. Buck <trentbuck at gmail.com>**20081109111134] 
[Fix haddock bugs in ByteStringUtils
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081109012226] 
[Reformat Darcs.URL comments as haddock.
Eric Kow <eric.kow at gmail.com>**20081023233730] 
[Resolve conflicts (lstat vs de-literate)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081109153040
 Ignore-this: 39ae84ed11bd9fe823fcc5cd8596674a
 The conflits were between Reinier's lstat-saving patches on the one
 hand and the Diff haddockisation on the other.
] 
[hopefully less buggy version of get_unrecorded_in_files
Reinier Lamers <tux_rocker at reinier.de>**20081031215944
 Ignore-this: 9f4f2320a1784cf6f7546ab23eb6bf61
] 
[make whatsnew use the lstat-saving functions to scan the working copy
tux_rocker at reinier.de**20081026194636
 Ignore-this: 54b7a07b7b1d49b3d20050bc905db665
] 
[make get_unrecorded_private work with type witnesses again
tux_rocker at reinier.de**20081026190612
 Ignore-this: 97418e6487ef9c9508473d4c65f295ca
] 
[add a get_unrecorded_in_files to check for unrecorded changes in a subset of working directory
tux_rocker at reinier.de**20081026164009
 Ignore-this: 7d36ff983e8745049101a92f5b2326fb
] 
[Keep OS X happy by passing a path to find(1).
Trent W. Buck <trentbuck at gmail.com>**20081109113440] 
[Remove tabs in franchise build.
Eric Kow <kowey at darcs.net>**20081109005653
 Ignore-this: c5f57b86fa6bfd5f5f006dd0923d631
] 
[Move issue1017 test back into tests
Eric Kow <kowey at darcs.net>**20081109005826
 Ignore-this: 8b4f4f4673e6a07405a4c279385c373c
 It was not consistently failing, and we still don't know why
 it failed the last time.
 rolling back:
 Fri Nov  7 13:11:17 GMT 2008  Eric Kow <kowey at darcs.net>
   * Move issue1017 test back to bugs.
] 
[make unrecord work with type witnesses.
David Roundy <droundy at darcs.net>**20081107123400
 Ignore-this: 183ca39f8ec9af923468ecc243cba26
] 
[add franchise target for type witness testing.
David Roundy <droundy at darcs.net>**20081107123051
 Ignore-this: 5df886520744de6d11992e9e6b3f9758
] 
[cut dead code from Unrecord.
David Roundy <droundy at darcs.net>**20081103021520
 Ignore-this: 847fdfc20ab9a65a9d3527590fe51f3b
] 
[be more verbose when type witnesses are enabled in franchise.
David Roundy <droundy at darcs.net>**20081103014635
 Ignore-this: d417d1b1aafbbedd5f9b6d1e4dbb25a2
] 
[enable type witnesses for show commands.
David Roundy <droundy at darcs.net>**20081103014338
 Ignore-this: 5c538bb49432f16bc8dc03140d17cb1d
] 
[Fix cabal file for lhs -> hs transition.
Salvatore Insalaco <kirby81 at gmail.com>**20081108080448] 
[Add issue1189 fix suggested by Duncan to Cabal build
Eric Kow <eric.kow at gmail.com>**20081108000200] 
[Haddockize Lcs.
Trent W. Buck <trentbuck at gmail.com>**20081108082950] 
[Extend zlib franchise test to look for zlib 0.5.0.0
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081102141525
 Ignore-this: 1cf8e14867b91c05b34d978980d9188a
] 
[switch to zlib 0.5.0.0 with new interface for specifying decompressed size
Ganesh Sittampalam <ganesh at earth.li>**20081026102650] 
[Move issue1017 test back to bugs.
Eric Kow <kowey at darcs.net>**20081107131117
 Ignore-this: 9e19d7392378f4d5e8d029b15e6f962d
 One of our Mac buildbots owners reports that their buildbot
 was taking forever to run.  It seemed to be hanging on this
 step.
] 
[Remove dangling .lhs references.
Trent W. Buck <trentbuck at gmail.com>**20081107024222
 Sorry about this, folks; it seems my conflict merging had a few bugs.
] 
[Add comment to test pref
Eric Kow <kowey at darcs.net>**20081106161155
 Ignore-this: 634b224e4338a1ff0abc47a6903220be
] 
[Fix typo in documentation
Eric Kow <kowey at darcs.net>**20081106153606
 Ignore-this: b52ecbb2fb3aa432c04a9abb6086239
] 
[resolve issue1189: define HAVE_SIGNALS in franchise build.
David Roundy <droundy at darcs.net>**20081106130431
 Ignore-this: db3217e4ba459bb32d489b744227f5b8
 Incidentally, ctrl-C handling seems also to be broken on the non-Windows
 cabal build in release/, but I can't see how to fix it.  Or maybe
 HAVE_SIGNALS is defined using some Deep Magic?
] 
[Use make -j4 to run disttest.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081106114326
 Ignore-this: 5818b80001e1ce589057b6adc61c4973
 Trent had done some Makefile cleanups to eliminate the naughty practice
 of calling $(MAKE) -j4 within make.  This patch restores the parallel
 builds (which makes tests run faster) without the naughtiness.
] 
[Change "Repairing patch" to "Replaying patch" as progress report in replayRepository.
Petr Rockai <me at mornfall.net>**20081105224132] 
[Tweak issue1012 test to use temp1 as tempdir name
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081106112750
 Ignore-this: e2d0263a3652f01a6e202deeaef19408
] 
[Clean up after previous tests in issue1017 test
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081106112723
 Ignore-this: 9e6c6f1f3f617cfb9ec93666ee13c51d
] 
[Refactor test_network target.
Trent W. Buck <trentbuck at gmail.com>**20081106013245] 
[Let DARCS_FILES and UNIT_FILES cope with .lhs/.hs renames.
Trent W. Buck <trentbuck at gmail.com>**20081106094142
 
 I'm sorry this makes UNIT_FILES so ugly.
 
 The big advantage of this is that it lets me rename .lhs files without
 editing the GNUmakefile in the same patch -- thereby avoiding some
 icky conflictors.
] 
[clean up .lhs versions of ThisVersion and Autoconf to make transition easier
Ganesh Sittampalam <ganesh at earth.li>**20081105090209
 Ignore-this: e8448d3962aeb832fc8fcdc0da8f9e32
] 
[resolve issue864: check non-force replace against pending
Tommy Pettersson <ptp at lysator.liu.se>**20081004235719
 The replace was checked against pure pristine, so the answer to if it could
 be applied to pending without force was sometimes wrong.
] 
[Avoid using pkgconfig-depends for libcurl (cabal)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081103150412
 Ignore-this: 681d35599ab44961a2164ca54b4d5617
 
 This is a workaround to a Cabal library bug in "which ldOptions are
 passed directly to ghc without any escaping" whereas "they should be
 escaped with the -optl prefix"
 http://hackage.haskell.org/trac/hackage/ticket/389
] 
[change tabs to spaces in cabal's Setup.hs
Jason Dagit <dagit at codersbase.com>**20081028032910] 
[Use exceptions again in cabal Setup.hs
Duncan Coutts <duncan at haskell.org>**20081027043635
 Needed to handle calling darcs when it's not available.
 Uses CPP to make it work with ghc-6.8 and 6.10
] 
[Make building with HTTP package work via cabal
Duncan Coutts <duncan at haskell.org>**20081027034031] 
[Add the location of the darcs repo to the cabal file
Duncan Coutts <duncan at haskell.org>**20081027004425
 Cabal-1.6 allows this meta-data to be given in the .cabal file
 and in a machine readable format.
] 
[Update cabal file for renamed ByteStringUtils module
Duncan Coutts <duncan at haskell.org>**20081027003824] 
[When not using external zlib binding require z C lib (in cabal file)
Duncan Coutts <duncan at haskell.org>**20081027003414
 It was working before but probably only because some other C lib
 needed zlib, probably curl. This is more correct.
] 
[Add the other modules and extra src files to the cabal file
Duncan Coutts <duncan at haskell.org>**20081027003315
 Needed for cabal sdist to work.
] 
[Support building with libwww via Cabal
Duncan Coutts <duncan at haskell.org>**20081026232738] 
[Update darcs.cabal for HAVE_SIGINFO_H
Duncan Coutts <duncan at haskell.org>**20081026232647] 
[Make Setup.hs work with ghc-6.8 and 6.10 by not using exceptions
Duncan Coutts <duncan at haskell.org>**20081026202912
 The exceptions api changed between 6.8 and 6.10.
] 
[Add cabal support files under release/ directory
Duncan Coutts <duncan at haskell.org>**20081026195706] 
[Add all required language extensions to .cabal.in file
Don Stewart <dons at galois.com>**20081025225427] 
[issue 1017 now fixed
Ganesh Sittampalam <ganesh at earth.li>**20081025122754] 
[Restore 'pass/fail' output in shell_harness.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081105093446
 Ignore-this: 93d9a4fba1f83b79a5b7b63c87e0e955
 
 rolling back accidentally applied patch:
 
 Fri Oct 24 06:57:55 BST 2008  Trent W. Buck <trentbuck at gmail.com>
   * Colour test output in Emacs' M-x compile.
] 
[Refactor away boilerplate in naughty ./configure-circumventing profile targets.
Trent W. Buck <trentbuck at gmail.com>**20081105052235] 
[Resolve conflicts.
Trent W. Buck <trentbuck at gmail.com>**20081105014527
 
 Mostly conflicts were between Trent's make refactoring and Kowey's
 copy-and-paste job to add support for building profiled object files
 and executables in parallel to the non-profiled build.
] 
[Typo: make distclean and maintainer-clean rules cumulative.
Trent W. Buck <trentbuck at gmail.com>**20081104235641] 
[Refactor TAGS targets.
Trent W. Buck <trentbuck at gmail.com>**20081104132834
 
 Renamed targets to match default output files, obviating PHONY.
 Removed the ugly manual sorting, as exuberant ctags sorts by default.
 Moved cleanup into distclean.
 Added C inputs to dependency list.
 Avoid abusing $ETAGS and $CTAGS for hasktags.
] 
[autoconf.mk doesn't depend on darcs.cgi.in.
Trent W. Buck <trentbuck at gmail.com>**20081104130338
 
 The old version was saying things "autoconf.mk depends on
 darcs.cgi.in", which isn't quite right.  The replacement is shorter
 and more correct.
] 
[Delete unused "register" target.
Trent W. Buck <trentbuck at gmail.com>**20081104124530] 
[Move cleanup rules to appropriate target (clean/distclean).
Trent W. Buck <trentbuck at gmail.com>**20081104124116] 
[Resolve conflicts.
Trent W. Buck <trentbuck at gmail.com>**20081104123359] 
[Merge autoconf.mk and .depend inclusion.
Trent W. Buck <trentbuck at gmail.com>**20081102045359
 
 In a declarative expert system like Make, it shouldn't matter where
 .depend is included.  Actual experiments suggest that it does, and
 putting it at the top will help avoid illogical behaviour.
 
 It also reduces the makefile's length by several lines.
] 
[Make .hs.in of trivial .lhs.in files.
Trent W. Buck <trentbuck at gmail.com>**20081029025407] 
[Make .hs of trivial .lhs files.
Trent W. Buck <trentbuck at gmail.com>**20081029025326] 
[Split darcs.lhs into darcs.tex and darcs.hs.
Trent W. Buck <trentbuck at gmail.com>**20081026063231
 After all, the Main module and main function don't really have
 anything to do with the introductory chapters of the user manual.
 
 I used these commands and then some touch-ups:
 
 $ sed '/\\begin{code}/,/\\end{code}/d' src/darcs.lhs >src/darcs.tex
 $ darcs mv src/darcs.lhs src/darcs.hs
 $ sed --in-place '/\\end{code}/,/\\begin{code}/d' src/darcs.hs
] 
[Only .lhs (not .hs) files could possibly be TeX sources.
Trent W. Buck <trentbuck at gmail.com>**20081025141537] 
[Typo: remove silly circular dependency.
Trent W. Buck <trentbuck at gmail.com>**20081025121957] 
[Don't warn unless ALL alternatives are missing.
Trent W. Buck <trentbuck at gmail.com>**20081025120102] 
[If installed, use rubber(1) to quieten TeX.
Trent W. Buck <trentbuck at gmail.com>**20081025113643] 
[Typo.
Trent W. Buck <trentbuck at gmail.com>**20081025113607] 
[Turn procedural assignments (:=) into declarations (=).
Trent W. Buck <trentbuck at gmail.com>**20081025100744] 
[Refactor .hi rule.
Trent W. Buck <trentbuck at gmail.com>**20081025100732] 
[Refactor install rules.
Trent W. Buck <trentbuck at gmail.com>**20081025100527
 
 Importantly, this means that if you just do "make" it will either
 build PDF or PS, but not both (with a preference for PDF).
 
 The "installbin" target has been renamed to "install", since 1) that's
 the convention, and 2) it was already installing non-binary stuff,
 namely the bash completion and manpage.
 
 Leverages concatenative rules (::) to reduce repetition.
] 
[Refactor targets that prevent "include autoconf.mk" (and .depend).
Trent W. Buck <trentbuck at gmail.com>**20081025012208
 As well as being clearer, this is now a good deal more liberal. For
 example, it won't rebuild .depend during "make maintainer-clean".
] 
[Generate TEXSOURCES programmatically.
Trent W. Buck <trentbuck at gmail.com>**20081025011935] 
[Generate DARCS_FILES by blacklist, not whitelist.
Trent W. Buck <trentbuck at gmail.com>**20081025010803
 This attempt is far from perfect, but at least it works.
] 
[Use $@ and $* to shrink test_harness.
Trent W. Buck <trentbuck at gmail.com>**20081024085740
 
 Note that I have also removed the use of @ to hide what make is doing.
 
 It is better to use "make --silent" to hide such noise, because then I
 can debug problems in the makefile by running *without* --silent,
 rather than having to temporarily remove the @'s.
] 
[Refactor test rules.
Trent W. Buck <trentbuck at gmail.com>**20081024034429
 Now the target names correspond to the darcs switches, e.g. "make
 test-darcs-2" instead of "make test-format2".  There are some legacy
 pointers so the old targets still work, but they probably put the
 results in a different directory.
] 
[Don't call GHC on autoconf.mk in .depend rule.
Trent W. Buck <trentbuck at gmail.com>**20081024031700
 I don't know why, but $^ included autoconf.mk.  I used $(filter) to
 remove it, and put all the deps on one line while I was at it.
] 
[Miscellaneous refactoring.
Trent W. Buck <trentbuck at gmail.com>**20081023050926] 
[Replace procedural := with declarative =.
Trent W. Buck <trentbuck at gmail.com>**20081023034044
 
 When you do "x = a b" in make, it doesn't get evaluated until you
 actually attempt to refer to $x in a rule, because make is an expert
 system.  The reason := exists is because if you do
 
     f = $(shell really-slow-command)
 
 and then try to build a bunch of object files, $f will cause
 really-slow-command to be run separately for each one.  Since we're
 just doing internal stuff like $(patsubst), we don't need := and using
 it makes it harder to reason about the system, because it's no longer
 declarative.
] 
[Obviate SRC_DIRS altogether.
Trent W. Buck <trentbuck at gmail.com>**20081023030139
 
 Note that find -delete would be better, but it is not standard:
 http://www.opengroup.org/onlinepubs/009695399/utilities/find.html
] 
[Ameliorative ChangeLog mode hint for Emacs.
Trent W. Buck <trentbuck at gmail.com>**20081104125751
 
 This patch makes Emacs use outline (hierarchical) mode, and to
 recognize "darcs (N)" as a first-level heading and " * foo" as a
 third-level heading.  Treating the latter correctly, as second-level
 headings, is beyond my capabilities.
 
 I'd prefer that this file be moved to "NEWS" and formatted as outline-
 mode expects: each Nth-level heading starts with N stars and a space.
] 
[quickCheck tests  for QuickCheck 2.1
Florent Becker <florent.becker at ens-lyon.org>**20081006135708] 
[add yet another braindead file path to file path canonicalization test
Reinier Lamers <tux_rocker at reinier.de>**20081103222552
 Ignore-this: a2b2f6f8c47a14943dd99a6a1d0a5c7d
] 
[Add bug script for issue1196
Reinier Lamers <tux_rocker at reinier.de>**20081103222106
 Ignore-this: a91333382a944602881b388da4606eca
] 
[Fix "make bugs" target in makefile
Reinier Lamers <tux_rocker at reinier.de>**20081103221941
 Ignore-this: 541567455acb0308bbbcf8eb4fe4c83b
] 
[Try a bit harder to hack darcs pathname canonicalization in tests
Reinier Lamers <tux_rocker at reinier.de>**20081103211112
 Ignore-this: 3b419ed6b5c3b4d8529ca045d8c63548
] 
[Typo: install-pdf was trying to install *.ps.
Trent W. Buck <trentbuck at gmail.com>**20081025122922] 
[Typo.
Trent W. Buck <trentbuck at gmail.com>**20081025083214] 
[Add conventional install-ps/pdf/html targets.
Trent W. Buck <trentbuck at gmail.com>**20081024085052
 See info page (make)Standard Targets.
] 
[Use new "ps", "pdf" and "html" targets.
Trent W. Buck <trentbuck at gmail.com>**20081024084215] 
[Clean hspwd.
Trent W. Buck <trentbuck at gmail.com>**20081024081050] 
[Colour test output in Emacs' M-x compile.
Trent W. Buck <trentbuck at gmail.com>**20081024055755
 
 This change means doing M-x compile RET make test RET in an ordinary
 Emacs will highlight failed tests in red, and working tests in green.
 This makes it easier to spot problems.
 
 The down side is that yes/no is less clear than passed/failed.
] 
[Reduce loquacity of haddock targets.
Trent W. Buck <trentbuck at gmail.com>**20081023072048
 I think that if someone runs "make api-doc", it's not useful to
 immediately print
 
     echo "Generating html"
     Generating html
 
 Therefore I'm removing these lines.
] 
[Fix some predicates I accidentally reversed.
Trent W. Buck <trentbuck at gmail.com>**20081023072013] 
[release/debian is long gone.
Trent W. Buck <trentbuck at gmail.com>**20081023071427] 
[Make it obvious why deps are being filtered.
Trent W. Buck <trentbuck at gmail.com>**20081023070847] 
[Leverage gmake's order-only dependencies.
Trent W. Buck <trentbuck at gmail.com>**20081023051023] 
[-fregs-graph seems to be a problem on both ghc 6.6 and 6.10
Jason Dagit <dagit at codersbase.com>**20081028032741
 This flag doesn't seem to cause a problem on 6.8, but having
 does seem to cause a problem for 6.6 and 6.10.
] 
[Resolve conflict between make darcs_p and make continuous
Eric Kow <E.Y.Kow at brighton.ac.uk>**20081102122954
 Ignore-this: 385fc4a7bd4b617f1c073f97c860c6ad
] 
[restore -auto-all to profiling options
Ganesh Sittampalam <ganesh at earth.li>**20081026144023] 
[avoid .depend doubling in size on every make
Ganesh Sittampalam <ganesh at earth.li>**20081026141924
 Ignore-this: e106a7ba53738279ebb8293eeea16679
] 
[Also clean intermediate profiling files.
Eric Kow <eric.kow at gmail.com>**20081026145926] 
[Do not use -threaded when building darcs_p
Eric Kow <eric.kow at gmail.com>**20081026145415] 
[Clean up how darcs_p is built
Eric Kow <eric.kow at gmail.com>**20081026145406
 Treat GHCFLAGS_P as an alternative to GHCFLAGS, not an addition.
] 
[Rename DARCS_OBJS_P and GHCFLAGS_P
Eric Kow <eric.kow at gmail.com>**20081026145619
 from   DARCS_P_OBJS and GHC_PROF_FLAGS
] 
[Allow the profiling and non-profiling versions of darcs to co-exist
Eric Kow <eric.kow at gmail.com>**20081026135910
 by teaching the Makefile about the suffixes .p_hi and .p_o.
] 
[Add -fregs-graph to build instructions for SHA1.o
Eric Kow <eric.kow at gmail.com>**20081026133031
 This helps us avoid a GHC error when building the profiling version of darcs,
 namely: RegAllocLinear.getStackSlotFor: out of stack slots, try -fregs-graph
] 
[replace a hoogle workaround with a comment, we now index names beginning with _
Simon Michael <simon at joyful.com>**20081103165516
 Ignore-this: 537874d6183556322091ff063ba1015b
] 
[Make haddock aware of CommandLine module comment.
Trent W. Buck <trentbuck at gmail.com>**20081102011801] 
[Refactor QuickCheck 2 test.
Trent W. Buck <trentbuck at gmail.com>**20081103101155
 This makes the output resemble autoconf, so Emacs colours it by default.
 It also means the user gets information before the test starts.
 Lastly, it redirects the stderr of grep, as GNU grep's manpage recommends.
] 
[Use cute short form of $(dir) and $(notdir).
Trent W. Buck <trentbuck at gmail.com>**20081025113759] 
[Refactor dependency declaration for helper utils.
Trent W. Buck <trentbuck at gmail.com>**20081025011633
 The .hs/.lhs deps that "disappear" are still in autoconf.mk.in.
] 
[Turn descriptive commands into comments.
Trent W. Buck <trentbuck at gmail.com>**20081024032405
 I don't think there's any point in printing "I'm deleting information
 you can't recover" immediately before doing so, without offering an
 abort step.  Therefore, that message can just be an ordinary comment
 in the makefile.
] 
[Quieten removal of "Main" intermediaries.
Trent W. Buck <trentbuck at gmail.com>**20081023093107
 This matches the quietness in the "darcs" target in GNUmakefile.
] 
[Add conventional "pdf", "ps" and "html" targets.
Trent W. Buck <trentbuck at gmail.com>**20081023070550
 See info page (make)Standard Targets.
] 
[Don't override MAKEFLAGS's -j.
Trent W. Buck <trentbuck at gmail.com>**20081023065134
 
 Make does hairy things within $MAKEFLAGS (which is included in $MAKE)
 to ensure that -j does the right thing in the presence of nested
 makes.  Overriding this with $(MAKE) -j4 is almost certainly naughty.
 Instead, you should do "make -j4 disttest" or implicitly, with
 "MAKEFLAGS=j4 darcs record --test".
] 
[Use ANNOUNCE_GHC convention for darcs.
Trent W. Buck <trentbuck at gmail.com>**20081024085359] 
[Conventionalize make rule for hspwd.
Trent W. Buck <trentbuck at gmail.com>**20081024033900] 
[Reduce disttest noise for teetotalers.
Trent W. Buck <trentbuck at gmail.com>**20081103094530
 
 Without wine installed, "make disttest" was printing nine copies of:
 
     /bin/sh: wine: not found
     test: 1: =: argument expected
 
 This DOES NOT fix the case where wine is installed, but GHC is not
 available from wine:
 
     wine runghc Setup.hs configure
     wine: could not load L"C:\\windows\\system32\\runghc.exe": Module not found
     make: *** [disttest] Error 126
] 
[resolve conflict in makefile.
David Roundy <droundy at darcs.net>**20081103002009
 Ignore-this: 3677a2bad189f858b1ac06e56b9e4c2f
] 
[fixup SRC_DIRS
Ganesh Sittampalam <ganesh at earth.li>**20081029190715] 
[a slight simplification
Ganesh Sittampalam <ganesh at earth.li>**20081028185358] 
[clarify SlurpDirectory interface
Ganesh Sittampalam <ganesh at earth.li>**20081028072911] 
[cleanup some patterns
Ganesh Sittampalam <ganesh at earth.li>**20081028065424] 
[simplify slurp_has_anycase
Ganesh Sittampalam <ganesh at earth.li>**20081026200442] 
[another obvious use of the SlurpyMap
Ganesh Sittampalam <ganesh at earth.li>**20081026192715] 
[bug fix
Ganesh Sittampalam <ganesh at earth.li>**20081026185518] 
[make use of the SlurpyDir Map in the obvious places
Ganesh Sittampalam <ganesh at earth.li>**20081026153749] 
[dumb changeover of SlurpDir contents from [] to Map
Ganesh Sittampalam <ganesh at earth.li>**20081026135906] 
[refactor Slurpy to common up name component between File/Dir
Ganesh Sittampalam <ganesh at earth.li>**20081026123722] 
[TAG stable 2008-11-17 (with 2.1.2)
Eric Kow <kowey at darcs.net>**20081117104434] 
Patch bundle hash:
3f10ca0940149eed7f62b1df659e344948b39107
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 304 bytes
Desc: not available
Url : http://lists.osuosl.org/pipermail/darcs-users/attachments/20090105/982ca505/attachment-0001.pgp 


More information about the darcs-users mailing list