[prev in list] [next in list] [prev in thread] [next in thread] 

List:       darcs-devel
Subject:    [darcs-devel] [patch2100] proposed for new bugfix release 2.16.3
From:       Ben Franksen <bugs () darcs ! net>
Date:       2020-10-21 15:31:31
Message-ID: 1MQ8OG-1kiNKz29HU-00M6oF () mrelayeu ! kundenserver ! de
[Download RAW message or body]

Ben Franksen <ben.franksen@online.de> added the comment:

New bundle, hopefully the final one. It includes all patches from reviewed,
plus the changelog and the version bump. Will upload a release candidate
today.

34 patches for repository http://darcs.net/releases/branch-2.16:

patch bbcf629cc6f70383799da6b63a35eda990849f63
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Aug 15 14:10:37 CEST 2020
  * work around cabal stupidity in Setup.hs
  
  Cabal insists that all files in extra-source-files must actually exist, even
  though only the cabal sdist command actually needs them.

patch 521fdbcb620a96c0e2f72d85281ea9fb7a1d8a68
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Aug 15 15:20:31 CEST 2020
  * rollback "replace buildHook, haddockHook, and replHook with postConf"
  
  This was a mistake: with this change the Version.hs module will not be
  re-built when the repository changes.

patch 7ae9e49d92c88d4dcc94753ed2b5f478ac17a51e
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Aug 24 07:35:26 CEST 2020
  * resolve issue2655: PACKAGE_VERSION is not defined
  
  This happens only if darcs is build with the -fcurl flag. The patch adapts
  src/hscurl.hs to use CURRENT_PACKAGE_VERSION and include the definition from
  "cabal_macros.h".

patch 1c0c6788eb538e7112a655a97901e61261af300d
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Aug 24 07:55:49 CEST 2020
  * remove work-around for issue1824
  
  The underlying bug in ghc has been fixed a long time ago. Besides, the macro
  is no longer passed via command line but instead by including cabal_macros.h.

patch e00c99244cd348aab71992ff03f276782eb4e6e7
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Aug 24 12:57:52 CEST 2020
  * remove dependency on split package

patch 0a758b61b6ec3bf681c11d703a2f0ca177a77d31
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sun Sep  6 13:35:26 CEST 2020
  * bump version to 2.16.3

patch 2f3c6267502d79c4762230b4282088d10c7386f7
Author: Ben Franksen <ben.franksen@online.de>
Date:   Fri Sep 18 11:03:00 CEST 2020
  * drop dependency on sandi and use base16-bytestring >= 1.0
  
  This was prompted by the announcement of base16-bytestring-1.0.0.0 which
  claims to give major performance improvements and a simpler API. As we use
  sandi only for base16 en/decoding and already depended on base16-bytestring
  in addition to that, this seemed like a logical step. It also turned out
  that the API of base16-bytestring fits our conventions better, in particular
  we can drop the separate pass that converts between upper and lower case,
  which should give us further performance improvement.

patch 11df273ea16568590b493b01e25387bbda6512e3
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sun Aug 16 10:39:27 CEST 2020
  * resolve issue2654: amend --prompt-long-comment removes the long comment

patch a45c4852f662778927f8e5248957a9d06ab12204
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sun Aug 16 10:48:14 CEST 2020
  * improve the prompt when asking for a long comment
  
  We now ask whether they want to "add a" long comment or, if a prior log
  exists, "edit the" long comment.

patch 2f4cea1a303b382053e9d6a2473ecc181768a5fe
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Oct 17 19:10:57 CEST 2020
  * resolve issue2658: show dependencies should only show direct dependencies
  
  The code was written with that goal in mind, I just botched the way the
  direct and indirect dependencies are updated when a new dependency is found.

patch a1a6d933118b7fb751a8b41a6dcb682f810c7c1f
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Oct 19 10:28:12 CEST 2020
  * resolve issue2659: check for bad patch name after invoking editor, too

patch eddd7ae2b70d466f43a3b1008c615788033e3d05
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Oct 19 10:29:54 CEST 2020
  * D.UI.PatchHeader: define is_badname in terms of just_a_badname

patch d731955210c5716cadcd03ddcfef2fc5ea100de2
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Oct 19 10:30:44 CEST 2020
  * D.UI.PatchHeader: add "error" prefix to bad patch name error messages
  
  This makes it a bit clearer that the operation failed.

patch 2a577715e60faafe1f7194a9a8d9b9643760f0d6
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Oct 19 10:47:06 CEST 2020
  * fix and improve help text for show dependencies

patch dc9f5fc7d627f8dc8a5fae12f5dc3b16e1b1758d
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Oct 19 11:39:07 CEST 2020
  * improve internal documentation in D.UI.Commands.ShowDependencies
  
  This hopefully makes it clearer how the algorithm works.

patch 8f2405f53194c0b7e8352bd56c462000b32de683
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Oct 19 13:50:05 CEST 2020
  * add progress reporting to show dependencies command

patch defa429086b2847cca7df5efa87c86197182ac25
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Oct 19 13:50:51 CEST 2020
  * remove an obsolete TODO comment

patch f78c7fd9e7d3e88186665179bf07c5f183813fc7
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Sep 28 17:54:44 CEST 2020
  * harness: add XDG_CACHE_HOME to the env file

patch ea3eaee2d36efeec6e0b46c896531aca374650f3
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Sep 28 18:13:27 CEST 2020
  * tests/conflict-fight-failure.sh: skip test if system has no time executable

patch bbf7ff35ddcf92fd9233d9103eed0f31b2ccf498
Author: Ben Franksen <ben.franksen@online.de>
Date:   Tue Oct 20 10:56:43 CEST 2020
  * tests/record.sh: fix tests for bad patch names
  
  It turned out that we do have a test for bad patch names even for the case
  where an editor is invoked, they were just utterly broken i.e. they did not
  test what they claimed to. Using DARCS_EDITOR='cat -n' defeats the purpose
  as this adds line numbers, so the patch name will always be valid. Also, if
  there is nothing to record, the command always fails, regardless of whether
  the patch name is valid or not.

patch 8414740be41d0825401c99ec313131f5aa258bed
Author: Ben Franksen <ben.franksen@online.de>
Date:   Tue Oct 20 11:08:50 CEST 2020
  * tests/record.sh: remove directories before creating them

patch 87e9653f82f2242cde549e57a7b940d3ccfde6c6
Author: Ben Franksen <ben.franksen@online.de>
Date:   Tue Oct 20 11:25:10 CEST 2020
  * add regression test for issue2659

patch f2113f9f9ff523f044afef7e64bca6687a4266b2
Author: Ben Franksen <ben.franksen@online.de>
Date:   Fri Jul 31 22:41:22 CEST 2020
  * add (succeeding) test for issue2353

patch a6ebb72f5926f8ef2af860fcb46816e0f9ce5945
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Aug  1 13:54:52 CEST 2020
  * resolve issue2570: coalesceHunk should take arguments in the natural order

patch 3a1500fc006cb7d96fd5927091650e05356f8e49
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Aug  1 15:46:45 CEST 2020
  * add (succeeding) test for issue2549

patch bb4217e36fc21eda50b91639ff80430b54d5a803
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Aug  1 18:17:20 CEST 2020
  * resolve issue1930: issue595_get_permissions.sh buggy

patch b0a1c375fe329928f34f81a879200aff2e7ac4a0
Author: Ben Franksen <ben.franksen@online.de>
Date:   Wed Sep 23 12:33:09 CEST 2020
  * two bugfixes in the PrimV1 shrinker

