Ok, this bundle of patches should allow me to pull every stable patch into the
release branch and maintain the feature freeze. It means that I should be able
to collapse the two branches and freeze stable, as Simon Michael suggests
Fri Sep 26 15:30:48 BST 2008 Eric Kow <[EMAIL PROTECTED]>
* Rollback issue27 fix (due to a darcs 2.1 feature freeze and issue1102)
rolling back:
Wed Sep 17 16:46:57 BST 2008 David Roundy <[EMAIL PROTECTED]>
* resolve issue27: add junk to patch identifiers.
Ignore-this: b91ab6f6e05e0fda25488fa51653b741
M ./configure.ac +3
M ./src/Darcs/Commands/AmendRecord.lhs -2 +3
M ./src/Darcs/Commands/Record.lhs -3 +4
M ./src/Darcs/Commands/Rollback.lhs -1 +2
M ./src/Darcs/Commands/Tag.lhs -2 +2
M ./src/Darcs/Commands/Unrevert.lhs -3 +2
M ./src/Darcs/Patch/Core.lhs -3 +7
M ./src/Darcs/Patch/Info.lhs -9 +29
M ./src/Darcs/Population.lhs -2 +2
M ./src/Darcs/Repository/Internal.lhs -1 +2
M ./src/Darcs/SelectChanges.lhs -1 +1
Fri Sep 26 15:34:54 BST 2008 Eric Kow <[EMAIL PROTECTED]>
* Resolve issue1102: do not generate patch log junk
This patch and the issue27 rollback allow for darcs 2.1 to understand patch
log 'junk' generated by future versions of darcs without actually generating
it. These two patches are motivated by a feature freeze: we do not want the
issue27 patches for imminent release, but we want to make sure that future
versions of darcs can generate the requisite junk without harming the darcs
2.1 user experience.
Fri Sep 26 15:40:29 BST 2008 Eric Kow <[EMAIL PROTECTED]>
* Restore junk-generation from previous issue27 patch.
Fri Sep 26 15:47:30 BST 2008 Eric Kow <[EMAIL PROTECTED]>
* Rollback hokey unit test fix for issue27
This is also related to the darcs 2.1 feature freeze.
rolling back:
Wed Sep 17 18:09:13 BST 2008 David Roundy <[EMAIL PROTECTED]>
* hokey fix to allow unit tests to generate random input.
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.
M ./src/Darcs/Patch/Test.lhs -1 +6
M ./src/unit.lhs -1 +4
Fri Sep 26 15:49:12 BST 2008 Eric Kow <[EMAIL PROTECTED]>
* Restore issue27 unit test fix.
Fri Sep 26 15:50:11 BST 2008 Eric Kow <[EMAIL PROTECTED]>
* Rollback 'simplify patches in rollback'
This is due to the darcs 2.1 feature freeze.
rolling back:
Tue Sep 23 16:06:19 BST 2008 David Roundy <[EMAIL PROTECTED]>
* simplify patches in rollback.
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.
M ./src/Darcs/Commands/Rollback.lhs -2 +2
Fri Sep 26 15:50:25 BST 2008 Eric Kow <[EMAIL PROTECTED]>
* Restore darcs rollback simplification.
New patches:
[Rollback issue27 fix (due to a darcs 2.1 feature freeze and issue1102)
Eric Kow <[EMAIL PROTECTED]>**20080926143048
rolling back:
Wed Sep 17 16:46:57 BST 2008 David Roundy <[EMAIL PROTECTED]>
* resolve issue27: add junk to patch identifiers.
Ignore-this: b91ab6f6e05e0fda25488fa51653b741
M ./configure.ac +3
M ./src/Darcs/Commands/AmendRecord.lhs -2 +3
M ./src/Darcs/Commands/Record.lhs -3 +4
M ./src/Darcs/Commands/Rollback.lhs -1 +2
M ./src/Darcs/Commands/Tag.lhs -2 +2
M ./src/Darcs/Commands/Unrevert.lhs -3 +2
M ./src/Darcs/Patch/Core.lhs -3 +7
M ./src/Darcs/Patch/Info.lhs -9 +29
M ./src/Darcs/Population.lhs -2 +2
M ./src/Darcs/Repository/Internal.lhs -1 +2
M ./src/Darcs/SelectChanges.lhs -1 +1
] hunk ./src/Darcs/SelectChanges.lhs 199
Sealed pend <- if ignore_pending
then return $ seal (NilFL :: FL Prim C(r r))
else read_pending repository
- pend_ <- n2pia `fmap` anonymous (fromPrims pend)
+ let pend_ = n2pia $ anonymous $ fromPrims pend
sp <- without_buffering $ wspfr jn (doesnt_not_match opts)
(concatRL p_s) NilFL pend_
case sp of
hunk ./src/Darcs/Repository/Internal.lhs 523
them = mapFL_FL hopefully themi
_ :/\: pc <- return $ merge (progressFL "Merging them" them :\/: progressFL "Merging us" us)
pend <- get_unrecorded_unsorted r -- we don't care if it looks pretty...
- anonpend <- anonymous (fromPrims pend)
- pend' :/\: pw <- return $ merge (pc :\/: anonpend :>: NilFL)
+ pend' :/\: pw <- return $ merge (pc :\/: anonymous (fromPrims pend) :>: NilFL)
let pwprim = joinPatches $ progressFL "Examining patches for conflicts" $ mapFL_FL patchcontents pw
Sealed standard_resolved_pw <- return $ standard_resolution pwprim
debugMessage "Checking for conflicts..."
hunk ./src/Darcs/Population.lhs 59
\begin{code}
nullPI :: PatchInfo
-nullPI = idpatchinfo
+nullPI = patchinfo [] [] [] []
\end{code}
population of an empty repository
hunk ./src/Darcs/Population.lhs 43
import Darcs.Patch ( RepoPatch, applyToPop, patchcontents, patchChanges,
Effect, effect )
import Darcs.Ordered ( FL(..), RL(..), reverseRL, concatRL, mapRL )
-import Darcs.Patch.Info ( PatchInfo, idpatchinfo, to_xml )
+import Darcs.Patch.Info ( PatchInfo, patchinfo, to_xml )
import Darcs.Patch.Set ( PatchSet )
import Darcs.Sealed ( Sealed(..), seal, unseal )
import Darcs.Repository ( withRepositoryDirectory, ($-), read_repo )
hunk ./src/Darcs/Patch/Info.lhs 59
idpatchinfo = PatchInfo myid myid myid [] False
where myid = packString "identity"
-patchinfo :: String -> String -> String -> [String] -> IO PatchInfo
+patchinfo :: String -> String -> String -> [String] -> PatchInfo
patchinfo date name author log =
add_junk $ PatchInfo { _pi_date = packString date
, _pi_name = packString name
hunk ./src/Darcs/Patch/Info.lhs 56
deriving (Eq,Ord)
idpatchinfo :: PatchInfo
-idpatchinfo = PatchInfo myid myid myid [] False
- where myid = packString "identity"
+idpatchinfo = patchinfo "identity" "identity" "identity" []
patchinfo :: String -> String -> String -> [String] -> PatchInfo
patchinfo date name author log =
hunk ./src/Darcs/Patch/Info.lhs 20
\begin{code}
module Darcs.Patch.Info ( PatchInfo, patchinfo, invert_name, is_inverted,
- idpatchinfo, add_junk,
+ idpatchinfo,
make_filename, make_alt_filename, readPatchInfo,
just_name, just_author, repopatchinfo, RepoPatchInfo,
human_friendly, to_xml, pi_date, set_pi_date,
hunk ./src/Darcs/Patch/Core.lhs 116
anonymous :: Patchy p => p C(x y) -> IO (Named p C(x y))
anonymous p = namepatch "today" "anonymous" "unknown" ["anonymous"] p
-
infopatch pi p = NamedP pi [] p
adddeps (NamedP pi _ p) ds = NamedP pi ds p
getdeps (NamedP _ ds _) = ds
hunk ./src/Darcs/Patch/Core.lhs 111
namepatch :: Patchy p => String -> String -> String -> [String] -> p C(x y) -> IO (Named p C(x y))
namepatch date name author desc p
| '\n' `elem` name = error "Patch names cannot contain newlines."
- | otherwise = do pinf <- patchinfo date name author desc
- return $ NamedP pinf [] p
-
-anonymous :: Patchy p => p C(x y) -> IO (Named p C(x y))
+ | otherwise = NamedP (patchinfo date name author desc) [] p
+anonymous :: Patchy p => p C(x y) -> Named p C(x y)
anonymous p = namepatch "today" "anonymous" "unknown" ["anonymous"] p
infopatch pi p = NamedP pi [] p
adddeps (NamedP pi _ p) ds = NamedP pi ds p
hunk ./src/Darcs/Patch/Core.lhs 107
infopatch :: Patchy p => PatchInfo -> p C(x y) -> Named p C(x y)
adddeps :: Named p C(x y) -> [PatchInfo] -> Named p C(x y)
getdeps :: Named p C(x y) -> [PatchInfo]
-
-namepatch :: Patchy p => String -> String -> String -> [String] -> p C(x y) -> IO (Named p C(x y))
namepatch date name author desc p
| '\n' `elem` name = error "Patch names cannot contain newlines."
| otherwise = NamedP (patchinfo date name author desc) [] p
hunk ./src/Darcs/Patch/Core.lhs 104
join_patchesFL :: FL Patch C(x y) -> Patch C(x y)
join_patchesFL ps = ComP $! ps
+namepatch :: Patchy p => String -> String -> String -> [String] -> p C(x y) -> Named p C(x y)
infopatch :: Patchy p => PatchInfo -> p C(x y) -> Named p C(x y)
adddeps :: Named p C(x y) -> [PatchInfo] -> Named p C(x y)
getdeps :: Named p C(x y) -> [PatchInfo]
hunk ./src/Darcs/Commands/Unrevert.lhs 131
date <- getIsoDateTime
np <- namepatch date "unrevert" "anon" [] (fromRepoPrims repository p')
writeDocBinFile (unrevertUrl repository) $
- make_bundle [Unified] rec common (np :>: NilFL)
+ make_bundle [Unified] rec common
+ (namepatch date "unrevert" "anonymous" []
+ (fromRepoPrims repository p') :>: NilFL)
where fromRepoPrims :: RepoPatch p => Repository p C(r u t) -> FL Prim C(r y) -> p C(r y)
fromRepoPrims _ xs = fromPrims xs
\end{code}
hunk ./src/Darcs/Commands/Unrevert.lhs 129
case get_common_and_uncommon (rep,rep) of
(common,_ :\/: _) -> do
date <- getIsoDateTime
- np <- namepatch date "unrevert" "anon" [] (fromRepoPrims repository p')
writeDocBinFile (unrevertUrl repository) $
make_bundle [Unified] rec common
(namepatch date "unrevert" "anonymous" []
hunk ./src/Darcs/Commands/Tag.lhs 83
name <- if (not . null) args
then return $ "TAG " ++ unwords args
else get_patchname opts
- myinfo <- patchinfo date name the_author []
- let mypatch = infopatch myinfo identity
+ let mypatch = namepatch date name the_author [] identity
+ myinfo = patchinfo date name the_author []
in do
tentativelyAddPatch repository opts $ n2pia $ adddeps mypatch deps
finalizeRepositoryChanges repository
hunk ./src/Darcs/Commands/Rollback.lhs 137
(name, my_log, logf) <- get_log opts newlog make_log $ invert ps''
date <- getIsoDateTime
my_author <- get_author opts
- rbp <- n2pia `fmap` namepatch date name my_author my_log
- (fromPrims $ invert ps'')
+ let rbp = n2pia $ namepatch date name my_author my_log $ fromPrims $ invert ps''
debugMessage "Adding rollback patch to repository."
Sealed pw <- tentativelyMergePatches repository "rollback" (MarkConflicts : opts)
NilFL (rbp :>: NilFL)
hunk ./src/Darcs/Commands/Record.lhs 390
ask_about_depends :: RepoPatch p => Repository p -> FL Prim -> [DarcsFlag] -> IO [PatchInfo]
ask_about_depends repository pa' opts = do
pps <- read_repo repository
- pa <- n2pia `fmap` anonymous (fromPrims pa')
- let ps = (reverseRL $ headRL pps)+>+(pa:>:NilFL)
+ let pa = n2pia $ anonymous $ fromPrims pa'
+ ps = (reverseRL $ headRL pps)+>+(pa:>:NilFL)
(pc, tps) = patch_choices_tps ps
ta = case filter ((pa `unsafeCompare`) . tp_patch) $ unsafeUnFL tps of
[tp] -> tag tp
hunk ./src/Darcs/Commands/Record.lhs 211
when (isJust logf) $ removeFile (fromJust logf)
logMessage $ "Finished recording patch '"++name++"'"
where (logMessage,_,_) = loggers opts
+ mypatch = namepatch date name my_author my_log $ fromPrims $ progressFL "Writing changes:" chs
failuremessage = "Failed to record patch '"++name++"'" ++
case logf of Just lf -> "\nLogfile left in "++lf++"."
Nothing -> ""
hunk ./src/Darcs/Commands/Record.lhs 200
-> [PatchInfo] -> FL Prim -> IO ()
do_actual_record repository opts name date my_author my_log logf deps chs =
do debugMessage "Writing the patch file..."
- mypatch <- namepatch date name my_author my_log $
- fromPrims $ progressFL "Writing changes:" chs
tentativelyAddPatch repository opts $ n2pia $ adddeps mypatch deps
debugMessage "Applying to pristine..."
withGutsOf repository (finalizeRepositoryChanges repository)
hunk ./src/Darcs/Commands/AmendRecord.lhs 153
Just a -> a
Nothing -> pi_author old_pinf
maybe_invert = if is_inverted old_pinf then invert_name else id
- new_pinf <- maybe_invert `fmap` patchinfo date new_name
- new_author new_log
- let newp = fixp oldp chs new_pinf
+ new_pinf = maybe_invert $ patchinfo date new_name new_author new_log
+ newp = fixp oldp chs new_pinf
defineChanges newp
withGutsOf repository $ do
tentativelyRemovePatches repository opts (hopefully oldp :>: NilFL)
hunk ./configure.ac 208
dnl See if we need any packages from after the split base
-GHC_CHECK_MODULE(System.Random, random, randomRIO (0,10) :: IO Integer,,
- AC_MSG_ERROR(Cannot find System.Random; try installing the Haskell package random?))
-
GHC_CHECK_MODULE(System.Directory, directory, doesFileExist "foo" :: IO Bool,,
AC_MSG_ERROR(Cannot find System.Directory; try installing the Haskell package directory?))
GHC_CHECK_MODULE(System.Time, old-time, getClockTime :: IO ClockTime,,
[Resolve issue1102: do not generate patch log junk
Eric Kow <[EMAIL PROTECTED]>**20080926143454
This patch and the issue27 rollback allow for darcs 2.1 to understand patch
log 'junk' generated by future versions of darcs without actually generating
it. These two patches are motivated by a feature freeze: we do not want the
issue27 patches for imminent release, but we want to make sure that future
versions of darcs can generate the requisite junk without harming the darcs
2.1 user experience.
] hunk ./src/Darcs/Patch/Info.lhs 28
showPatchInfo,
) where
import Text.Html hiding (name, text)
-import System.Random ( randomRIO )
-import Numeric ( showHex )
import Data.List ( isPrefixOf )
import FastPackedString
hunk ./src/Darcs/Patch/Info.lhs 64
, _pi_log = map packString log
, is_inverted = False }
-add_junk :: PatchInfo -> IO PatchInfo
-add_junk pinf =
- do x <- randomRIO (0,2^(128 ::Integer) :: Integer)
- return $ pinf { _pi_log = packString (head ignored++showHex x ""):
- ignore_junk (_pi_log pinf) }
+add_junk :: PatchInfo -> PatchInfo
+add_junk = id
ignored :: [String] -- this is a [String] so we can change the junk header.
ignored = ["Ignore-this: "]
[Restore junk-generation from previous issue27 patch.
Eric Kow <[EMAIL PROTECTED]>**20080926144029] hunk ./configure.ac 208
dnl See if we need any packages from after the split base
+GHC_CHECK_MODULE(System.Random, random, randomRIO (0,10) :: IO Integer,,
+ AC_MSG_ERROR(Cannot find System.Random; try installing the Haskell package random?))
+
GHC_CHECK_MODULE(System.Directory, directory, doesFileExist "foo" :: IO Bool,,
AC_MSG_ERROR(Cannot find System.Directory; try installing the Haskell package directory?))
GHC_CHECK_MODULE(System.Time, old-time, getClockTime :: IO ClockTime,,
hunk ./src/Darcs/Commands/AmendRecord.lhs 153
Just a -> a
Nothing -> pi_author old_pinf
maybe_invert = if is_inverted old_pinf then invert_name else id
- new_pinf = maybe_invert $ patchinfo date new_name new_author new_log
- newp = fixp oldp chs new_pinf
+ new_pinf <- maybe_invert `fmap` patchinfo date new_name
+ new_author new_log
+ let newp = fixp oldp chs new_pinf
defineChanges newp
withGutsOf repository $ do
tentativelyRemovePatches repository opts (hopefully oldp :>: NilFL)
hunk ./src/Darcs/Commands/Record.lhs 200
-> [PatchInfo] -> FL Prim -> IO ()
do_actual_record repository opts name date my_author my_log logf deps chs =
do debugMessage "Writing the patch file..."
+ mypatch <- namepatch date name my_author my_log $
+ fromPrims $ progressFL "Writing changes:" chs
tentativelyAddPatch repository opts $ n2pia $ adddeps mypatch deps
debugMessage "Applying to pristine..."
withGutsOf repository (finalizeRepositoryChanges repository)
hunk ./src/Darcs/Commands/Record.lhs 211
when (isJust logf) $ removeFile (fromJust logf)
logMessage $ "Finished recording patch '"++name++"'"
where (logMessage,_,_) = loggers opts
- mypatch = namepatch date name my_author my_log $ fromPrims $ progressFL "Writing changes:" chs
failuremessage = "Failed to record patch '"++name++"'" ++
case logf of Just lf -> "\nLogfile left in "++lf++"."
Nothing -> ""
hunk ./src/Darcs/Commands/Record.lhs 390
ask_about_depends :: RepoPatch p => Repository p -> FL Prim -> [DarcsFlag] -> IO [PatchInfo]
ask_about_depends repository pa' opts = do
pps <- read_repo repository
- let pa = n2pia $ anonymous $ fromPrims pa'
- ps = (reverseRL $ headRL pps)+>+(pa:>:NilFL)
+ pa <- n2pia `fmap` anonymous (fromPrims pa')
+ let ps = (reverseRL $ headRL pps)+>+(pa:>:NilFL)
(pc, tps) = patch_choices_tps ps
ta = case filter ((pa `unsafeCompare`) . tp_patch) $ unsafeUnFL tps of
[tp] -> tag tp
hunk ./src/Darcs/Commands/Rollback.lhs 137
(name, my_log, logf) <- get_log opts newlog make_log $ invert ps''
date <- getIsoDateTime
my_author <- get_author opts
- let rbp = n2pia $ namepatch date name my_author my_log $ fromPrims $ invert ps''
+ rbp <- n2pia `fmap` namepatch date name my_author my_log
+ (fromPrims $ invert ps'')
debugMessage "Adding rollback patch to repository."
Sealed pw <- tentativelyMergePatches repository "rollback" (MarkConflicts : opts)
NilFL (rbp :>: NilFL)
hunk ./src/Darcs/Commands/Tag.lhs 83
name <- if (not . null) args
then return $ "TAG " ++ unwords args
else get_patchname opts
- let mypatch = namepatch date name the_author [] identity
- myinfo = patchinfo date name the_author []
+ myinfo <- patchinfo date name the_author []
+ let mypatch = infopatch myinfo identity
in do
tentativelyAddPatch repository opts $ n2pia $ adddeps mypatch deps
finalizeRepositoryChanges repository
hunk ./src/Darcs/Commands/Unrevert.lhs 129
case get_common_and_uncommon (rep,rep) of
(common,_ :\/: _) -> do
date <- getIsoDateTime
+ np <- namepatch date "unrevert" "anon" [] (fromRepoPrims repository p')
writeDocBinFile (unrevertUrl repository) $
hunk ./src/Darcs/Commands/Unrevert.lhs 131
- make_bundle [Unified] rec common
- (namepatch date "unrevert" "anonymous" []
- (fromRepoPrims repository p') :>: NilFL)
+ make_bundle [Unified] rec common (np :>: NilFL)
where fromRepoPrims :: RepoPatch p => Repository p C(r u t) -> FL Prim C(r y) -> p C(r y)
fromRepoPrims _ xs = fromPrims xs
\end{code}
hunk ./src/Darcs/Patch/Core.lhs 104
join_patchesFL :: FL Patch C(x y) -> Patch C(x y)
join_patchesFL ps = ComP $! ps
-namepatch :: Patchy p => String -> String -> String -> [String] -> p C(x y) -> Named p C(x y)
infopatch :: Patchy p => PatchInfo -> p C(x y) -> Named p C(x y)
adddeps :: Named p C(x y) -> [PatchInfo] -> Named p C(x y)
getdeps :: Named p C(x y) -> [PatchInfo]
hunk ./src/Darcs/Patch/Core.lhs 107
+
+namepatch :: Patchy p => String -> String -> String -> [String] -> p C(x y) -> IO (Named p C(x y))
namepatch date name author desc p
| '\n' `elem` name = error "Patch names cannot contain newlines."
hunk ./src/Darcs/Patch/Core.lhs 111
- | otherwise = NamedP (patchinfo date name author desc) [] p
-anonymous :: Patchy p => p C(x y) -> Named p C(x y)
+ | otherwise = do pinf <- patchinfo date name author desc
+ return $ NamedP pinf [] p
+
+anonymous :: Patchy p => p C(x y) -> IO (Named p C(x y))
anonymous p = namepatch "today" "anonymous" "unknown" ["anonymous"] p
hunk ./src/Darcs/Patch/Core.lhs 116
+
infopatch pi p = NamedP pi [] p
adddeps (NamedP pi _ p) ds = NamedP pi ds p
getdeps (NamedP _ ds _) = ds
hunk ./src/Darcs/Patch/Info.lhs 20
\begin{code}
module Darcs.Patch.Info ( PatchInfo, patchinfo, invert_name, is_inverted,
- idpatchinfo,
+ idpatchinfo, add_junk,
make_filename, make_alt_filename, readPatchInfo,
just_name, just_author, repopatchinfo, RepoPatchInfo,
human_friendly, to_xml, pi_date, set_pi_date,
hunk ./src/Darcs/Patch/Info.lhs 28
showPatchInfo,
) where
import Text.Html hiding (name, text)
+import System.Random ( randomRIO )
+import Numeric ( showHex )
import Data.List ( isPrefixOf )
import FastPackedString
hunk ./src/Darcs/Patch/Info.lhs 56
deriving (Eq,Ord)
idpatchinfo :: PatchInfo
-idpatchinfo = patchinfo "identity" "identity" "identity" []
+idpatchinfo = PatchInfo myid myid myid [] False
+ where myid = packString "identity"
hunk ./src/Darcs/Patch/Info.lhs 59
-patchinfo :: String -> String -> String -> [String] -> PatchInfo
+patchinfo :: String -> String -> String -> [String] -> IO PatchInfo
patchinfo date name author log =
add_junk $ PatchInfo { _pi_date = packString date
, _pi_name = packString name
hunk ./src/Darcs/Patch/Info.lhs 67
, _pi_log = map packString log
, is_inverted = False }
-add_junk :: PatchInfo -> PatchInfo
-add_junk = id
+add_junk :: PatchInfo -> IO PatchInfo
+add_junk pinf =
+ do x <- randomRIO (0,2^(128 ::Integer) :: Integer)
+ return $ pinf { _pi_log = packString (head ignored++showHex x ""):
+ ignore_junk (_pi_log pinf) }
ignored :: [String] -- this is a [String] so we can change the junk header.
ignored = ["Ignore-this: "]
hunk ./src/Darcs/Population.lhs 43
import Darcs.Patch ( RepoPatch, applyToPop, patchcontents, patchChanges,
Effect, effect )
import Darcs.Ordered ( FL(..), RL(..), reverseRL, concatRL, mapRL )
-import Darcs.Patch.Info ( PatchInfo, patchinfo, to_xml )
+import Darcs.Patch.Info ( PatchInfo, idpatchinfo, to_xml )
import Darcs.Patch.Set ( PatchSet )
import Darcs.Sealed ( Sealed(..), seal, unseal )
import Darcs.Repository ( withRepositoryDirectory, ($-), read_repo )
hunk ./src/Darcs/Population.lhs 59
\begin{code}
nullPI :: PatchInfo
-nullPI = patchinfo [] [] [] []
+nullPI = idpatchinfo
\end{code}
population of an empty repository
hunk ./src/Darcs/Repository/Internal.lhs 523
them = mapFL_FL hopefully themi
_ :/\: pc <- return $ merge (progressFL "Merging them" them :\/: progressFL "Merging us" us)
pend <- get_unrecorded_unsorted r -- we don't care if it looks pretty...
- pend' :/\: pw <- return $ merge (pc :\/: anonymous (fromPrims pend) :>: NilFL)
+ anonpend <- anonymous (fromPrims pend)
+ pend' :/\: pw <- return $ merge (pc :\/: anonpend :>: NilFL)
let pwprim = joinPatches $ progressFL "Examining patches for conflicts" $ mapFL_FL patchcontents pw
Sealed standard_resolved_pw <- return $ standard_resolution pwprim
debugMessage "Checking for conflicts..."
hunk ./src/Darcs/SelectChanges.lhs 199
Sealed pend <- if ignore_pending
then return $ seal (NilFL :: FL Prim C(r r))
else read_pending repository
- let pend_ = n2pia $ anonymous $ fromPrims pend
+ pend_ <- n2pia `fmap` anonymous (fromPrims pend)
sp <- without_buffering $ wspfr jn (doesnt_not_match opts)
(concatRL p_s) NilFL pend_
case sp of
[Rollback hokey unit test fix for issue27
Eric Kow <[EMAIL PROTECTED]>**20080926144730
This is also related to the darcs 2.1 feature freeze.
rolling back:
Wed Sep 17 18:09:13 BST 2008 David Roundy <[EMAIL PROTECTED]>
* hokey fix to allow unit tests to generate random input.
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.
M ./src/Darcs/Patch/Test.lhs -1 +6
M ./src/unit.lhs -1 +4
] hunk ./src/unit.lhs 679
test_patches_named = [unsafePerformIO $
namepatch "date is" "patch name" "David Roundy" []
(fromPrim $ addfile "test"),
- unsafePerformIO $
namepatch "Sat Oct 19 08:31:13 EDT 2002"
"This is another patch" "David Roundy"
["This log file has","two lines in it"]
hunk ./src/unit.lhs 676
test_patches_merged :: [Patch]
valid_patches :: [Patch]
-test_patches_named = [unsafePerformIO $
- namepatch "date is" "patch name" "David Roundy" []
+test_patches_named = [namepatch "date is" "patch name" "David Roundy" []
(fromPrim $ addfile "test"),
namepatch "Sat Oct 19 08:31:13 EDT 2002"
"This is another patch" "David Roundy"
hunk ./src/unit.lhs 50
\begin{code}
import Control.Monad (when)
-import System.IO.Unsafe ( unsafePerformIO )
import FastPackedString
import Darcs.Patch
import Darcs.Patch.Test
hunk ./src/Darcs/Patch/Test.lhs 196
where len = if n < 15 then n`div`3 else 3
arbpi :: Gen PatchInfo
-arbpi = do n <- unempty
- a <- unempty
- l <- unempty
- d <- unempty
- return $ unsafePerformIO $ patchinfo n d a l
+arbpi = liftM4 patchinfo unempty unempty unempty unempty
instance Arbitrary PatchInfo where
arbitrary = arbpi
hunk ./src/Darcs/Patch/Test.lhs 43
) where
import Prelude hiding ( pi )
-import System.IO.Unsafe ( unsafePerformIO )
import Test.QuickCheck
import Control.Monad ( liftM, liftM2, liftM3, liftM4, replicateM )
[Restore issue27 unit test fix.
Eric Kow <[EMAIL PROTECTED]>**20080926144912] hunk ./src/Darcs/Patch/Test.lhs 43
) where
import Prelude hiding ( pi )
+import System.IO.Unsafe ( unsafePerformIO )
import Test.QuickCheck
import Control.Monad ( liftM, liftM2, liftM3, liftM4, replicateM )
hunk ./src/Darcs/Patch/Test.lhs 196
where len = if n < 15 then n`div`3 else 3
arbpi :: Gen PatchInfo
-arbpi = liftM4 patchinfo unempty unempty unempty unempty
+arbpi = do n <- unempty
+ a <- unempty
+ l <- unempty
+ d <- unempty
+ return $ unsafePerformIO $ patchinfo n d a l
instance Arbitrary PatchInfo where
arbitrary = arbpi
hunk ./src/unit.lhs 50
\begin{code}
import Control.Monad (when)
+import System.IO.Unsafe ( unsafePerformIO )
import FastPackedString
import Darcs.Patch
import Darcs.Patch.Test
hunk ./src/unit.lhs 676
test_patches_merged :: [Patch]
valid_patches :: [Patch]
-test_patches_named = [namepatch "date is" "patch name" "David Roundy" []
+test_patches_named = [unsafePerformIO $
+ namepatch "date is" "patch name" "David Roundy" []
(fromPrim $ addfile "test"),
hunk ./src/unit.lhs 679
+ unsafePerformIO $
namepatch "Sat Oct 19 08:31:13 EDT 2002"
"This is another patch" "David Roundy"
["This log file has","two lines in it"]
[Rollback 'simplify patches in rollback'
Eric Kow <[EMAIL PROTECTED]>**20080926145011
This is due to the darcs 2.1 feature freeze.
rolling back:
Tue Sep 23 16:06:19 BST 2008 David Roundy <[EMAIL PROTECTED]>
* simplify patches in rollback.
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.
M ./src/Darcs/Commands/Rollback.lhs -2 +2
] hunk ./src/Darcs/Commands/Rollback.lhs 128
exitWith ExitSuccess
definePatches ps
with_selected_last_changes_to_files' "rollback" opts working_dir
- existing_files (sort_coalesceFL $ effect ps) $ \ (_:>ps'') ->
+ existing_files (effect ps) $ \ (_:>ps'') ->
do when (nullFL ps'') $ do logMessage "No changes selected!"
exitWith ExitSuccess
let make_log = world_readable_temp "darcs-rollback"
hunk ./src/Darcs/Commands/Rollback.lhs 42
slurp_recorded_and_unrecorded, read_repo, slurp_recorded,
tentativelyMergePatches, withGutsOf,
finalizeRepositoryChanges, sync_repo )
-import Darcs.Patch ( summary, invert, namepatch, effect, fromPrims, sort_coalesceFL )
+import Darcs.Patch ( summary, invert, namepatch, effect, fromPrims )
import Darcs.Ordered
import Darcs.Hopefully ( n2pia )
import Darcs.Lock ( world_readable_temp )
[Restore darcs rollback simplification.
Eric Kow <[EMAIL PROTECTED]>**20080926145025] hunk ./src/Darcs/Commands/Rollback.lhs 42
slurp_recorded_and_unrecorded, read_repo, slurp_recorded,
tentativelyMergePatches, withGutsOf,
finalizeRepositoryChanges, sync_repo )
-import Darcs.Patch ( summary, invert, namepatch, effect, fromPrims )
+import Darcs.Patch ( summary, invert, namepatch, effect, fromPrims, sort_coalesceFL )
import Darcs.Ordered
import Darcs.Hopefully ( n2pia )
import Darcs.Lock ( world_readable_temp )
hunk ./src/Darcs/Commands/Rollback.lhs 128
exitWith ExitSuccess
definePatches ps
with_selected_last_changes_to_files' "rollback" opts working_dir
- existing_files (effect ps) $ \ (_:>ps'') ->
+ existing_files (sort_coalesceFL $ effect ps) $ \ (_:>ps'') ->
do when (nullFL ps'') $ do logMessage "No changes selected!"
exitWith ExitSuccess
let make_log = world_readable_temp "darcs-rollback"
Context:
[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.
]
[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
]
[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?).
]
[More readable length comparison.
Eric Kow <[EMAIL PROTECTED]>**20080924142304]
[Haddock some primitive patch functions.
Eric Kow <[EMAIL PROTECTED]>**20080924142157]
[move issue27 test to bugs directory, since it fails.
David Roundy <[EMAIL PROTECTED]>**20080923215936
Ignore-this: 4556b273a9f8728de8ac855aae8442d0
]
[Add test for issue27.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080918135923]
[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
]
[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
]
[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]
[Add a test case for issue1078
Eric Kow <[EMAIL PROTECTED]>**20080923081757
Ignore-this: 33f7f1f63c7b707ff148531f8229ceb0
]
[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.
]
[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]
[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]
[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.
]
[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.0.3pre1
Eric Kow <[EMAIL PROTECTED]>**20080918023645]
Patch bundle hash:
cdc9c220f31e87bc57c2b54295456ced55f38ff3
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users