Hi all (and especially Dmitry), In reviewing the first patch in this bundle, I found a bug, for which I wrote a test (that passes before the fix) and a fix. Review would be appreciated.
David Mon Sep 29 10:19:48 EDT 2008 Dmitry Kurochkin <[EMAIL PROTECTED]> * Resolve issue1105: check if default options are valid. Mon Sep 29 10:22:05 EDT 2008 Dmitry Kurochkin <[EMAIL PROTECTED]> * Test for issue1105. Wed Oct 1 13:56:45 EDT 2008 David Roundy <[EMAIL PROTECTED]> * add test that overriding of defaults works right. Wed Oct 1 13:59:07 EDT 2008 David Roundy <[EMAIL PROTECTED]> * fix bug in 1105 fix that led to improper overrides of defaults The problem is illustrated in the tests/override-defaults.sh that I've recorded separately. We want conflicting defaults in ~/.darcs/defaults and _darcs/prefs/defaults to be resolved in favor of the default residing in _darcs/prefs/defaults.
New patches: [Resolve issue1105: check if default options are valid. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080929141948 Ignore-this: 17b4b27e31545689f21496f7fc9c9fe7 ] hunk ./src/Darcs/ArgumentDefaults.lhs 19 % Boston, MA 02110-1301, USA. \begin{code} -module Darcs.ArgumentDefaults ( get_default_flag, - ) where +module Darcs.ArgumentDefaults ( get_default_flags ) where import Control.Monad ( liftM, ) hunk ./src/Darcs/ArgumentDefaults.lhs 23 -import Data.Maybe ( catMaybes ) +import Data.Maybe ( catMaybes, listToMaybe, mapMaybe ) import Darcs.Arguments import Darcs.Repository.Prefs hunk ./src/Darcs/ArgumentDefaults.lhs 118 ones will take precedence. \begin{code} -get_default_flag :: String -> DarcsOption -> IO [DarcsFlag] -get_default_flag com flag = do +get_default_flags :: String -> [DarcsOption] -> [DarcsOption] -> [DarcsFlag] -> IO [DarcsFlag] +get_default_flags com com_opts all_opts already = do repo_defs <- default_content $ get_preflist "defaults" global_defs <- default_content $ get_global "defaults" hunk ./src/Darcs/ArgumentDefaults.lhs 122 - case get_flag_from repo_defs of - [] -> return $ get_flag_from global_defs - f -> return $ f - where - get_flag_from defs = - case gda com flag defs of - [] -> gda "ALL" flag defs - f -> f + return $ get_flags_from com com_opts all_opts already repo_defs ++ + get_flags_from com com_opts all_opts already global_defs hunk ./src/Darcs/ArgumentDefaults.lhs 125 -gda :: String -> DarcsOption -> [(String,String,String)] -> [DarcsFlag] -gda com opt all_defs = gda' $ filter (\ (c,_,_)-> c == com) all_defs - where gda' defs = concatMap (choose_option opt) defs - choose_option (DarcsNoArgOption _ fls c _) (_,f,d) +get_flags_from :: String -> [DarcsOption] -> [DarcsOption] -> [DarcsFlag] -> [(String,String,String)] -> [DarcsFlag] +get_flags_from com com_opts all_opts already defs = + options_for com_defs com_opts com_opts ++ + options_for all_defs com_opts all_opts + where com_defs = filter (\ (c,_,_) -> c == com) defs + all_defs = filter (\ (c,_,_) -> c == "ALL") defs + options_for d o ao = concatMap (find_option o ao already) d + +find_option :: [DarcsOption] -> [DarcsOption] -> [DarcsFlag] -> (String,String,String) -> [DarcsFlag] +find_option opts all_opts already (c, f, d) = + if null $ mapMaybe choose_option all_opts + then error $ "Bad default option: command '"++c++"' has no option '"++f++"'." + else concat $ mapMaybe choose_option opts + where choose_option (DarcsNoArgOption _ fls o _) + | o `elem` already = Just [] | f `elem` fls = if null d hunk ./src/Darcs/ArgumentDefaults.lhs 141 - then [c] - else error $ "Bad default option: command '"++com + then Just [o] + else error $ "Bad default option: '"++f ++"' takes no argument, but '"++d ++"' argument given." hunk ./src/Darcs/ArgumentDefaults.lhs 145 - choose_option (DarcsArgOption _ fls c _ _) (_,f,d) + choose_option (DarcsArgOption _ fls o _ _) + | o `isin` already = Just [] | f `elem` fls = if null d hunk ./src/Darcs/ArgumentDefaults.lhs 148 - then error $ "Bad default option: command '"++com + then error $ "Bad default option: '"++f ++"' requires an argument, but no " ++"argument given." hunk ./src/Darcs/ArgumentDefaults.lhs 151 - else [c d] - choose_option (DarcsMultipleChoiceOption os) p = - concatMap (\o -> choose_option o p) os - choose_option _ _ = [] + else Just [o d] + choose_option (DarcsMultipleChoiceOption os) + | os `arein` already = Just [] + | otherwise = listToMaybe $ mapMaybe choose_option os + choose_option _ = Nothing default_content :: IO [String] -> IO [(String,String,String)] default_content = liftM (catMaybes . map (doline.words)) hunk ./src/Darcs/Arguments.lhs 22 {-# OPTIONS_GHC -cpp #-} #include "gadts.h" module Darcs.Arguments ( DarcsFlag( .. ), isa, isAnAbsolute, isAnAbsoluteOrStd, flagToString, + isin, arein, definePatches, defineChanges, fixFilePath, fixFilePathOrStd, fixUrl, fixSubPaths, areFileArgs, hunk ./src/Darcs/Arguments.lhs 299 AbsoluteOrStdContent s -> f == x s _ -> False +isin :: (String->DarcsFlag) -> [DarcsFlag] -> Bool +f `isin` fs = any (`isa` f) fs + +arein :: [DarcsOption] -> [DarcsFlag] -> Bool +(DarcsNoArgOption _ _ f _ : dos') `arein` fs + = f `elem` fs || dos' `arein` fs +(DarcsArgOption _ _ f _ _ : dos') `arein` fs + = f `isin` fs || dos' `arein` fs +(DarcsAbsPathOption _ _ f _ _ : dos') `arein` fs + = any (`isAnAbsolute` f) fs || dos' `arein` fs +(DarcsAbsPathOrStdOption _ _ f _ _ : dos') `arein` fs + = any (`isAnAbsoluteOrStd` f) fs || dos' `arein` fs +(DarcsOptAbsPathOption _ _ _ f _ _ : dos') `arein` fs + = any (`isAnAbsolute` f) fs || dos' `arein` fs +(DarcsMultipleChoiceOption os: dos') `arein` fs + = os `arein` fs || dos' `arein` fs +[] `arein` _ = False + data DarcsOption = DarcsArgOption [Char] [String] (String->DarcsFlag) String String | DarcsAbsPathOption [Char] [String] (AbsolutePath -> DarcsFlag) String String hunk ./src/Darcs/Commands.lhs 53 import Darcs.External ( viewDoc ) import Darcs.RepoPath ( AbsolutePath, getCurrentDirectory, rootDirectory ) import Darcs.Utils ( formatPath, putStrLnError ) -import Darcs.ArgumentDefaults ( get_default_flag ) +import Darcs.ArgumentDefaults ( get_default_flags ) import Darcs.Match ( checkMatchSyntax ) import Printer ( text, Doc, putDocLn ) import URL ( setDebugHTTP, setHTTPPipelining ) hunk ./src/Darcs/Commands.lhs 130 run_the_command cmd args cs = either fail rtc $ disambiguate_commands cs cmd args where - rtc (CommandOnly c, as) = run_command Nothing c as + rtc (CommandOnly c, as) = run_command Nothing c as all_opts rtc (SuperCommandOnly c, as) = run_raw_supercommand c as hunk ./src/Darcs/Commands.lhs 132 - rtc (SuperCommandSub c s, as) = run_command (Just c) s as + rtc (SuperCommandSub c s, as) = run_command (Just c) s as all_opts + all_opts = concatMap get_opts cs + get_opts (Command_data c) = let (o1, o2) = command_alloptions c + in o1 ++ o2 + get_opts _ = [] \end{code} \input{Darcs/Arguments.lhs} hunk ./src/Darcs/Commands.lhs 284 \end{comment} \begin{code} -run_command :: Maybe DarcsCommand -> DarcsCommand -> [String] -> IO () +run_command :: Maybe DarcsCommand -> DarcsCommand -> [String] -> [DarcsOption] -> IO () hunk ./src/Darcs/Commands.lhs 286 -run_command _ _ args -- Check for "dangerous" typoes... +run_command _ _ args _ -- Check for "dangerous" typoes... | "-all" `elem` args = -- -all indicates --all --look-for-adds! fail $ "Are you sure you didn't mean -" ++ "-all rather than -all?" hunk ./src/Darcs/Commands.lhs 289 -run_command msuper cmd args = do +run_command msuper cmd args all_opts = do cwd <- getCurrentDirectory let options = opts1 ++ opts2 (opts1, opts2) = command_options cwd cmd hunk ./src/Darcs/Commands.lhs 302 command_prereq cmd opts file_args <- command_get_arg_possibilities cmd putStrLn $ get_options_options (opts1++opts2) ++ unlines file_args - | otherwise -> consider_running msuper cmd (addVerboseIfDebug opts) extra + | otherwise -> consider_running msuper cmd (addVerboseIfDebug opts) extra all_opts (_,_,ermsgs) -> do fail $ chomp_newline(unlines ermsgs) where addVerboseIfDebug opts | DebugVerbose `elem` opts = Debug:Verbose:opts | otherwise = opts hunk ./src/Darcs/Commands.lhs 308 consider_running :: Maybe DarcsCommand -> DarcsCommand - -> [DarcsFlag] -> [String] -> IO () -consider_running msuper cmd opts old_extra = do + -> [DarcsFlag] -> [String] -> [DarcsOption] -> IO () +consider_running msuper cmd opts old_extra all_opts = do cwd <- getCurrentDirectory location <- command_prereq cmd opts case location of hunk ./src/Darcs/Commands.lhs 317 formatPath ("darcs " ++ super_name msuper ++ command_name cmd) ++ " here.\n\n" ++ complaint Right () -> do - specops <- add_command_defaults cmd opts + specops <- add_command_defaults cmd opts all_opts extra <- (command_argdefaults cmd) specops cwd old_extra when (Disable `elem` specops) $ fail $ "Command "++command_name cmd++" disabled with --disable option!" hunk ./src/Darcs/Commands.lhs 361 -- exitWith postHookExitCode -add_command_defaults :: DarcsCommand -> [DarcsFlag] -> IO [DarcsFlag] -add_command_defaults cmd already = - acd (command_name cmd) already (opts1 ++ opts2) - where (opts1, opts2) = command_alloptions cmd - -acd :: String -> [DarcsFlag] -> [DarcsOption] -> IO [DarcsFlag] -acd _ flags [] = return flags -acd c flags (dao:dos) - = case dao of - DarcsNoArgOption _ _ f _ - -> if f `elem` flags then acd c flags dos - else do flags' <- get_default_flag c dao - acd c (flags++flags') dos - DarcsArgOption _ _ f _ _ - -> if f `isin` flags then acd c flags dos - else do flags' <- get_default_flag c dao - acd c (flags++flags') dos - DarcsAbsPathOption _ _ f _ _ -> if any (`isAnAbsolute` f) flags - then acd c flags dos - else do flags' <- get_default_flag c dao - acd c (flags++flags') dos - DarcsAbsPathOrStdOption _ _ f _ _ -> if any (`isAnAbsoluteOrStd` f) flags - then acd c flags dos - else do flags' <- get_default_flag c dao - acd c (flags++flags') dos - DarcsOptAbsPathOption _ _ _ f _ _ -> if any (`isAnAbsolute` f) flags - then acd c flags dos - else do flags' <- get_default_flag c dao - acd c (flags++flags') dos - DarcsMultipleChoiceOption os - -> if os `arein` flags then acd c flags dos - else do flags' <- get_default_flag c dao - acd c (flags++flags') dos - where f `isin` fs = any (`isa` f) fs - (DarcsNoArgOption _ _ f _ : dos') `arein` fs - = f `elem` fs || dos' `arein` fs - (DarcsArgOption _ _ f _ _ : dos') `arein` fs - = f `isin` fs || dos' `arein` fs - (DarcsAbsPathOption _ _ f _ _ : dos') `arein` fs - = any (`isAnAbsolute` f) fs || dos' `arein` fs - (DarcsAbsPathOrStdOption _ _ f _ _ : dos') `arein` fs - = any (`isAnAbsoluteOrStd` f) fs || dos' `arein` fs - (DarcsOptAbsPathOption _ _ _ f _ _ : dos') `arein` fs - = any (`isAnAbsolute` f) fs || dos' `arein` fs - (DarcsMultipleChoiceOption os: dos') `arein` fs - = os `arein` fs || dos' `arein` fs - [] `arein` _ = False +add_command_defaults :: DarcsCommand -> [DarcsFlag] -> [DarcsOption] -> IO [DarcsFlag] +add_command_defaults cmd already all_opts = do + let (opts1, opts2) = command_alloptions cmd + defaults <- get_default_flags (command_name cmd) (opts1 ++ opts2) all_opts already + return $ already ++ defaults get_options_options :: [OptDescr DarcsFlag] -> String get_options_options [] = "" [Test for issue1105. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080929142205 Ignore-this: 5b7c2f7d270ab614eb1294566048a586 ] addfile ./tests/issue1105.sh hunk ./tests/issue1105.sh 1 +#!/usr/bin/env bash +set -ev + +## The builtin ! has the wrong semantics for not. +not () { "$@" && exit 1 || :; } + +rm -rf temp +mkdir temp +cd temp +darcs init +darcs changes + +echo changes summary > _darcs/prefs/defaults +darcs changes +echo changes summary arg > _darcs/prefs/defaults +not darcs changes +echo ALL summary > _darcs/prefs/defaults +darcs changes +echo ALL summary arg > _darcs/prefs/defaults +not darcs changes + +echo changes last 10 > _darcs/prefs/defaults +darcs changes +echo changes last > _darcs/prefs/defaults +not darcs changes +echo ALL last 10 > _darcs/prefs/defaults +darcs changes +echo ALL last > _darcs/prefs/defaults +not darcs changes + +echo changes author me > _darcs/prefs/defaults +not darcs changes +echo ALL author me > _darcs/prefs/defaults +darcs changes +echo ALL unknown > _darcs/prefs/defaults +not darcs changes + +cd .. +rm -rf temp [add test that overriding of defaults works right. David Roundy <[EMAIL PROTECTED]>**20081001175645 Ignore-this: aedfd923676b1fa35c25c72abb88c8f3 ] addfile ./tests/overriding-defaults.sh hunk ./tests/overriding-defaults.sh 1 +#!/usr/bin/env bash +set -ev + +## The builtin ! has the wrong semantics for not. +not () { "$@" && exit 1 || :; } + +rm -rf temp +mkdir temp +cd temp +darcs init +darcs setpref test false +darcs record --no-test -a -m 'add failing test' + +# should pass with --no-test +darcs check --no-test + +# should fail when test is run +not darcs check --test + +# should pass with --no-test in defaults +echo check --no-test > _darcs/prefs/defaults +darcs check +not darcs check --test + +# should fail with --test in defaults +echo check --test > _darcs/prefs/defaults +not darcs check +darcs check --no-test + +# check global defaults +cp ~/.darcs/defaults defaults.backup +rm _darcs/prefs/defaults + +# --no-test works in global defaults +echo check --no-test > ~/.darcs/defaults +darcs check +not darcs check --test + +# --test works in global defaults +echo check --test > ~/.darcs/defaults +not darcs check +darcs check --no-test + +# Verify that per-repository defaults override global defaults + +# --no-test in repository defaults overrides global --test +echo check --test > ~/.darcs/defaults +echo check --no-test > _darcs/prefs/defaults +darcs check +not darcs check --test + +# --test in repository defaults overrides global --no-test +echo check --no-test > ~/.darcs/defaults +echo check --test > _darcs/prefs/defaults +not darcs check +darcs check --no-test + +cp defaults.backup ~/.darcs/defaults + +cd .. +rm -rf temp [fix bug in 1105 fix that led to improper overrides of defaults David Roundy <[EMAIL PROTECTED]>**20081001175907 Ignore-this: 8413d2596f97076ccb096900585f0c62 The problem is illustrated in the tests/override-defaults.sh that I've recorded separately. We want conflicting defaults in ~/.darcs/defaults and _darcs/prefs/defaults to be resolved in favor of the default residing in _darcs/prefs/defaults. ] hunk ./src/Darcs/ArgumentDefaults.lhs 122 get_default_flags com com_opts all_opts already = do repo_defs <- default_content $ get_preflist "defaults" global_defs <- default_content $ get_global "defaults" - return $ get_flags_from com com_opts all_opts already repo_defs ++ - get_flags_from com com_opts all_opts already global_defs + let repo_flags = get_flags_from com com_opts all_opts already repo_defs + global_flags = get_flags_from com com_opts all_opts + (already++repo_flags) global_defs + return $ repo_flags ++ global_flags get_flags_from :: String -> [DarcsOption] -> [DarcsOption] -> [DarcsFlag] -> [(String,String,String)] -> [DarcsFlag] get_flags_from com com_opts all_opts already defs = Context: [fix bugs in second issue1110 test. David Roundy <[EMAIL PROTECTED]>**20081001171147 Ignore-this: 2757852f2b599cfd55936cccd1b83b5f ] [generate a tidier hoogle frame, add required files, simplify framed doc generation Simon Michael <[EMAIL PROTECTED]>**20080930204518 Ignore-this: e60b456f1fdd001b5ae456f9aae05999 ] [haddock documenation for DateTester [EMAIL PROTECTED] [haddock documentation for DateMatcher [EMAIL PROTECTED] [Add another test case for issue1110. Eric Kow <[EMAIL PROTECTED]>**20080930220818] [make installdocs should not install TeX intermediaries. Trent W. Buck <[EMAIL PROTECTED]>**20080930030315 I'm unilaterally classing the DVI and PostScript versions as "intermediaries" to the PDF version, and only installing the latter. ] [Add test cases for issue1043. Eric Kow <[EMAIL PROTECTED]>**20080930105032 There are two known variants, one of which was fixed by resolve issue1043: fix bug in mergeAfterConflicting. ] [resolve issue1110: fix get --hashed. David Roundy <[EMAIL PROTECTED]>**20080929175725 Ignore-this: d0aaaa26583dd3ab37bedfc738fb6117 ] [add test that show bug works right. David Roundy <[EMAIL PROTECTED]>**20080929152909 Ignore-this: 4829e300015120adeed108079324e5e2 ] [Add a test case for issue1110. Eric Kow <[EMAIL PROTECTED]>**20080929151743] [Tone down unnecessarily scary language when cancelling Simon Michael <[EMAIL PROTECTED]>**20080928004013 Ignore-this: c5940d14099953b7bc963c70591739d1 ] [darcshoogle script and emacs integration example Simon Michael <[EMAIL PROTECTED]>**20080927210609 Ignore-this: 93d5a0ff269d314d32f213dfbe4325be ] [Fix doubled verb `be' in documentation on apply posthooks in _darcs/prefs/defaults. Taylor R Campbell <[EMAIL PROTECTED]>**20080928200954] [the issue864 test was misnamed Simon Michael <[EMAIL PROTECTED]>**20080928231942 Ignore-this: a0b643bf0abc6f4b6237e5683e9f6dad ] [add tests for pull --union and --intersection. David Roundy <[EMAIL PROTECTED]>**20080929150711 Ignore-this: 356f506f79ca89a2d1246d068aaa8b2b --intersection fails, which is issue1111. ] [add more output to URL bug message. David Roundy <[EMAIL PROTECTED]>**20080929145544 Ignore-this: 868e0ba5819dba2a4f5b8819080e9407 I triggered this bug a few times, but once I added the extra output, I wasn't able to do it again. So I'm leaving the extra information in the bug message so if someone else runs into it, we can more easily track down the issue. ] [Make UglyFileName.super_name work with "/foo" paths. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080926223753 Ignore-this: 6e4abb72087272ed03e5839a5420f82f ] [Restore 'simplify patches in rollback'. Eric Kow <[EMAIL PROTECTED]>**20080926225429] [Rollback 'simplify patches in rollback' Eric Kow <[EMAIL PROTECTED]>**20080926225411 I made the mistake of pulling this into stable despite a darcs 2.1 feature freeze. rolling back: Tue Sep 23 16:06:19 BST 2008 David Roundy <[EMAIL PROTECTED]> * simplify patches in rollback. ] [Restore issue27 patches. Eric Kow <[EMAIL PROTECTED]>**20080926222522 rolling back: Fri Sep 26 23:01:19 BST 2008 Eric Kow <[EMAIL PROTECTED]> * Resolve issue1102: recognise but do not generate patch log 'junk'. ] [Resolve issue1102: recognise but do not generate patch log 'junk'. Eric Kow <[EMAIL PROTECTED]>**20080926220119 This is a partial rollback of the two issue27 patches below. The patches exist to (a) generate patch log 'junk' and (b) hide such junk from users' view. Because of a feature freeze, we do not want junk generation to be part of darcs 2.1; however, we do anticipate junk-generation being part of subsequent versions of darcs. To avoid users being confused by this future junk, we only rollback the junk-generation part, retaining the junk-hiding part. rolling back: Wed Sep 17 16:46:57 BST 2008 David Roundy <[EMAIL PROTECTED]> * resolve issue27: add junk to patch identifiers. Wed Sep 17 18:09:13 BST 2008 David Roundy <[EMAIL PROTECTED]> * hokey fix to allow unit tests to generate random input. ] ["make api-doc-frames" converts api docs to a frame layout Simon Michael <[EMAIL PROTECTED]>**20080927091919 Ignore-this: 2a600aefe4399d17a4c2f14ea1cec350 ] [hoogleindex no longer depends on api-doc dir Simon Michael <[EMAIL PROTECTED]>**20080927090139 Ignore-this: 3a29b9bbd1ba1cdbccea03f4c04727c8 ] [make hoogle targets more robust Simon Michael <[EMAIL PROTECTED]>**20080927083125 Ignore-this: 2aac81020d3855ce8ffc9c4deef3e949 ] [fix makefile indentation Simon Michael <[EMAIL PROTECTED]>**20080927020444 Ignore-this: 847051698f40dc1fd03a8e1db93ff7a1 ] ["make hoogleweb" configures the hoogle web interface in hoogle/ Simon Michael <[EMAIL PROTECTED]>**20080927015904 Ignore-this: dcc4e2526b3c92859ccf9a6f1cb57ad2 The hoogle index target is now "make hoogleindex". Requires the hoogle source tree (perhaps patched to configure result link urls). Tested on GNU/Linux with hoogle 4.0.0.5. ] [make haddock less noisy Simon Michael <[EMAIL PROTECTED]>**20080927012958 Ignore-this: 84921fbd34b1f7345dec2571c3ec32ae ] [answer darcs-doc question: no, that would be wrong. David Roundy <[EMAIL PROTECTED]>**20080926220229 Ignore-this: 419afd7bd9832e06d3dca45880276296 ] [haddockification of IsoDate [EMAIL PROTECTED] Docstrings by Eric Kow ] [resolve issue1043: fix bug in mergeAfterConflicting. David Roundy <[EMAIL PROTECTED]>**20080926211928 Ignore-this: 1416605539b44b32c18b348f3b4f459d This is moderately deep in the internals of the darcs-2 conflict handling code. I had made an assumption that turned out not to be correct. I fix this by switching to use a variant of the commute function that doesn't allow conflicting patches to commute, which I think should restore correctness here. It's a scary bug, though, and if anyone were to create a moderately small test case, I'd be extremely grateful. ] [Roll back Dmitry's drop_dotdot change in Darcs.Patch.Filename. David Roundy <[EMAIL PROTECTED]>**20080926145013 Ignore-this: d432374bbbe4cc006a26deeb3d15c3ec The key here is that he didn't want to change the internal patch-handling code, just the use of drop_dotdots in Darcs.RepoPath, which now uses UglyFileName for this purpose (which has Dmitry's code in it). rolling back: Thu Sep 25 13:57:11 EDT 2008 Dmitry Kurochkin <[EMAIL PROTECTED]> * Make FileName.drop_dotdot work with absolute paths. M ./src/Darcs/Patch/FileName.lhs -7 +12 ] [split FileName into two modules. David Roundy <[EMAIL PROTECTED]>**20080926144501 Ignore-this: dbb6650c6300745101bacd41bef431f0 This duplicates some code, and makes a Darcs.Patch.FileName into the module (which FileName originally was) for handling paths within a darcs repository. Code that had gotten agglomerated into this module is now in UglyFileName.lhs, which I hope to eliminate. I went through the imports of FileName and tried to separate them between those that use FileName to deal with paths in a repository and those that use the extra functions what were added there, and those that abuse FileName to handle other sorts of paths (absolute paths, in particular). ] ["make api-doc-with-source" generates docs with links to colourised source code Simon Michael <[EMAIL PROTECTED]>**20080925213719 Ignore-this: c16b935c727838c606fa5daa29ccc41f This works with current hs-colour on GNU/Linux but may not be portable; I made it a separate make target to start with. Only per-module source links are enabled until there is a fix for the haddock/hoogle issue noted. ] [issue27.sh is still sporadically buggy. David Roundy <[EMAIL PROTECTED]>**20080926134948 Ignore-this: ec2bf07485a6dc0fda83c786a7982df1 ] [add test that fails sporadically on nfs under ghc 6.6. David Roundy <[EMAIL PROTECTED]>**20080925202350 Ignore-this: 8aae9073ea132935f1951f7e187bc2ea I haven't time to track this down, but it doesn't look like a bug in the test script. This was the issue27 test. ] [Move issue1078 test from bugs to tests. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080925180103 Ignore-this: f735ee2e36bdf8f446cab61d1f7ac334 ] [Resolve issue1078: make ioAbsolute work with symbolic links in file paths. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080925175726 Ignore-this: af4cf0bd842b9aae5e2fffe4500a1aa5 ] [Make FileName.drop_dotdot work with absolute paths. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080925175711 Ignore-this: 46c625a35bb11bea19b0749756d1a225 ] [Force hidden conflicts test to use the darcs-2 format. Eric Kow <[EMAIL PROTECTED]>**20080925175251 Move it to the tests directory because it passes if we do this. We consider this to be a bug that is solved by using the darcs 2 format. ] [Use init+pull instead of get in issue27 test. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080925142606 Ignore-this: e8be404b0ccbc56d8f547b11b6e58c76 This would hopefully make it pass on NFS. ] [Exceptions to GPL granted as of 2008-09-11. Eric Kow <[EMAIL PROTECTED]>**20080911120758] [Update manual to reflect --darcs-2 default. Eric Kow <[EMAIL PROTECTED]>**20080925142538] [resolve issue1003: don't sever transfer-mode connection on IO error. David Roundy <[EMAIL PROTECTED]>**20080925145150 Ignore-this: 3aecb8cffa83170847b0a2452c5763f0 There was a bug in Ssh, in which unless the very first file we access on a given server was present, we severed the connection. This fixes that bug. ] [preliminary hoogle indexing Simon Michael <[EMAIL PROTECTED]>**20080925084432 If haddock and hoogle are installed, "make hoogle" generates api-doc/main.hoo. Use it at the command-line like so: hoogle --data=api-doc/main.hoo something ] [simplify patches in rollback. David Roundy <[EMAIL PROTECTED]>**20080923150619 Ignore-this: fd3d327f800e2f1799ec97bc4524f612 This makes it nicer to incrementally rollback changes from one large change: you aren't prompted for changes that have already been rolled back. ] [hokey fix to allow unit tests to generate random input. David Roundy <[EMAIL PROTECTED]>**20080917170913 Ignore-this: 31e847e82eef741f4c6cc857fd79a245 A nicer fix would be to move namepatch and patchinfo into some sort of random-number monad rather than leaving them in IO and using unsafePerformIO in the example-generation scripts. ] [resolve issue27: add junk to patch identifiers. David Roundy <[EMAIL PROTECTED]>**20080917154657 Ignore-this: b91ab6f6e05e0fda25488fa51653b741 ] [TAG 2.1.0pre2 Eric Kow <[EMAIL PROTECTED]>**20080925081049 Ignore-this: 99b608f2401e8f14358e121e9b95e211 ] [Bump version number to 2.1.0pre2. Eric Kow <[EMAIL PROTECTED]>**20080925081019 Ignore-this: 9d1aa701ce0b8cfc87007216207166fe It was initially planned that the upcoming release be called 2.0.3, but since we are initializing darcs-2 format repositories by default, we are bumping the version number higher. ] [ChangeLog entries for 2.1.0pre2 Eric Kow <[EMAIL PROTECTED]>**20080925080141 Ignore-this: 1b1e57d425f8528e00e03e7b4a23ad78 ] [ChangeLog entries: more stuff to ignore Eric Kow <[EMAIL PROTECTED]>**20080925080129 Ignore-this: 45362ed8bbabdacf222928cba6756aa4 ] [More readable length comparison. Eric Kow <[EMAIL PROTECTED]>**20080924142304] [Haddock some primitive patch functions. Eric Kow <[EMAIL PROTECTED]>**20080924142157] [resolve issue805: make darcs-2 format the default for new repositories. David Roundy <[EMAIL PROTECTED]>**20080924141158 Ignore-this: e7952cb0cdc3124ffa50b0775822000e ] [make flagsToPristine obey repository format. David Roundy <[EMAIL PROTECTED]>**20080924135319 Ignore-this: 6038a7d05126af9e446406022ca608a0 This reduces the number of places we set the default repository format (hopefully to one?). ] [move issue27 test to bugs directory, since it fails. David Roundy <[EMAIL PROTECTED]>**20080923215936 Ignore-this: 4556b273a9f8728de8ac855aae8442d0 ] [Add a test case for issue1078 Eric Kow <[EMAIL PROTECTED]>**20080923081757 Ignore-this: 33f7f1f63c7b707ff148531f8229ceb0 ] [give more useful failure message in HTTP for proxy errors. David Roundy <[EMAIL PROTECTED]>**20080923153400 Ignore-this: 3d6d204da399175eedf68bedfed8e504 ] [HTTP: detect proxy server (failing if we want one) Eric Kow <[EMAIL PROTECTED]>**20080923123539 The HTTP package has proxy server support, but putting it to use seems to be complicated. Since fetchUrl seems to be used only in optional situations, it seems safe to just return an error message (as opposed to waiting around for a timeout). ] [fix filepath code to work with FilePath package that preceded filepath. [EMAIL PROTECTED] Ignore-this: 6aa0d8b357b0f966403ebe5965dcdec4 ] [fix type witness bug in createRepository. David Roundy <[EMAIL PROTECTED]>**20080922234321 Ignore-this: 2c50393ca25740ce3e210dd24fe8d8fa ] [Resolve conflict between replace patches in Darcs.Arguments Eric Kow <[EMAIL PROTECTED]>**20080922202647] [Resolve issue53: check for windows filename validity in darcs add/mv. Eric Kow <[EMAIL PROTECTED]>**20080922172004] [Use --reserved-ok to allow a file with ':' in it in tests. Eric Kow <[EMAIL PROTECTED]>**20080922171519 It's likely that this test will just fail under Windows and we will have to disable it. ] [Add test for issue53. Eric Kow <[EMAIL PROTECTED]>**20080922152256] [Add --reserved-ok flag for darcs add and mv. Eric Kow <[EMAIL PROTECTED]>**20080922141532 This is just the flag, not the actual effect. ] [Check for filepath package in configure. Eric Kow <[EMAIL PROTECTED]>**20080922140520] [simplify fix for issue1041. David Roundy <[EMAIL PROTECTED]>**20080922233019 Ignore-this: a3002e9bba5271790c62ac634e08f472 It turns out that the simple solution works once a bug in the conflict-doppleganger test was fixed! ] [translate conflict-doppleganger test to bash. David Roundy <[EMAIL PROTECTED]>**20080922232839 Ignore-this: de2a050022dea4251cdc2cc5e8b55c8c ] [Translate mark-conflicts test into shell. Eric Kow <[EMAIL PROTECTED]>**20080922224858 It was failing because it expects init to be completely silent. Since we were going to tweak it anyway, we might as well simplify the script. ] [Stop calling the darcs-2 format experimental. Eric Kow <[EMAIL PROTECTED]>**20080922221024] [Move repository creation to Darcs.Repository. Eric Kow <[EMAIL PROTECTED]>**20080922215913 This is just to avoid importing the DarcsRepo and HashedRepo code in higher level code. ] [remove test_unit from disttest to speed things up. David Roundy <[EMAIL PROTECTED]>**20080922225355 Ignore-this: b3b21bcd3fa72c8d602b5bd0e601021a The unit test is only affected by very rarely-modified code, and it's overkill to run it absolutely every single time we push code (particularly as it sometimes takes exponentially long to generate its test cases). ] [resolve issue1041: add test for issue1041. David Roundy <[EMAIL PROTECTED]>**20080922183320 Ignore-this: 5a6330158d16a24d45f58268c0edb823 Note that this issue was actually resolved by Vlad Dogaru. I just wrote the test. ] [Get: if URL is invalid, direcotry is not created (#1041) Vlad Dogaru <[EMAIL PROTECTED]>**20080922171705] [Replace --without-docs with less ambiguous --without-manual (issue1082). Trent W. Buck <[EMAIL PROTECTED]>**20080922002602 It's confusing for ./configure --without-docs to complain about missing haddock. ] [Documentation for --allow-unrelated-repos. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080922121122 Ignore-this: d2630826313c8aeb00acb6853030c22d ] [Rename --ignore-unrelated-repos to --allow-unrelated-repos. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080922120727 Ignore-this: a5990f1741c867316a948e6721118651 ] [fix bug I introduced into issue1039 test. David Roundy <[EMAIL PROTECTED]>**20080921213043 Ignore-this: 5b3c6476abae6bb050be014555d05bbe ] [Fix hang after a user input error (for example, EOF). Judah Jacobson <[EMAIL PROTECTED]>**20080918163017] [replace consRLSealed with a more general mapFlipped. David Roundy <[EMAIL PROTECTED]>**20080921185241 Ignore-this: c28f73f165254582cba6a14ba6ce93 ] [make issue1039 fix allow small dissimilar repositories. David Roundy <[EMAIL PROTECTED]>**20080921184515 Ignore-this: 918a09df18ef48c649c1bfaa866d6176 ] [revert refactor that breaks type witnesses. David Roundy <[EMAIL PROTECTED]>**20080921182331 Ignore-this: dd692cffc1a238d6726448bacfe9cacc ] [Add '--ignore-unrelated-repos' option to disable unrelated repositories check. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919152631] [Resolve issue1039: detect seemingly unrelated repositories when doing push, pull and send. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919144553] [Refactor in pull_cmd. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919135349 Ignore-this: e26a489a7a53aeaba544ae5ad0006700 ] [Test for issue1039. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919153011] [manual: add an example of record --pipe prompts similar to tag --pipe docs Simon Michael <[EMAIL PROTECTED]>**20080918205353] [user manual corrections regarding what record and tag --pipe prompt for Simon Michael <[EMAIL PROTECTED]>**20080918204500] [clarify the short help for --pipe Simon Michael <[EMAIL PROTECTED]>**20080918193717] [Spaces in Darcs.Arguments. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919150440] [Spaces in Darcs.Commands.Send. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919150139] [Spaces in Darcs.Commands.Pull. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919145812] [Spaces in Darcs.Commands.Push. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919145553] [Print "We have the following patches to send:" only when we really have somthing to send. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919114229] [Use gmakeisms for prettier output. Trent W. Buck <[EMAIL PROTECTED]>**20080919071358] [Add test for issue27. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080918135923] [fix changes.pl test (translating to bash) David Roundy <[EMAIL PROTECTED]>**20080917182432 Ignore-this: 5f8bc7e1f9eadc073402a935142281c4 This test made assumptions such as that darcs wouldn't ever add a long comment to its internal representation of changes, which are now broken. ] [TAG 2.0.3pre1 Eric Kow <[EMAIL PROTECTED]>**20080918023645] [Bump version number to 2.0.3pre1. Eric Kow <[EMAIL PROTECTED]>**20080918023634] [Canonize Florent Becker, Matthias Killian, Trent Buck, Thorkil Naur Eric Kow <[EMAIL PROTECTED]>**20080918020453] [ChangeLog entries for darcs 2.0.3pre1 again. Eric Kow <[EMAIL PROTECTED]>**20080918020442] [Re-enable haskeline by default. Require haskeline>=0.3.1 which fixes issue1050. Judah Jacobson <[EMAIL PROTECTED]>**20080917194007] [Throw an error when haskeline returns an EOF/EOT. Judah Jacobson <[EMAIL PROTECTED]>**20080917180124] [Disable more record_editor tests under Windows. Eric Kow <[EMAIL PROTECTED]>**20080917192602 It still appears to be failing under Cygwin. ] [add a couple of tests of unrecord. David Roundy <[EMAIL PROTECTED]>**20080917133738] [add a few (passing) tests of pending handling in obliterate and unrecord. David Roundy <[EMAIL PROTECTED]>**20080917130423] [Use putStrLn for "Cancelled." message. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080916205014] [remove now-unused is_addrmfile and is_addrmdir. David Roundy <[EMAIL PROTECTED]>**20080916173136] [resolve issue1012: it seems to be fixed by the fix for issue709. David Roundy <[EMAIL PROTECTED]>**20080916173116] [resolve issue885: fix patchSetToRepository to work with hashed. David Roundy <[EMAIL PROTECTED]>**20080916173030] [resolve issue709: avoid adding changes to pending in rmpend when possible. David Roundy <[EMAIL PROTECTED]>**20080916173002] [first-stage fix for issue709. David Roundy <[EMAIL PROTECTED]>**20080916170333 Here I fix the bug which leads to a corrupt pending being left, with a rmfile change but no hunk removing the contents. This doesn't fix issue709, since an incorrect pending is left, it's just no longer a corrupt pending (i.e. it's still got the rmfile, but if you record it there's no problem). ] [add new test that we don't do anything when repairing a clean repo. David Roundy <[EMAIL PROTECTED]>**20080916165437] [whitespace change in prepend. David Roundy <[EMAIL PROTECTED]>**20080916160425] [tiny refactor in Internal.lhs. David Roundy <[EMAIL PROTECTED]>**20080916155922] [simplify issue965 test (which took quite a while for me to figure out). David Roundy <[EMAIL PROTECTED]>**20080916152028] [make shell_harness print summary of passing tests when running bugs tests. David Roundy <[EMAIL PROTECTED]>**20080916145820] [trailing whitespace cleanup in Repository.Internal. David Roundy <[EMAIL PROTECTED]>**20080916142112] [Test for issue691. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080916111332] [Make match.pl test understand Windows dates. Eric Kow <[EMAIL PROTECTED]>**20080916011339 Windows does not abbreviate its timezones. ] [Disable some tests that don't work under Windows. Eric Kow <[EMAIL PROTECTED]>**20080916000912] [Translate get.pl test into shell. Eric Kow <[EMAIL PROTECTED]>**20080916000227 The original get.pl uses the Perl Cwd library, which seems not to work for purposes of this test under MSYS. ] [Resolve issue691: distinguish between NoArg and ReqArg in defaults parser. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080915224046] [Move get_default_flag type to definition. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080915220316] [reverse overly-invasive haddocking. David Roundy <[EMAIL PROTECTED]>**20080915110353] [In darcs send if POST fails try sendmail. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914234314] [Grammar in Darcs.Commands.Send. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914232923] [Print "Successfully sent patch bundle to" only when we really sent something. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914232905] [Fix overzealous escaping in haddock. Eric Kow <[EMAIL PROTECTED]>**20080915070926] [Haddock documentation for English.lhs [EMAIL PROTECTED] Docstrings by Eric Kow ] [Haddock documentation for PrintPatch [EMAIL PROTECTED] [Haddock documentation for Flags [EMAIL PROTECTED] [Haddock documentation for Motd [EMAIL PROTECTED] docstring by Eric Kow ] [Haddock string for TheCommands [EMAIL PROTECTED] Docstring by Eric Kow ] [Run testing in temp directories to avoid collosions, fail if DarcsURL header is not found. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914223930] [Use tempfile() UNLINK option to automatically remove temp files at exit. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914223827] [Coding style in upload.cgi. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914223751] [Stop after we found the first DarcsURL: in patch bundle. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914220421] [Spaces in upload.cgi. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080914220324] [Really allow pull.sh test to pass on Windows. Eric Kow <[EMAIL PROTECTED]>**20080914211458 It seems that these redirections cause an openBinaryFile failure under Windows. I do not yet understand why using different names makes a difference, but it could provide an interesting clue. ] [rewrite upload.cgi so it won't need any customization by default. David Roundy <[EMAIL PROTECTED]>**20080913171447 The downside is that it has to do a darcs get --lazy in order to check if the patch can be applied. If you define $target_repo, however, it doesn't need to do this (but then can only accept patches to a single locally-present repo). ] [when _darcs/prefs/post is present, use _darcs/prefs/post for To: header. David Roundy <[EMAIL PROTECTED]>**20080913171025] [sketchy documentation of _darcs/prefs/post David Roundy <[EMAIL PROTECTED]>**20080913115655] [ChangeLog entries for darcs 2.0.3pre1 Eric Kow <[EMAIL PROTECTED]>**20080914094144] [Disable amend-cancelling test under Cygwin. Eric Kow <[EMAIL PROTECTED]>**20080913213039] [Make binary.sh test more portable (avoid copying an exe). Eric Kow <[EMAIL PROTECTED]>**20080913212843 Under Windows, copying the exe file will result in an .exe extension being appended to the filename. This confuses the test. ] [set default upload.cgi to work on darcs-unstable. David Roundy <[EMAIL PROTECTED]>**20080913112227] [Improve upload.cgi. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912230953 - check if patch is valid before sending - use sendmail to send patches or drop to maildir ] [Spaces and punctuation in upload.cgi. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912230827] [fix problem in Darcs.URL refactor pointed out by Eric. David Roundy <[EMAIL PROTECTED]>**20080913104327] [Disable a pull.sh test under Windows. Eric Kow <[EMAIL PROTECTED]>**20080912224027 It relies on darcs not working if we chmod u-r a file. This seems to have little effect in Windows. ] [refactor Darcs.URL to eliminate use of Regexes. David Roundy <[EMAIL PROTECTED]>**20080912173611 The algorithms here are not tricky, and I find this easier to read. ] [change is_file to return false on [EMAIL PROTECTED]: David Roundy <[EMAIL PROTECTED]>**20080912173501] [clean up whitespace. David Roundy <[EMAIL PROTECTED]>**20080912150248] [fix manual for optional arguments. David Roundy <[EMAIL PROTECTED]>**20080912150231] [clean up whitespace. David Roundy <[EMAIL PROTECTED]>**20080912145708] [add test for new --output-auto-name feature. David Roundy <[EMAIL PROTECTED]>**20080912145648] [Spaces in Darcs.Commands.Send module. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912122223] [Make '--output-auto-name' accept optional directory argument. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912120516] [Add DarcsOptAbsPathOption for options with optional path argument. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912112458] [Refactor Darcs.Repository.Prefs.getCaches. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912055204] [Print warning when '--http-pipelining' option is used, but darcs is compiled without HTTP pipelining support. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912054253] [Do not download URL we have speculated before. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912053236] [Spaces and parentheses in URL module. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080912053000] [Coding style in Darcs.Arguments.network_options. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080911140710] [Resolve issue1054: --no-cache option to ignore patch caches. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080911140233] [Remove unused variable from configure.ac. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080911132107] [Comment in configure.ac. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080911115840] [Indentation fixes in configure.ac. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080911115117] [Formating and minor refactoring in URL.urlThread. Dmitry Kurochkin <[EMAIL PROTECTED]>**20080910061227] [insecure printfs - fix the two that I can currently hit Steve Cotton <[EMAIL PROTECTED]>**20080910230659] [TAG this version works. David Roundy <[EMAIL PROTECTED]>**20080910212908] Patch bundle hash: 15fa08303d0cf37f1e79d96085a2c222e2e828ad
_______________________________________________ darcs-users mailing list darcs-users@darcs.net http://lists.osuosl.org/mailman/listinfo/darcs-users