patch fe2e433819a37d3722007a9f18ca6981379373dc
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sun Aug  2 01:50:35 CEST 2020
  * add (succeeding) test for issue1956

patch 646cd1486dce233245ee872f000a59bc3c8c44bd
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sat Oct 17 10:34:52 CEST 2020
  * fix: make test for issue1956 succeed and no longer mark as failing

patch f4db57198c6e174658b9aa8891db6beb43f78a1b
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Jul 20 12:49:46 CEST 2020
  * Darcs.UI.Flags: add module haddocks

patch 563222c676a22aca83a24f1145727ddc19e558f9
Author: Ben Franksen <ben.franksen@online.de>
Date:   Mon Jul 20 12:50:05 CEST 2020
  * Darcs.UI.Flags: reformat some of the code and comments

patch 1063e33c0952db1067a83de9c29fa24fd73515de
Author: Ben Franksen <ben.franksen@online.de>
Date:   Wed Oct 21 14:45:13 CEST 2020
  * add a cabal.project file
  
  The cabal-3.2 tool by default scans subdirectories for cabal files. But we
  no longer treat the embedded shelly as a separate cabal package, so for
  cabal-3.2 we want to disable that. While cabal-3.4 changes the default back
  to ./*.cabal, it seems advisable not to rely on the defaults if they prove
  to be volatile.

patch f61a4de60386e743634d4053122f0eb649f99433
Author: Ben Franksen <ben.franksen@online.de>
Date:   Sun Sep  6 13:34:50 CEST 2020
  * add changelog entries for 2.16.3

patch 2a6aff9d0e9679aade5d5f8a86fca97f6d9c10a4
Author: Ben Franksen <ben.franksen@online.de>
Date:   Wed Oct 21 15:08:24 CEST 2020
  tagged 2.16.3

__________________________________
Darcs bug tracker <bugs@darcs.net>
<http://bugs.darcs.net/patch2100>
__________________________________
["patch-preview.txt" (text/x-darcs-patch)]


[work around cabal stupidity in Setup.hs
Ben Franksen <ben.franksen@online.de>**20200815121037
 Ignore-this: 6834dddda06e5567e28924c8b7e2a2fa5c0e7b6b3efb2fc194ed5d52e7b8fbaebaf58839b1c767c7
  
 Cabal insists that all files in extra-source-files must actually exist, even
 though only the cabal sdist command actually needs them.
] hunk ./Setup.hs 26
- -import System.Process (runProcess)
+import System.Process ( callProcess, runProcess )
hunk ./Setup.hs 52
+  versionInfoExists <-
+    (&&) <$> doesFileExist "release/distributed-context"
+         <*> doesFileExist "release/distributed-version"
+  unless versionInfoExists $
+    callProcess "runghc" ["./release/gen-version-info.hs"]

[rollback "replace buildHook, haddockHook, and replHook with postConf"
Ben Franksen <ben.franksen@online.de>**20200815132031
 Ignore-this: 3f8255d2a10baf9c9c7f4fea00a5970f799c6e7d7f7d8882b01a3b8451c529b2dc1e2f9df386397c
  
 This was a mistake: with this change the Version.hs module will not be
 re-built when the repository changes.
] hunk ./Setup.hs 6
- -         ( defaultMainWithHooks, UserHooks(..), simpleUserHooks, Args )
+         ( defaultMainWithHooks, UserHooks(..), simpleUserHooks )
hunk ./Setup.hs 14
- -    (configVerbosity, copyDest, copyVerbosity, fromFlag, ConfigFlags,
- -     installVerbosity)
+    (buildVerbosity, copyDest, copyVerbosity, fromFlag,
+     haddockVerbosity, installVerbosity, replVerbosity )
hunk ./Setup.hs 26
- -import System.Process ( callProcess, runProcess )
+import System.Process (callProcess, runProcess)
hunk ./Setup.hs 36
- -main =
- -  defaultMainWithHooks $
- -  simpleUserHooks
- -    { postConf = postConfHook
- -    , postBuild = \_ _ _ lbi -> buildManpage lbi
- -    , postCopy =
- -        \_ flags pkg lbi ->
- -          installManpage pkg lbi
- -            (fromFlag $ copyVerbosity flags) (fromFlag $ copyDest flags)
- -    , postInst =
- -        \_ flags pkg lbi ->
- -          installManpage pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest
- -    }
+main = defaultMainWithHooks $ simpleUserHooks {
hunk ./Setup.hs 38
- -postConfHook :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO \
                ()
- -postConfHook _args flags pkg lbi = do
+  buildHook = \ pkg lbi hooks flags ->
+              let verb = fromFlag $ buildVerbosity flags
+               in commonBuildHook buildHook pkg lbi hooks verb >>= ($ flags),
+
+  haddockHook = \ pkg lbi hooks flags ->
+                let verb = fromFlag $ haddockVerbosity flags
+                 in commonBuildHook haddockHook pkg lbi hooks verb >>= ($ flags) ,
+  replHook = \pkg lbi hooks flags args ->
+                let verb = fromFlag $ replVerbosity flags
+                 in commonBuildHook replHook pkg lbi hooks verb >>= (\f -> f flags \
args) , +  postBuild = \ _ _ _ lbi -> buildManpage lbi,
+  postCopy = \ _ flags pkg lbi ->
+             installManpage pkg lbi (fromFlag $ copyVerbosity flags) (fromFlag $ \
copyDest flags), +  postInst = \ _ flags pkg lbi ->
+             installManpage pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest
+
+}
+
+-- | For @./Setup build@ and @./Setup haddock@, do some unusual
+-- things, then invoke the base behaviour ("simple hook").
+commonBuildHook :: (UserHooks -> PackageDescription -> LocalBuildInfo -> t -> a)
+                -> PackageDescription -> LocalBuildInfo -> t -> Verbosity -> IO a
+commonBuildHook runHook pkg lbi hooks verbosity = do
hunk ./Setup.hs 66
- -  let verbosity = fromFlag $ configVerbosity flags
hunk ./Setup.hs 68
+  return $ runHook simpleUserHooks pkg lbi hooks

[resolve issue2655: PACKAGE_VERSION is not defined
Ben Franksen <ben.franksen@online.de>**20200824053526
 Ignore-this: de5897e7e0fb5b33338cf490cdf669886dbb3a60e66b73c6f6af5d4ddafd0ab178065f0f62016b14
  
 This happens only if darcs is build with the -fcurl flag. The patch adapts
 src/hscurl.hs to use CURRENT_PACKAGE_VERSION and include the definition from
 "cabal_macros.h".
] hunk ./src/hscurl.c 9
+#include "cabal_macros.h"
+
hunk ./src/hscurl.c 52
- -  "darcs/" PACKAGE_VERSION " libcurl/" LIBCURL_VERSION;
+  "darcs/" CURRENT_PACKAGE_VERSION " libcurl/" LIBCURL_VERSION;

[remove work-around for issue1824
Ben Franksen <ben.franksen@online.de>**20200824055549
 Ignore-this: b275df1f44c660b75c1dee801798d1a9bfe12aa401f279824ebfb38b54f9a34826b4c8748b759f04
  
 The underlying bug in ghc has been fixed a long time ago. Besides, the macro
 is no longer passed via command line but instead by including cabal_macros.h.
] hunk ./src/hscurl.c 50
- -#ifndef _WIN32
hunk ./src/hscurl.c 52
- -#else
- -static const char user_agent[] =
- -  "darcs/unknown libcurl/" LIBCURL_VERSION;
- -#endif

[remove dependency on split package
Ben Franksen <ben.franksen@online.de>**20200824105752
 Ignore-this: 80dcf05048af624778cfbb21ab7da6298938dc0a8a32f640e5ab79ccdf54b978c3c19bc65d8a2ba4
 ] hunk ./darcs.cabal 577
- -                    split        >= 0.2.2 && < 0.3,

[bump version to 2.16.3
Ben Franksen <ben.franksen@online.de>**20200906113526
 Ignore-this: ab8dd275dca3da611581aafddadcab34dfc007bedaaf71fa5d06f46a3d38f42804acff8b9acea0e6
 ] hunk ./darcs.cabal 3
- -version:        2.16.2
+version:        2.16.3

[drop dependency on sandi and use base16-bytestring >= 1.0
Ben Franksen <ben.franksen@online.de>**20200918090300
 Ignore-this: f283ca1a743233b869b8f2afbd279b6096199a48b0b5a62b99ea300540ca7b36a251dba19d54b97c
  
 This was prompted by the announcement of base16-bytestring-1.0.0.0 which
 claims to give major performance improvements and a simpler API. As we use
 sandi only for base16 en/decoding and already depended on base16-bytestring
 in addition to that, this seemed like a logical step. It also turned out
 that the API of base16-bytestring fits our conventions better, in particular
 we can drop the separate pass that converts between upper and lower case,
 which should give us further performance improvement.
] hunk ./darcs.cabal 433
- -                      base16-bytestring >= 0.1 && < 0.2,
+                      base16-bytestring >= 1.0 && < 1.1,
hunk ./darcs.cabal 442
- -                      sandi             >= 0.4 && < 0.6,
hunk ./src/Darcs/Util/ByteString.hs 60
- -import Codec.Binary.Base16 ( b16Enc, b16Dec )
- -
hunk ./src/Darcs/Util/ByteString.hs 64
+import qualified Data.ByteString.Base16     as B16
hunk ./src/Darcs/Util/ByteString.hs 74
- -import Data.Char                ( ord, toLower, toUpper )
+import Data.Char                ( ord )
hunk ./src/Darcs/Util/ByteString.hs 78
+import Control.Exception ( throw )
hunk ./src/Darcs/Util/ByteString.hs 328
- -fromPS2Hex = BC.map toLower . b16Enc
+fromPS2Hex = B16.encode
hunk ./src/Darcs/Util/ByteString.hs 335
- -  case b16Dec $ BC.map toUpper s of
- -    Right (result, remaining)
- -      | B.null remaining -> result
- -    _ -> error "fromHex2PS: input is not hex encoded"
+  case B16.decode s of
+    Right result -> result
+    Left msg -> throw $ userError $ "fromHex2PS: input is not hex encoded: "++msg
hunk ./src/Darcs/Util/Hash.hs 20
- -
- -import qualified Codec.Binary.Base16 as B16
+import qualified Data.ByteString.Base16 as B16
hunk ./src/Darcs/Util/Hash.hs 24
- -import Data.Maybe( isJust, fromJust )
- -import Data.Char( toLower, toUpper, intToDigit, ord )
+import Data.Char( intToDigit, ord )
hunk ./src/Darcs/Util/Hash.hs 37
- -base16 :: B.ByteString -> B.ByteString
- -base16 = BC.map toLower . B16.b16Enc
- -
- -debase16 :: B.ByteString -> Maybe B.ByteString
- -debase16 bs = case B16.b16Dec $ BC.map toUpper bs of
- -                Right (s, _) -> Just s
- -                Left _ -> Nothing
- -
hunk ./src/Darcs/Util/Hash.hs 40
- -encodeBase16 (SHA256 bs) = base16 bs
+encodeBase16 (SHA256 bs) = B16.encode bs
hunk ./src/Darcs/Util/Hash.hs 46
- -decodeBase16 bs | B.length bs == 64 && isJust (debase16 bs) = SHA256 (fromJust $ \
                debase16 bs)
- -                | otherwise = NoHash
+decodeBase16 bs
+  | B.length bs == 64
+  , Right dbs <- B16.decode bs = SHA256 dbs
+  | otherwise = NoHash
hunk ./src/Darcs/Util/Hash.hs 57
- -sha256sum = BC.unpack . base16 . convert . H.hashWith H.SHA256
+sha256sum = BC.unpack . B16.encode . convert . H.hashWith H.SHA256
hunk ./src/Darcs/Util/Hash.hs 133
- -sha1Show = base16 . BL.toStrict . encode
+sha1Show = B16.encode . BL.toStrict . encode

[resolve issue2654: amend --prompt-long-comment removes the long comment
Ben Franksen <ben.franksen@online.de>**20200816083927
 Ignore-this: 4d6cd4f31351b8dc8ad96efa5a683eda304c39cb3f5b6edd412b5c27934b5fc403da002f87296bc0
 ] hunk ./src/Darcs/UI/PatchHeader.hs 184
- -            else return (oldname, [], Nothing)
+            else return (oldname, default_log, Nothing)

[improve the prompt when asking for a long comment
Ben Franksen <ben.franksen@online.de>**20200816084814
 Ignore-this: 902d58609b5c372889ebe2e7a51593a4bfc2383f6b7d24446643f4acf5454bf7511b8c7043d40792
  
 We now ask whether they want to "add a" long comment or, if a prior log
 exists, "edit the" long comment.
] hunk ./src/Darcs/UI/PatchHeader.hs 182
- -    do y <- promptYorn "Do you want to add a long comment?"
+    do let verb = case m_old of Nothing -> "add a"; Just _ -> "edit the"
+       y <- promptYorn $ "Do you want to "++verb++" long comment?"

[resolve issue2658: show dependencies should only show direct dependencies
Ben Franksen <ben.franksen@online.de>**20201017171057
 Ignore-this: 37282380bbe8a48412aeac9a7c61ff3f99db4ddee3494cf78477750d3fbb68b5fd88375439ce81f6
  
 The code was written with that goal in mind, I just botched the way the
 direct and indirect dependencies are updated when a new dependency is found.
] hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 116
- -        foldDeps qs (q :>: p_and_deps) non_deps (addDeps j direct, indirect)
+        foldDeps qs (q :>: p_and_deps) non_deps (S.insert j direct, addDeps j \
indirect)

[resolve issue2659: check for bad patch name after invoking editor, too
Ben Franksen <ben.franksen@online.de>**20201019082812
 Ignore-this: b257b93a7a048f7f74b2b2bad6dbeb92e62d68d8ffe4ff5d53436e0efc57a94629c0041fc24e5029
 ] hunk ./src/Darcs/UI/PatchHeader.hs 195
+                          check_badname name

[D.UI.PatchHeader: define is_badname in terms of just_a_badname
Ben Franksen <ben.franksen@online.de>**20201019082954
 Ignore-this: 720c9fb07128b1d53c2d2f15a9a95bb826a6d5f8a74fd1af2a267734c81b098e2d154908256ff053
 ] hunk ./src/Darcs/UI/PatchHeader.hs 55
- -import Data.Maybe ( fromMaybe )
+import Data.Maybe ( fromMaybe, isJust )
hunk ./src/Darcs/UI/PatchHeader.hs 108
- -                     (_, p:_)               -> if badName p
+                     (_, p:_)               -> if is_badname p
hunk ./src/Darcs/UI/PatchHeader.hs 157
- -  badName n = null n || hasTagPrefix n
- -
hunk ./src/Darcs/UI/PatchHeader.hs 179
+  is_badname = isJust . just_a_badname
+

[D.UI.PatchHeader: add "error" prefix to bad patch name error messages
Ben Franksen <ben.franksen@online.de>**20201019083044
 Ignore-this: b3d7ead8b29137ac05222cbe4fedaf53ae3570445ce5eeea29f2e6fd0b5282708298767b76bcb2f7
  
 This makes it a bit clearer that the operation failed.
] hunk ./src/Darcs/UI/PatchHeader.hs 173
- -      Just "The patch name must not be empty!"
+      Just "Error: The patch name must not be empty!"
hunk ./src/Darcs/UI/PatchHeader.hs 175
- -      Just "The patch name must not start with \"TAG \"!"
+      Just "Error: The patch name must not start with \"TAG \"!"

[fix and improve help text for show dependencies
Ben Franksen <ben.franksen@online.de>**20201019084706
 Ignore-this: 4371e702bb927e68793879a8219b303c9fc1d0880cc53332b2bab073ce7dbfed423fd0c453c0e02d
 ] hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 24
+    , ($+$)
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 26
+    , formatWords
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 51
- -showDepsHelp = formatText 80
- -        [ unwords [ "The `darcs show dependencies` command is used to create"
- -                  , "a graph of the dependencies between patches of the"
- -                  , "repository (by default up to last tag)."
- -                  ]
- -        , unwords [ "The resulting graph is described in Dot Language, a"
- -                  , "general example of use could be:"
- -                  ]
- -        , "darcs show dependencies | dot -Tpdf -o FILE.pdf"
- -        ]
+showDepsHelp =
+  formatWords
+    [ "This command creates a graph of the dependencies between patches."
+    , "The output format is the Dot Language, see"
+    , "https://www.graphviz.org/doc/info/lang.html. The resulting graph"
+    , "is transitively reduced, in other words,"
+    , "it contains only the direct dependencies, not the indirect ones."
+    ]
+  $+$ formatWords
+    [ "By default all patches in your repository are considered. You can"
+    , "limit this to a range of patches using patch matching options, see"
+    , "`darcs help patterns` and the options avaiable for this command."
+    , "For instance, to visualize the dependencies between all patches"
+    , "since the last tag, do:"
+    ]
+  $+$ "    darcs show dependencies --from-tag=. | dot -Tpdf -o FILE.pdf"
+  $+$ formatWords
+    [ "This command can take a very(!) long time to compute its result,"
+    , "depending on the number of patches in the selected range. For N"
+    , "patches it needs to do on the order of N^3 commutations in the"
+    , "worst case."
+    ]

[improve internal documentation in D.UI.Commands.ShowDependencies
Ben Franksen <ben.franksen@online.de>**20201019093907
 Ignore-this: fa155aa343d7d461070ec633af1d658d01ecf082965992a3af8ee42268035ab2c9064281df5169ec
  
 This hopefully makes it clearer how the algorithm works.
] hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 102
- --- A 'M.Map' from 'PatchId's to 'Deps'.
+-- | A 'M.Map' from 'PatchId's to 'Deps'.
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 105
- --- A pair of (direct, indirect) dependencies.
+-- | A pair of (direct, indirect) dependencies. For the result we need only the
+-- direct dependencies. We store the indirect ones as an optimization to avoid
+-- doing commutes for which we already know that they cannot succeed. Note that
+-- the two sets are always disjoint.
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 111
- --- Determine the 'DepsGraph' of an 'RL' of patches.
+-- | Determine the 'DepsGraph' of an 'RL' of patches.
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 115
- -  M.insert i (foldDeps ps (p :>: NilFL) NilFL (S.empty, S.empty)) m
+  M.insert (ident p) (foldDeps ps (p :>: NilFL) NilFL (S.empty, S.empty)) m
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 117
+    -- First recurse on the context. The result now has all the 'Deps' for
+    -- all patches preceding p.
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 120
- -    i = ident p
+    -- Lookup all (direct and indirect) dependencies of a patch in a given
+    -- 'DepthGraph'
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 123
+    -- Add all (direct and indirect) dependencies of a patch to a given set
+    -- assuming 'm' already
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 126
+    -- Add direct and indirect dependencies of a patch, assuming that the
+    -- graph has already been constructed for all patches in the context.
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 131
- -      -- no need to commute or adjust acc if we already know we depend
- -      -- (indirectly) on q; note that (ident q `S.member` direct) is
- -      -- impossible
+      -- If we already know we indirectly depend on q, then there is
+      -- nothing left to do. Note that (j `S.member` direct) is impossible.
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 134
- -      -- if q commutes past p_and_deps then we don't depend on it
+      -- If q commutes past p_and_deps then we don't depend on it
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 137
- -      -- we have a new dependency which must be a direct one
+      -- We have a new dependency which must be a direct one, so add it to
+      -- 'direct' and all its dependencies to 'indirect'. The invariant that
+      -- direct and indirect are disjoint is maintained because neither the
+      -- direct and indirect deps of a patch contain its own 'PatchId'.
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 146
+-- | Render a 'DepthGraph' in the Dot Language format. This function
+-- considers only the direct dependencies.

[add progress reporting to show dependencies command
Ben Franksen <ben.franksen@online.de>**20201019115005
 Ignore-this: df0ee0241971b85c3947b6851148ab785aa0bef6c9d60220f9f85c8fc40ea981939d77861c05c888
 ] hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 35
+import Darcs.Util.Progress ( beginTedious, endTedious, progress, tediousSize )
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 45
+    , lengthFL
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 97
+progressKey :: String
+progressKey = "Determining dependencies"
+
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 104
- -        Sealed2 rFl <- matchRange (O.matchRange ? opts) <$> readRepo repo
- -        putDocLn $ renderDepsGraphAsDot $ depsGraph $ reverseFL rFl
+        Sealed2 range <- matchRange (O.matchRange ? opts) <$> readRepo repo
+        beginTedious progressKey
+        tediousSize progressKey (lengthFL range)
+        putDocLn $ renderDepsGraphAsDot $ depsGraph $ reverseFL range
+        endTedious progressKey
hunk ./src/Darcs/UI/Commands/ShowDependencies.hs 137
- -    foldDeps NilRL _ _ acc = acc
+    foldDeps NilRL _ _ acc = progress progressKey acc

[remove an obsolete TODO comment
Ben Franksen <ben.franksen@online.de>**20201019115051
 Ignore-this: 59e55f0a37d55f2fdd7edb32b9d172cb7dc243f04620dd6be361b448e61a3e466f4992a71a62d481
 ] hunk ./src/Darcs/UI/PatchHeader.hs 189
- -                          -- TODO: make sure encoding used for logf is the same \
                everywhere
- -                          -- probably should be locale because the editor will \
assume it

[harness: add XDG_CACHE_HOME to the env file
Ben Franksen <ben.franksen@online.de>**20200928155444
 Ignore-this: 37a398cde086ba74a1b665796eaa9b227212d23688cb81257d6f5d30cd33ad069834f82975fe318e
 ] hunk ./harness/test.hs 94
+          -- in case someone has XDG_CACHE_HOME set:
+          , ("XDG_CACHE_HOME", EnvFilePath (wd </> ".cache"))

[tests/conflict-fight-failure.sh: skip test if system has no time executable
Ben Franksen <ben.franksen@online.de>**20200928161327
 Ignore-this: 7bf53c02839db8f05f27b2c4f4c03e7afd2ad624dc322342fb26ee2cb2febaa24c3c4a0f9233803f
 ] hunk ./tests/conflict-fight-failure.sh 17
+# skip if time executable is not found
+/usr/bin/env time --help 2> /dev/null || exit 200
+

[tests/record.sh: fix tests for bad patch names
Ben Franksen <ben.franksen@online.de>**20201020085643
 Ignore-this: 6ad082bdbccd9d60f7c57ed00ebec2acd279adee325cb7c50d0f429f348938a0b4f94f29af9c9e9c
  
 It turned out that we do have a test for bad patch names even for the case
 where an editor is invoked, they were just utterly broken i.e. they did not
 test what they claimed to. Using DARCS_EDITOR='cat -n' defeats the purpose
 as this adds line numbers, so the patch name will always be valid. Also, if
 there is nothing to record, the command always fails, regardless of whether
 the patch name is valid or not.
] hunk ./tests/record.sh 55
+echo text > file
+darcs add file
+
hunk ./tests/record.sh 59
- -export DARCS_EDITOR="cat -n"
- -echo "patchname" | not darcs record -a -m ""
+
+# true command outputs nothing & ignores its arguments
+DARCS_EDITOR=true not darcs record -a --edit-long-comment
+# cat command reproduces its input unchanged
+DARCS_EDITOR=cat not darcs record -a -m "" --edit-long-comment
hunk ./tests/record.sh 67
- -export DARCS_EDITOR="cat -n"
- -echo "patchname" | not darcs record -a -m "TAG fake"
+
+# editor output will be "echo TAG _darcs/patch_description.txt"
+DARCS_EDITOR='echo TAG ' not darcs record -a --edit-long-comment
+# cat command reproduces its input unchanged
+DARCS_EDITOR=cat not darcs record -a -m "TAG fake" --edit-long-comment

[tests/record.sh: remove directories before creating them
Ben Franksen <ben.franksen@online.de>**20201020090850
 Ignore-this: afc159e959a50819e3165f18ea956606b241c436af8c95b3e4c90ee645a3fb0764f6db59d1e2e6e5
 ] hunk ./tests/record.sh 75
- -rm -rf temp1
hunk ./tests/record.sh 95
- -rm -rf foo1 foo2
hunk ./tests/record.sh 120
- -rm -rf temp1
hunk ./tests/record.sh 128
+rm -rf temp1
hunk ./tests/record.sh 136
- -rm -rf temp1
hunk ./tests/record.sh 138
+rm -rf temp2\ dir
hunk ./tests/record.sh 146
- -rm -rf temp2\ dir
hunk ./tests/record.sh 148
+rm -rf temp3
hunk ./tests/record.sh 168
- -rm -rf temp2\ dir
hunk ./tests/record.sh 171
+rm -rf temp1
hunk ./tests/record.sh 179
- -rm -rf temp1
hunk ./tests/record.sh 182
+rm -rf temp1
hunk ./tests/record.sh 196
- -rm -rf temp1
hunk ./tests/record.sh 199
+rm -rf temp1
hunk ./tests/record.sh 207
- -rm -rf temp1
hunk ./tests/record.sh 211
+rm -rf temp1
hunk ./tests/record.sh 221
- -rm -rf temp1
hunk ./tests/record.sh 224
+rm -rf temp1
hunk ./tests/record.sh 231
- -rm -rf temp1
hunk ./tests/record.sh 234
+rm -rf temp1
hunk ./tests/record.sh 244
- -rm -rf temp1

[add regression test for issue2659
Ben Franksen <ben.franksen@online.de>**20201020092510
 Ignore-this: 89a79b08fa58b153fe6f30e882ff1f03657e470dbedcacab0956d70678428cd96711aba5f2701ad
 ] addfile ./tests/issue2659-show-dependencies.sh
hunk ./tests/issue2659-show-dependencies.sh 1
+#!/usr/bin/env bash
+
+# test that 'darcs show dependencies' shows only the direct dependencies
+
+. lib
+
+rm -rf R
+darcs init R
+cd R
+
+# 4 patches, each depending on the previous one
+echo a > f
+darcs record -lam a
+echo b > f
+darcs record -lam a
+echo c > f
+darcs record -lam a
+echo d > f
+darcs record -lam d
+
+# the number of edges in the dependency graph should be exactly 3
+darcs show dependencies > graph.dot
+test "3" = $(grep -wF -- '->' graph.dot | wc -l)
+
+cd ..

[add (succeeding) test for issue2353
Ben Franksen <ben.franksen@online.de>**20200731204122
 Ignore-this: 25fa218665ac95f342d3125402b4a1a10102795a5b95bbda3eecfabde5a3a83d14d21b812c4f2813
 ] addfile ./tests/issue2353.sh
hunk ./tests/issue2353.sh 1
+## issue2353: darcs does not show old changes of moved files
+
+#!/usr/bin/env bash
+. ./lib
+
+rm -rf test
+mkdir test
+cd test
+darcs init
+echo 'hello world' > file
+darcs add file
+darcs record -am 'patch 1' --skip-long
+darcs mv file new_file
+darcs record -am 'file -> new_file' --skip-long
+darcs diff -p 'patch 1' | grep -F "+hello world"
+cd ..

[resolve issue2570: coalesceHunk should take arguments in the natural order
Ben Franksen <ben.franksen@online.de>**20200801115452
 Ignore-this: 5e1d5b06d47a14dd6afad38416dcca55166a3c672f9092076b1a3ade57182d3857157c234dc3cb4e
 ] hunk ./src/Darcs/Patch/Prim/V1/Coalesce.hs 196
- -    = coalesceHunk f line2 old2 new2 line1 old1 new1
+    = coalesceHunk f line1 old1 new1 line2 old2 new2
hunk ./src/Darcs/Patch/Prim/V1/Coalesce.hs 222
- -    | line1 == line2 && lengthold1 < lengthnew2 =
- -        if take lengthold1 new2 /= old1
+    | line2 == line1 && lengthold2 < lengthnew1 =
+        if take lengthold2 new1 /= old2
hunk ./src/Darcs/Patch/Prim/V1/Coalesce.hs 225
- -        else case drop lengthold1 new2 of
- -        extranew -> Just (FP f (Hunk line1 old2 (new1 ++ extranew)))
- -    | line1 == line2 && lengthold1 > lengthnew2 =
- -        if take lengthnew2 old1 /= new2
+        else case drop lengthold2 new1 of
+        extranew -> Just (FP f (Hunk line2 old1 (new2 ++ extranew)))
+    | line2 == line1 && lengthold2 > lengthnew1 =
+        if take lengthnew1 old2 /= new1
hunk ./src/Darcs/Patch/Prim/V1/Coalesce.hs 230
- -        else case drop lengthnew2 old1 of
- -        extraold -> Just (FP f (Hunk line1 (old2 ++ extraold) new1))
- -    | line1 == line2 = if new2 == old1 then Just (FP f (Hunk line1 old2 new1))
+        else case drop lengthnew1 old2 of
+        extraold -> Just (FP f (Hunk line2 (old1 ++ extraold) new2))
+    | line2 == line1 = if new1 == old2 then Just (FP f (Hunk line2 old1 new2))
hunk ./src/Darcs/Patch/Prim/V1/Coalesce.hs 234
- -    | line1 < line2 && lengthold1 >= line2 - line1 =
- -        case take (line2 - line1) old1 of
- -        extra-> coalesceHunk f line1 old1 new1 line1 (extra ++ old2) (extra ++ \
                new2)
- -    | line1 > line2 && lengthnew2 >= line1 - line2 =
- -        case take (line1 - line2) new2 of
+    | line2 < line1 && lengthold2 >= line1 - line2 =
+        case take (line1 - line2) old2 of
hunk ./src/Darcs/Patch/Prim/V1/Coalesce.hs 237
+    | line2 > line1 && lengthnew1 >= line2 - line1 =
+        case take (line2 - line1) new1 of
+        extra-> coalesceHunk f line1 old1 new1 line1 (extra ++ old2) (extra ++ new2)
hunk ./src/Darcs/Patch/Prim/V1/Coalesce.hs 241
- -    where lengthold1 = length old1
- -          lengthnew2 = length new2
+    where lengthold2 = length old2
+          lengthnew1 = length new1

[add (succeeding) test for issue2549
Ben Franksen <ben.franksen@online.de>**20200801134645
 Ignore-this: 8cb2b60aa8edb2e4ee44c11bcdb2a65d9ecc74632199fc3c0736f20552acf4d6c021d0b893aec8d5
 ] addfile ./tests/issue2549-trailing-slash-in-patch-bundle.sh
hunk ./tests/issue2549-trailing-slash-in-patch-bundle.sh 1
+. lib
+
+rm -rf R S N W
+
+mkdir R S
+darcs init R
+darcs init S
+cd R
+mkdir directory
+darcs add directory
+darcs record -am 'add directory'
+darcs send -a -o orig.dpatch ../S
+sed -e s'#adddir ./directory#adddir ./directory/#'\
+ -e '/Patch bundle hash:/,+2d' orig.dpatch > tweaked.dpatch
+cd ../S
+darcs apply ../R/tweaked.dpatch
+rm -rf directory
+darcs record -am 'rm directory'
+cd ..
+# Now, try pulling these patches.
+darcs init --no-patch-index N
+cd N
+darcs pull -a ../S
+cd ..
+darcs init --with-patch-index W
+cd W
+darcs pull -a ../S
+cd ..

[resolve issue1930: issue595_get_permissions.sh buggy
Ben Franksen <ben.franksen@online.de>**20200801161720
 Ignore-this: 5b47fdf3c1a71852df2bc19237ac5dad873cae4e5fbcaa9b3c7a5e2572669001ea446fc0163bf9a0
 ] hunk ./tests/issue595_get_permissions.sh 18
- -rm -rf temp1 temp2
+rm -rf tmp_remote tmp_restrictive
hunk ./tests/issue595_get_permissions.sh 21
- -mkdir tmp_remote
- -cd tmp_remote
- -darcs 'init'
- -cd ..
+darcs init tmp_remote
+
+DIR=`/bin/pwd`
+trap "chmod +wx $PWD/tmp_restrictive" EXIT
hunk ./tests/issue595_get_permissions.sh 26
- -DIR=`pwd`
hunk ./tests/issue595_get_permissions.sh 29
- -chmod 0111 ../../tmp_restrictive
+chmod a-wx ../../tmp_restrictive
+# sanity check that we can not cd ..
+not cd ..
hunk ./tests/issue595_get_permissions.sh 33
- -cd ../..; cd tmp_restrictive/liberal
- -# TODO: we avoid this test on Solaris because it seems we can't create
- -# anything in tmp_restrictive/liberal
- -touch can_touch
- -if [ -e can_touch ]; then
- -  if hwpwd; then
- -    darcs get "$DIR/tmp_remote" 2> log
- -    not grep -i 'permission denied' log
- -  else
- -    echo "Apparently I can't do `basename $0` on this platform"
- -  fi
- -else
- -  echo "Can't do `basename $0` on this platform"
- -fi
- -cd "$DIR"
- -# We have to fix the permissions, just so we can delete it.
- -chmod 0755 tmp_restrictive
- -
- -rm -rf tmp_remote tmp_restrictive
+(cd ../.. && cd tmp_restrictive/liberal) || exit 200
+(touch can_touch && test -e can_touch) || exit 200
+# now run the real test
+darcs get "$DIR/tmp_remote" 2>&1 >log
+not grep -i 'permission denied' log
+cd ../..

[two bugfixes in the PrimV1 shrinker
Ben Franksen <ben.franksen@online.de>**20200923103309
 Ignore-this: 4ee2f606fd8e671a350e28abcf6f17d95f4bd44d0711ee9838efd8b688fe571c82ac75a41031123e
 ] hunk ./harness/Darcs/Test/Patch/Arbitrary/PrimV1.hs 212
+  guard (newPath `notElem` map fst (list repo))
hunk ./harness/Darcs/Test/Patch/Arbitrary/PrimV1.hs 228
- -  (pos, lineToRemove) <- zip [0..] $ fileContent file
+  (pos, lineToRemove) <- zip [1..] $ fileContent file

[add (succeeding) test for issue1956
Ben Franksen <ben.franksen@online.de>**20200801235035
 Ignore-this: cf250c50e7392962dbc836b3ef48354db47904fb430d510c9f037da24cdc4db43c74957f2bc4d998
 ] addfile ./tests/failing-issue1956.sh
hunk ./tests/failing-issue1956.sh 1
+## Test for issue1956
+
+# copied almost verbatim from igloo's
+# http://bugs.darcs.net/file1862/darcs_bug_with_touch.sh
+
+. lib
+
+rm -rf a
+rm -rf b
+
+mkdir a
+cd a
+darcs init --darcs-2
+echo A > file
+darcs add file
+darcs rec -a -m A --ignore-times
+cd ..
+
+darcs get a b
+
+cd a
+echo BB > file
+darcs rec -a -m B --ignore-times
+cd ..
+
+sleep 1
+
+cd b
+touch ts
+echo R > file
+touch file --reference=ts
+darcs rec -a -m R
+# sleep 1
+echo S > file
+touch file --reference=ts
+# darcs rec -a -m S --ignore-times
+darcs pull ../a -ap B
+cd ..

[fix: make test for issue1956 succeed and no longer mark as failing
Ben Franksen <ben.franksen@online.de>**20201017083452
 Ignore-this: d702bf35ff7c5e66463543f087655ee95ecbb92e40c6844f2c0cbd90e8fbdb9e501d996e054751
 ] move ./tests/failing-issue1956.sh ./tests/issue1956.sh
hunk ./tests/issue1956.sh 37
- -darcs pull ../a -ap B
+echo y| darcs pull ../a -ap B

[Darcs.UI.Flags: add module haddocks
Ben Franksen <ben.franksen@online.de>**20200720104946
 Ignore-this: 5edb970404f405a818e51ab6a4da8e7de5af91acc690da01b549830c6ef64f2875c739618e1effe7
 ] hunk ./src/Darcs/UI/Flags.hs 19
+-- | Helper functions to access option contents. Some of them are here only to
+-- ease the transition from the legacy system where we manually parsed the flag
+-- list to the new(er) option system. At some point this module should be
+-- renamed and the re-exports from "Darcs.UI.Options.All" removed.

[Darcs.UI.Flags: reformat some of the code and comments
Ben Franksen <ben.franksen@online.de>**20200720105005
 Ignore-this: 894b1632355a28593b2476991fac3d893a82bac83047da0dac18c203ac1e09b4b90930fd8c44b5d3
 ] hunk ./src/Darcs/UI/Flags.hs 184
- -wantGuiPause fs = if (hasDiffCmd fs || hasExternalMerge fs) && hasPause fs then \
O.YesWantGuiPause else O.NoWantGuiPause +wantGuiPause fs =
+  if (hasDiffCmd fs || hasExternalMerge fs) && hasPause fs
+    then O.YesWantGuiPause
+    else O.NoWantGuiPause
hunk ./src/Darcs/UI/Flags.hs 289
- -maybeFixSubPaths :: (AbsolutePath, AbsolutePath) -> [String] -> IO [Maybe \
AnchoredPath] +maybeFixSubPaths :: (AbsolutePath, AbsolutePath)
+                 -> [String]
+                 -> IO [Maybe AnchoredPath]
hunk ./src/Darcs/UI/Flags.hs 344
- -getAuthor Nothing pipe = if pipe then askUser "Who is the author? " else \
promptAuthor True False +getAuthor Nothing pipe =
+  if pipe
+    then askUser "Who is the author? "
+    else promptAuthor True False
hunk ./src/Darcs/UI/Flags.hs 412
- --- | 'getEasyAuthor' tries to get the author name first from the repository \
                preferences,
- --- then from global preferences, then from environment variables.  Returns @[]@
- --- if it could not get it.  Note that it may only return multiple possibilities \
                when
- --- reading from global preferences
+-- | 'getEasyAuthor' tries to get the author name first from the repository
+-- preferences, then from global preferences, then from environment variables.
+-- Returns @[]@ if it could not get it. Note that it may only return multiple
+-- possibilities when reading from global preferences.
hunk ./src/Darcs/UI/Flags.hs 455
- --- Alternatively the user can set @$S@@ENDMAIL@ which will be used as a fallback \
if present. +-- Alternatively the user can set @$S@@ENDMAIL@ which will be used as a
+-- fallback if present.

[add a cabal.project file
Ben Franksen <ben.franksen@online.de>**20201021124513
 Ignore-this: 1f4ad28f6ab7e542cb318576e49cdc4033c56b1a698da406a697a4eed89a3455329a115d29279690
  
 The cabal-3.2 tool by default scans subdirectories for cabal files. But we
 no longer treat the embedded shelly as a separate cabal package, so for
 cabal-3.2 we want to disable that. While cabal-3.4 changes the default back
 to ./*.cabal, it seems advisable not to rely on the defaults if they prove
 to be volatile.
] addfile ./cabal.project
hunk ./cabal.project 1
+packages: darcs.cabal

[add changelog entries for 2.16.3
Ben Franksen <ben.franksen@online.de>**20200906113450
 Ignore-this: 8852aa48e255d379851b241fd1a11ef77c6632cb007aac304895726d45c19807e1ff387aae51b481
 ] hunk ./CHANGELOG 1
+Darcs 2.16.3, 21 October 2020
+
+  * Fix building with `-f curl` (issue2655)
+  * Various fixes in our custom Setup.hs, mostly to do with cabal commands
+    exectuted inside the unpacked source dist tar ball
+  * Remove obsolete dependency on split package
+  * Remove dependency on sandi and use base16-bytestring >= 1.0, improving
+    performance when darcs handles binary files and patches, and more
+    generally whenever we convert hashes from/to text.
+  * Various minor fixes and additions to tests scripts
+  * Issues fixed:
+    * 2654: amend --prompt-long-comment removes the long comment
+    * 2658: show dependencies should only show direct dependencies
+    * 2659: check for bad patch name after invoking editor, too
+

[TAG 2.16.3
Ben Franksen <ben.franksen@online.de>**20201021130824
 Ignore-this: 94555e9dad84506213d9af36dbd96e8ac6d0b5e65fb217ca9373f153e3bedf3e11d4905b85c55f91
 ] 
<
[add changelog entries for 2.16.3
Ben Franksen <ben.franksen@online.de>**20200906113450
 Ignore-this: 8852aa48e255d379851b241fd1a11ef77c6632cb007aac304895726d45c19807e1ff387aae51b481
 ] 
[add a cabal.project file
Ben Franksen <ben.franksen@online.de>**20201021124513
 Ignore-this: 1f4ad28f6ab7e542cb318576e49cdc4033c56b1a698da406a697a4eed89a3455329a115d29279690
  
 The cabal-3.2 tool by default scans subdirectories for cabal files. But we
 no longer treat the embedded shelly as a separate cabal package, so for
 cabal-3.2 we want to disable that. While cabal-3.4 changes the default back
 to ./*.cabal, it seems advisable not to rely on the defaults if they prove
 to be volatile.
] 
[Darcs.UI.Flags: reformat some of the code and comments
Ben Franksen <ben.franksen@online.de>**20200720105005
 Ignore-this: 894b1632355a28593b2476991fac3d893a82bac83047da0dac18c203ac1e09b4b90930fd8c44b5d3
 ] 
[Darcs.UI.Flags: add module haddocks
Ben Franksen <ben.franksen@online.de>**20200720104946
 Ignore-this: 5edb970404f405a818e51ab6a4da8e7de5af91acc690da01b549830c6ef64f2875c739618e1effe7
 ] 
[fix: make test for issue1956 succeed and no longer mark as failing
Ben Franksen <ben.franksen@online.de>**20201017083452
 Ignore-this: d702bf35ff7c5e66463543f087655ee95ecbb92e40c6844f2c0cbd90e8fbdb9e501d996e054751
 ] 
[add (succeeding) test for issue1956
Ben Franksen <ben.franksen@online.de>**20200801235035
 Ignore-this: cf250c50e7392962dbc836b3ef48354db47904fb430d510c9f037da24cdc4db43c74957f2bc4d998
 ] 
[two bugfixes in the PrimV1 shrinker
Ben Franksen <ben.franksen@online.de>**20200923103309
 Ignore-this: 4ee2f606fd8e671a350e28abcf6f17d95f4bd44d0711ee9838efd8b688fe571c82ac75a41031123e
 ] 
[resolve issue1930: issue595_get_permissions.sh buggy
Ben Franksen <ben.franksen@online.de>**20200801161720
 Ignore-this: 5b47fdf3c1a71852df2bc19237ac5dad873cae4e5fbcaa9b3c7a5e2572669001ea446fc0163bf9a0
 ] 
[add (succeeding) test for issue2549
Ben Franksen <ben.franksen@online.de>**20200801134645
 Ignore-this: 8cb2b60aa8edb2e4ee44c11bcdb2a65d9ecc74632199fc3c0736f20552acf4d6c021d0b893aec8d5
 ] 
[resolve issue2570: coalesceHunk should take arguments in the natural order
Ben Franksen <ben.franksen@online.de>**20200801115452
 Ignore-this: 5e1d5b06d47a14dd6afad38416dcca55166a3c672f9092076b1a3ade57182d3857157c234dc3cb4e
 ] 
[add (succeeding) test for issue2353
Ben Franksen <ben.franksen@online.de>**20200731204122
 Ignore-this: 25fa218665ac95f342d3125402b4a1a10102795a5b95bbda3eecfabde5a3a83d14d21b812c4f2813
 ] 
[add regression test for issue2659
Ben Franksen <ben.franksen@online.de>**20201020092510
 Ignore-this: 89a79b08fa58b153fe6f30e882ff1f03657e470dbedcacab0956d70678428cd96711aba5f2701ad
 ] 
[tests/record.sh: remove directories before creating them
Ben Franksen <ben.franksen@online.de>**20201020090850
 Ignore-this: afc159e959a50819e3165f18ea956606b241c436af8c95b3e4c90ee645a3fb0764f6db59d1e2e6e5
 ] 
[tests/record.sh: fix tests for bad patch names
Ben Franksen <ben.franksen@online.de>**20201020085643
 Ignore-this: 6ad082bdbccd9d60f7c57ed00ebec2acd279adee325cb7c50d0f429f348938a0b4f94f29af9c9e9c
  
 It turned out that we do have a test for bad patch names even for the case
 where an editor is invoked, they were just utterly broken i.e. they did not
 test what they claimed to. Using DARCS_EDITOR='cat -n' defeats the purpose
 as this adds line numbers, so the patch name will always be valid. Also, if
 there is nothing to record, the command always fails, regardless of whether
 the patch name is valid or not.
] 
[tests/conflict-fight-failure.sh: skip test if system has no time executable
Ben Franksen <ben.franksen@online.de>**20200928161327
 Ignore-this: 7bf53c02839db8f05f27b2c4f4c03e7afd2ad624dc322342fb26ee2cb2febaa24c3c4a0f9233803f
 ] 
[harness: add XDG_CACHE_HOME to the env file
Ben Franksen <ben.franksen@online.de>**20200928155444
 Ignore-this: 37a398cde086ba74a1b665796eaa9b227212d23688cb81257d6f5d30cd33ad069834f82975fe318e
 ] 
[remove an obsolete TODO comment
Ben Franksen <ben.franksen@online.de>**20201019115051
 Ignore-this: 59e55f0a37d55f2fdd7edb32b9d172cb7dc243f04620dd6be361b448e61a3e466f4992a71a62d481
 ] 
[add progress reporting to show dependencies command
Ben Franksen <ben.franksen@online.de>**20201019115005
 Ignore-this: df0ee0241971b85c3947b6851148ab785aa0bef6c9d60220f9f85c8fc40ea981939d77861c05c888
 ] 
[improve internal documentation in D.UI.Commands.ShowDependencies
Ben Franksen <ben.franksen@online.de>**20201019093907
 Ignore-this: fa155aa343d7d461070ec633af1d658d01ecf082965992a3af8ee42268035ab2c9064281df5169ec
  
 This hopefully makes it clearer how the algorithm works.
] 
[fix and improve help text for show dependencies
Ben Franksen <ben.franksen@online.de>**20201019084706
 Ignore-this: 4371e702bb927e68793879a8219b303c9fc1d0880cc53332b2bab073ce7dbfed423fd0c453c0e02d
 ] 
[D.UI.PatchHeader: add "error" prefix to bad patch name error messages
Ben Franksen <ben.franksen@online.de>**20201019083044
 Ignore-this: b3d7ead8b29137ac05222cbe4fedaf53ae3570445ce5eeea29f2e6fd0b5282708298767b76bcb2f7
  
 This makes it a bit clearer that the operation failed.
] 
[D.UI.PatchHeader: define is_badname in terms of just_a_badname
Ben Franksen <ben.franksen@online.de>**20201019082954
 Ignore-this: 720c9fb07128b1d53c2d2f15a9a95bb826a6d5f8a74fd1af2a267734c81b098e2d154908256ff053
 ] 
[resolve issue2659: check for bad patch name after invoking editor, too
Ben Franksen <ben.franksen@online.de>**20201019082812
 Ignore-this: b257b93a7a048f7f74b2b2bad6dbeb92e62d68d8ffe4ff5d53436e0efc57a94629c0041fc24e5029
 ] 
[resolve issue2658: show dependencies should only show direct dependencies
Ben Franksen <ben.franksen@online.de>**20201017171057
 Ignore-this: 37282380bbe8a48412aeac9a7c61ff3f99db4ddee3494cf78477750d3fbb68b5fd88375439ce81f6
  
 The code was written with that goal in mind, I just botched the way the
 direct and indirect dependencies are updated when a new dependency is found.
] 
[improve the prompt when asking for a long comment
Ben Franksen <ben.franksen@online.de>**20200816084814
 Ignore-this: 902d58609b5c372889ebe2e7a51593a4bfc2383f6b7d24446643f4acf5454bf7511b8c7043d40792
  
 We now ask whether they want to "add a" long comment or, if a prior log
 exists, "edit the" long comment.
] 
[resolve issue2654: amend --prompt-long-comment removes the long comment
Ben Franksen <ben.franksen@online.de>**20200816083927
 Ignore-this: 4d6cd4f31351b8dc8ad96efa5a683eda304c39cb3f5b6edd412b5c27934b5fc403da002f87296bc0
 ] 
[drop dependency on sandi and use base16-bytestring >= 1.0
Ben Franksen <ben.franksen@online.de>**20200918090300
 Ignore-this: f283ca1a743233b869b8f2afbd279b6096199a48b0b5a62b99ea300540ca7b36a251dba19d54b97c
  
 This was prompted by the announcement of base16-bytestring-1.0.0.0 which
 claims to give major performance improvements and a simpler API. As we use
 sandi only for base16 en/decoding and already depended on base16-bytestring
 in addition to that, this seemed like a logical step. It also turned out
 that the API of base16-bytestring fits our conventions better, in particular
 we can drop the separate pass that converts between upper and lower case,
 which should give us further performance improvement.
] 
[bump version to 2.16.3
Ben Franksen <ben.franksen@online.de>**20200906113526
 Ignore-this: ab8dd275dca3da611581aafddadcab34dfc007bedaaf71fa5d06f46a3d38f42804acff8b9acea0e6
 ] 
[remove dependency on split package
Ben Franksen <ben.franksen@online.de>**20200824105752
 Ignore-this: 80dcf05048af624778cfbb21ab7da6298938dc0a8a32f640e5ab79ccdf54b978c3c19bc65d8a2ba4
 ] 
[remove work-around for issue1824
Ben Franksen <ben.franksen@online.de>**20200824055549
 Ignore-this: b275df1f44c660b75c1dee801798d1a9bfe12aa401f279824ebfb38b54f9a34826b4c8748b759f04
  
 The underlying bug in ghc has been fixed a long time ago. Besides, the macro
 is no longer passed via command line but instead by including cabal_macros.h.
] 
[resolve issue2655: PACKAGE_VERSION is not defined
Ben Franksen <ben.franksen@online.de>**20200824053526
 Ignore-this: de5897e7e0fb5b33338cf490cdf669886dbb3a60e66b73c6f6af5d4ddafd0ab178065f0f62016b14
  
 This happens only if darcs is build with the -fcurl flag. The patch adapts
 src/hscurl.hs to use CURRENT_PACKAGE_VERSION and include the definition from
 "cabal_macros.h".
] 
[rollback "replace buildHook, haddockHook, and replHook with postConf"
Ben Franksen <ben.franksen@online.de>**20200815132031
 Ignore-this: 3f8255d2a10baf9c9c7f4fea00a5970f799c6e7d7f7d8882b01a3b8451c529b2dc1e2f9df386397c
  
 This was a mistake: with this change the Version.hs module will not be
 re-built when the repository changes.
] 
[work around cabal stupidity in Setup.hs
Ben Franksen <ben.franksen@online.de>**20200815121037
 Ignore-this: 6834dddda06e5567e28924c8b7e2a2fa5c0e7b6b3efb2fc194ed5d52e7b8fbaebaf58839b1c767c7
  
 Cabal insists that all files in extra-source-files must actually exist, even
 though only the cabal sdist command actually needs them.
] 
[TAG 2.16.2
Ben Franksen <ben.franksen@online.de>**20200819210622
 Ignore-this: 8aeca92b4f3d72a38b97ea681f4f87ea9f13e1a0abb37954596cbc64754cdaf4202fe95d848e9764
 ] 
> 


["work-around-cabal-stupidity-in-setup_hs.dpatch" (application/x-darcs-patch)]
["unnamed" (text/plain)]

.





_______________________________________________
darcs-devel mailing list
darcs-devel@osuosl.org
https://lists.osuosl.org/mailman/listinfo/darcs-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic