Hi all,
Here's an amended refactor of my previous pre/post-hook change. I'm
still hoping for comments from someone other than Jason. Not that I
don't appreciate Jason's comments, but given that we disagree it seems
like a good idea to get more feedback from *someone*.
This refactor doesn't change any behavior. The old code had several
redundant checks which I removed. It also had duplicated code between
the pre and post hooks, which I've removed.
David
Tue Oct 14 13:07:10 EDT 2008 David Roundy <[EMAIL PROTECTED]>
* remove --run-posthook and --run-prehook flags (and --prompt-same)
This feature has never had a safety application that I've been able to
discern (I don't consider it *ever* safe to allow attackers to run
darcs). This change simplifies the code of darcs, and its use.
New patches:
[remove --run-posthook and --run-prehook flags (and --prompt-same)
David Roundy <[EMAIL PROTECTED]>**20081014170710
Ignore-this: bdf0315db3bb3aff61db1cd85e07f65e
This feature has never had a safety application that I've been able to
discern (I don't consider it *ever* safe to allow attackers to run
darcs). This change simplifies the code of darcs, and its use.
] hunk ./src/Darcs/Arguments.lhs 70
set_scripts_executable,
sibling, flagsToSiblings, relink, relink_pristine, nolinks,
files, directories, pending,
- posthook_cmd, posthook_prompt,
- get_posthook_cmd,
- prehook_cmd, prehook_prompt,
- get_prehook_cmd, nullFlag,
+ posthook_cmd, get_posthook_cmd,
+ prehook_cmd, get_prehook_cmd, nullFlag,
umask_option,
store_in_memory,
patch_select_flag,
hunk ./src/Darcs/Arguments.lhs 267
getContent Pending = NoContent
getContent NoPending = NoContent
getContent NoPosthook = NoContent
-getContent AskPosthook = NoContent
getContent (Sibling s) = AbsoluteContent s
getContent (PosthookCmd s) = StringContent s
hunk ./src/Darcs/Arguments.lhs 269
-getContent RunPosthook = NoContent
getContent NoPrehook = NoContent
hunk ./src/Darcs/Arguments.lhs 270
-getContent RunPrehook = NoContent
-getContent AskPrehook = NoContent
getContent StoreInMemory = NoContent
getContent HTTPPipelining = NoContent
getContent NoHTTPPipelining = NoContent
hunk ./src/Darcs/Arguments.lhs 1363
successfully, use \verb!--posthook! to specify the command. This is useful
for people who want to have a command run whenever a patch is applied. Using
\verb!--no-posthook! will disable running the command.
-\begin{options}
---prompt-posthook, --run-posthook
-\end{options}
-These options control prompting before running the posthook. Use
-\verb!--prompt-posthook! to force prompting before running the
-posthook command. For security reasons, this is the default. When
-defining a posthook for apply, you will need to use
-\verb!--run-posthook! or else you will get an error, because the
-subprocess which runs the apply command cannot prompt the user.
Some darcs commands export to the posthook command information about the
changes being made. In particular, three environment variables are defined.
hunk ./src/Darcs/Arguments.lhs 1418
DarcsNoArgOption [] ["no-posthook"] NoPosthook
"don't run posthook command"]
-posthook_prompt :: DarcsOption
-posthook_prompt = DarcsMultipleChoiceOption
- [DarcsNoArgOption [] ["prompt-posthook"] AskPosthook
- "prompt before running posthook [DEFAULT]",
- DarcsNoArgOption [] ["run-posthook"] RunPosthook
- "run posthook command without prompting"]
-
-- | 'get_posthook_cmd' takes a list of flags and returns the posthook command
-- specified by @PosthookCmd a@ in that list of flags, if any.
get_posthook_cmd :: [DarcsFlag] -> Maybe String
hunk ./src/Darcs/Arguments.lhs 1447
DarcsNoArgOption [] ["no-prehook"] NoPrehook
"don't run prehook command"]
-prehook_prompt :: DarcsOption
-prehook_prompt = DarcsMultipleChoiceOption
- [DarcsNoArgOption [] ["prompt-prehook"] AskPrehook
- "prompt before running prehook [DEFAULT]",
- DarcsNoArgOption [] ["run-prehook"] RunPrehook
- "run prehook command without prompting"]
-
-- | 'get_prehook_cmd' takes a list of flags and returns the prehook command
-- specified by @PrehookCmd a@ in that list of flags, if any.
get_prehook_cmd :: [DarcsFlag] -> Maybe String
hunk ./src/Darcs/Commands.lhs 164
command_alloptions DarcsCommand { command_basic_options = opts1
, command_advanced_options = opts2 }
= (opts1 ++ [disable, help],
- any_verbosity ++ opts2 ++
- [posthook_cmd, posthook_prompt
- ,prehook_cmd, prehook_prompt])
+ any_verbosity ++ opts2 ++ [posthook_cmd, prehook_cmd])
-- Supercommands cannot be disabled.
command_alloptions SuperCommand { } = ([help],[])
hunk ./src/Darcs/Flags.lhs 83
| Sibling AbsolutePath | Relink | RelinkPristine | NoLinks
| Files | NoFiles | Directories | NoDirectories
| Pending | NoPending
- | PosthookCmd String | NoPosthook | AskPosthook | RunPosthook
- | PrehookCmd String | NoPrehook | AskPrehook | RunPrehook
+ | PosthookCmd String | NoPosthook
+ | PrehookCmd String | NoPrehook
| UMask String
| StoreInMemory
| HTTPPipelining | NoHTTPPipelining
hunk ./src/Darcs/Test.lhs 20
\begin{code}
module Darcs.Test ( run_test, get_test,
- run_posthook, run_prehook )
+ run_posthook, run_prehook )
where
import Darcs.RepoPath ( AbsolutePath )
import Darcs.Utils ( withCurrentDirectory )
hunk ./src/Darcs/Test.lhs 24
-import Data.Maybe ( isNothing )
import System.Exit ( ExitCode(..) )
import System.Cmd ( system )
import Control.Monad ( when )
hunk ./src/Darcs/Test.lhs 28
-import Darcs.Arguments ( DarcsFlag( Verbose, Quiet,
- NoPosthook, RunPosthook,
- NoPrehook, RunPrehook ),
+import Darcs.Arguments ( DarcsFlag( Quiet ),
get_posthook_cmd, get_prehook_cmd )
import Darcs.Repository.Prefs ( get_prefval )
hunk ./src/Darcs/Test.lhs 31
-import Darcs.Utils ( askUser )
-import System.IO ( hPutStr, stderr )
+import System.IO ( hPutStrLn, stderr )
\end{code}
If you like, you can configure your repository to be able to run a test
hunk ./src/Darcs/Test.lhs 81
\begin{code}
run_posthook :: [DarcsFlag] -> AbsolutePath -> IO ExitCode
-run_posthook opts repodir
- | NoPosthook `elem` opts = return ExitSuccess
- | otherwise = withCurrentDirectory repodir $ get_posthook opts
+run_posthook opts repodir = withCurrentDirectory repodir $
+ run_hook opts "Posthook" (get_posthook_cmd opts)
hunk ./src/Darcs/Test.lhs 84
-get_posthook :: [DarcsFlag] -> IO ExitCode
-get_posthook opts =
- let putInfo s = when (Verbose `elem` opts) $ putStr s
- putErr s = when (Quiet `notElem` opts) $ hPutStr stderr s
- in case get_posthook_cmd opts of
- Nothing -> return ExitSuccess
- Just command -> do
- yorn <- maybeAskUser("\nThe following command is set to execute.\n"++
- "Execute the following command now (yes or no)?\n"++
- command++"\n")
- case yorn of ('y':_) -> do ec <- system command
- if ec == ExitSuccess
- then putInfo "Posthook ran successfully.\n"
- else putErr "Posthook failed!\n"
- return ec
- _ -> do putInfo "Posthook cancelled..."
- return ExitSuccess
- where maybeAskUser
- | RunPosthook `elem` opts = \_ -> return "yes"
- | otherwise = askUser
-\end{code}
-
-\begin{code}
run_prehook :: [DarcsFlag] -> AbsolutePath -> IO ExitCode
hunk ./src/Darcs/Test.lhs 85
-run_prehook opts repodir
- | NoPrehook `elem` opts || isNothing (get_prehook_cmd opts) = return ExitSuccess
- | otherwise = withCurrentDirectory repodir $ get_prehook opts
+run_prehook opts repodir = withCurrentDirectory repodir $
+ run_hook opts "Prehook" (get_prehook_cmd opts)
+
+run_hook :: [DarcsFlag] -> String -> Maybe String -> IO ExitCode
+run_hook _ _ Nothing = return ExitSuccess
+run_hook opts cname (Just command) =
+ do ec <- system command
+ when (Quiet `notElem` opts) $
+ if ec == ExitSuccess
+ then putStrLn $ cname++" ran successfully."
+ else hPutStrLn stderr $ cname++" failed!"
+ return ec
hunk ./src/Darcs/Test.lhs 98
-get_prehook :: [DarcsFlag] -> IO ExitCode
-get_prehook opts =
- let putInfo s = when (Verbose `elem` opts) $ putStr s
- putErr s = when (Quiet `notElem` opts) $ hPutStr stderr s
- in case get_prehook_cmd opts of
- Nothing -> return ExitSuccess
- Just command -> do
- yorn <- maybeAskUser("\nThe following command is set to execute.\n"++
- "Execute the following command now (yes or no)?\n"++
- command++"\n")
- case yorn of ('y':_) -> do ec <- system command
- if ec == ExitSuccess
- then putInfo "Prehook ran successfully.\n"
- else putErr "Prehook failed!\n"
- return ec
- _ -> do putInfo "Prehook cancelled..."
- return ExitSuccess
- where maybeAskUser
- | RunPrehook `elem` opts = const $ return "yes"
- | otherwise = askUser
\end{code}
hunk ./tests/posthook.sh 12
touch foo
darcs add foo
-# Check that prompting works as expected when answering yes...
-echo yes | darcs whatsnew -s --posthook 'touch posthook-ran'
+# Check that posthook works...
+darcs whatsnew -s --posthook 'touch posthook-ran'
test -f posthook-ran
rm posthook-ran
hunk ./tests/posthook.sh 17
-# Check that prompting works as expected when answering no...
-echo no | darcs whatsnew -s --posthook 'touch posthook-ran'
-test ! -f posthook-ran
-
-# Check that prompting works as expected with defaults (yes)...
+# Check that posthook works with defaults...
echo ALL --posthook touch posthook-ran > _darcs/prefs/defaults
hunk ./tests/posthook.sh 19
-echo yes | darcs whatsnew -s
-test -f posthook-ran
-rm posthook-ran
-
-# Check that prompting works as expected with defaults (no)...
-echo no | darcs whatsnew -s
-test ! -f posthook-ran
-
-# Check that --run-posthook works in defaults
-echo ALL --run-posthook >> _darcs/prefs/defaults
darcs whatsnew -s
test -f posthook-ran
rm posthook-ran
hunk ./tests/posthook.sh 23
-# Check that --run-posthook works when specified both in defaults and on
-# command line
-darcs whatsnew --run-posthook -s
-test -f posthook-ran
-rm posthook-ran
-
-# Check that --posthook works when --run-posthook is in defaults
-echo ALL --run-posthook > _darcs/prefs/defaults
-darcs whatsnew --posthook 'touch posthook-ran' -s
-test -f posthook-ran
-rm posthook-ran
-
echo Successful.
cd ..
hunk ./tests/prehook.sh 12
touch foo
darcs add foo
-# Check that prompting works as expected when answering yes...
-echo yes | darcs whatsnew -s --prehook 'touch prehook-ran'
+# Check that prehook runs
+darcs whatsnew -s --prehook 'touch prehook-ran'
test -f prehook-ran
rm prehook-ran
hunk ./tests/prehook.sh 17
-# Check that prompting works as expected when answering no...
-echo no | darcs whatsnew -s --prehook 'touch prehook-ran'
-test ! -f prehook-ran
-
-# Check that prompting works as expected with defaults (yes)...
+# Check that --prehook works with defaults...
echo ALL --prehook touch prehook-ran > _darcs/prefs/defaults
hunk ./tests/prehook.sh 19
-echo yes | darcs whatsnew -s
-test -f prehook-ran
-rm prehook-ran
-
-# Check that prompting works as expected with defaults (no)...
-echo no | darcs whatsnew -s
-test ! -f prehook-ran
-
-# Check that --run-prehook works in defaults
-echo ALL --run-prehook >> _darcs/prefs/defaults
darcs whatsnew -s
test -f prehook-ran
rm prehook-ran
hunk ./tests/prehook.sh 23
-# Check that --run-prehook works when specified both in defaults and on
-# command line
-darcs whatsnew --run-prehook -s
-test -f prehook-ran
-rm prehook-ran
-
-# Check that --prehook works when --run-prehook is in defaults
-echo ALL --run-prehook > _darcs/prefs/defaults
-darcs whatsnew --prehook 'touch prehook-ran' -s
-test -f prehook-ran
-rm prehook-ran
echo Successful.
Context:
[simplify pull_many_files.sh.
David Roundy <[EMAIL PROTECTED]>**20081014165155
Ignore-this: 9f7a7cc5b02a9d51810149a8875e987f
]
[add test for siginfo.h (which shows up on SunOS maybe?)
David Roundy <[EMAIL PROTECTED]>**20081014154814
Ignore-this: 72d32ff1b4b57dbf75eab937be5a0e22
]
[Use fgrep in printer.sh test (more portable than grep -F)
Eric Kow <[EMAIL PROTECTED]>**20081014135138]
[have makefile make hspwd rather than shell_harness.
David Roundy <[EMAIL PROTECTED]>**20081013192943
Ignore-this: 31008f1993c5a2281b229b9c5cdca66c
I think there was a problem that make -j check could cause ghc --make
to be run simultaneously. Now it's run just once, before running any
tests.
]
[slightly hokey approach to solving pwd problem.
David Roundy <[EMAIL PROTECTED]>**20081013184209
Ignore-this: 762f0339c99f1d4a529ab031ad353cd0
I think this may help the Solaris/BSD test portability issue, and it's
also (I think) a slightly cleaner alternative to the portable_pwd
hack.
]
[clean up test-franchise-build.sh a bit more...
David Roundy <[EMAIL PROTECTED]>**20081013175711
Ignore-this: 619fff6a0be4bc8172cd8c39a5591079
]
[clean up test-franchise-build.sh
David Roundy <[EMAIL PROTECTED]>**20081013162935
Ignore-this: a1bd36f8bb8d3d75519abcc8d8388a99
Among other infelicities, it wasn't using a clean franchise build
except under wine.
]
[Remove bashisms and GNUisms
Matthias Kilian <[EMAIL PROTECTED]>**20081012123017
Replace some bashisms and GNUisms by more standards compliant command
lines, i.e.:
- Don't use `\|' in BREs, since it's undefined according to POSIX.
Instead just use grep -E with an ERE.
- Don't create "funny" strings with the $'\x01...' bashism but use
printf(1) instead. Note that this isn't strictly necessary to fix
printer.sh on non-GNUish systems, but it makes it much simpler to test
what's going on.
- In test_line(), just use grep -F, and unescape all second arguments
passed to test_line(). This makes the script much more readable and
actually fixes it for non-GNUish systems.
]
[simplify write_default_prefs.
David Roundy <[EMAIL PROTECTED]>**20081013121512
Ignore-this: 4f72699d2406802e771a0ceadc913550
It's easier to read this way, and shorter, too.
]
[documented provenance of .tmp_versions and .DS_Store files in default boring
[EMAIL PROTECTED]
[Fix curl version in setup.hs.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20081012094214
Ignore-this: 5c44008cb7105279c37a2297e668a070
]
[avoid re-checking for windows.
David Roundy <[EMAIL PROTECTED]>**20081011223905
Ignore-this: 93c42ffc6b67c6cca803e1dcb18a9497
]
[setup.hs: don't fail if darcs doesn't yet exist.
David Roundy <[EMAIL PROTECTED]>**20081011223824
Ignore-this: 6d318961490a9343f5e792f2d740fd27
]
[fix spelling error in setup.hs.
David Roundy <[EMAIL PROTECTED]>**20081011205353
Ignore-this: 6d521f633d74aae8705391eff9489b2c
]
[make setup.hs look for libcurl
David Roundy <[EMAIL PROTECTED]>**20081011195923
Ignore-this: c9a267184e89b188f074171f8887b3b4
]
[resolve issue1139: make special cases handle no arguments gracefully.
David Roundy <[EMAIL PROTECTED]>**20081011161059
Ignore-this: 12b17a3940558860dd4caf7bb2619ec7
I accidentally broke this when refactoring Darcs.Match. This change
restores some efficiency when no arguments are given and thus we are
creating copies of all the files in the repository.
]
[Simplify Darcs.Lock.withDir.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20081011110639
Ignore-this: c01257f9e0fc40c415562448cb52d67d
]
[Do not remove temporary directories if DARCS_KEEP_TMPDIR environment variable is set.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20081011105808
Ignore-this: 5ea0e206e45dc9be73c29c3bf89643b9
]
[add test that timestamps are properly set.
David Roundy <[EMAIL PROTECTED]>**20081013152933
Ignore-this: caf36b9fff70f9a44b0f35078f3a5aee
]
[add tests for issue1139.
David Roundy <[EMAIL PROTECTED]>**20081011155324
Ignore-this: ff50784059114f969fb4657ea5e92025
]
[Copyright and licensing notes and rationales.
Trent W. Buck <[EMAIL PROTECTED]>**20081011035925]
[Document DARCS_KEEP_TMPDIR in manual.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20081011115026
Ignore-this: bd77d5a85fa44094dcd1a867c2a63d2e
]
[Documentation for DARCS_KEEP_TMPDIR.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20081011113042
Ignore-this: 5e3d6598aed4b681a099341c3ec5017a
]
[cleanup default boring
[EMAIL PROTECTED]
Also turn default_boring and default_binaries into (pure) CAFs.
]
[on windows, try renameFile before deleting target file.
David Roundy <[EMAIL PROTECTED]>**20081010204009
Ignore-this: 6946caec86d1c7177510baf62e2ed275
The trouble was that if we were renaming a file to itself, we ended up
deleting the file we were renaming (oops!). It's a stupid hack, but
that's what we're forced to do when running on windows. (Note that
it's potentially hard to determine if two paths describe the same
file.)
]
[add new test that optimize --reorder behaves itself on lazy repos.
David Roundy <[EMAIL PROTECTED]>**20081010194834
Ignore-this: 5246d20700c153490da1997caede4369
]
[give more debug output in test.
David Roundy <[EMAIL PROTECTED]>**20081010191209
Ignore-this: a13ec79ae69f4fe9621ea3c16c9b41d6
]
[remove reimplementation of zipWith.
David Roundy <[EMAIL PROTECTED]>**20081010191051
Ignore-this: 277f49de513ec84bc6db0b4da6c633b1
]
[clean up setup.hs configure a bit.
David Roundy <[EMAIL PROTECTED]>**20081010154959
Ignore-this: 10855edc3e6fda315e03b6ea1c64b05e
This removes redundant output, and warns when fast http libraries
aren't found (or no http library at all).
]
[Fix spurious diff and missing cd in diff test.
Eric Kow <[EMAIL PROTECTED]>**20081008192142
If tests are run in parallel, each instance of the diff test may
attempt to create temporary directories for use by darcs diff.
Darcs itself handles this fine; only the test script gets confused
by the spurious difference that results.
]
[Help the test harness clean to up after tests.
Eric Kow <[EMAIL PROTECTED]>**20081008190340
A typical use case is if a test sets restrictive permissions
and dies. Notes:
* we do this after each test so that one test result doesn't
contaminate others
* we explicitly do /not/ remove these temporary directories
because you may want them around for forensics
]
[ratify use of readFile in setup.hs
David Roundy <[EMAIL PROTECTED]>**20081010150105
Ignore-this: 92627010ec07e16d271bcc5e7f325c64
]
[Minor refactor in URL.urlThread.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20081010071649
Ignore-this: 809d750f10adc8073ebe0dd3d432f2a2
]
[clean up code formatting in Hopefully.
David Roundy <[EMAIL PROTECTED]>**20081010144943
Ignore-this: 65a4dbb17505adbc0c0c615c445a8926
]
[clean up unused exports in Hopefully.
David Roundy <[EMAIL PROTECTED]>**20081010144918
Ignore-this: a016b66fd64f756295555255b268e80a
]
[haddock documentation for Hopefully
[EMAIL PROTECTED]
[resolve issue1062: ignore setCooked and setEcho errors.
Eric Kow <[EMAIL PROTECTED]>**20081010122047
Ignore-this: 2f8c8710faefdcdb6b224244995a00af
The issue in question is only about setCooked.
I presume setEcho can similarly fail.
]
[add script for testing the franchise build.
David Roundy <[EMAIL PROTECTED]>**20081010142711
Ignore-this: 5aa40dc14c0827b199b9d23d1c7ef27d
This includes testing the cross-compile to windows using wine. It's
part of my scripts that are run on each push to darcs-unstable.
]
[add a --prompt-for-dependencies to restore the default behaviour
[EMAIL PROTECTED]
Ignore-this: 92480353c19dea1b67aff89b933759a2
Add a --prompt-for-dependencies flag so that one can put
--dont-prompt-for-dependencies in their defaults file and
still get back the default behavior when needed.
]
[eliminate autogeneration of Workaround.hs.
David Roundy <[EMAIL PROTECTED]>**20081010134727
Ignore-this: 784a4b08bab1e22c93f54c1c5cd710f1
]
[add franchise setup file.
David Roundy <[EMAIL PROTECTED]>**20081009203410
Ignore-this: f1738c7608e6093aa18e808d3d41d000
]
[add missing createLink to win32/System/Posix/Files.hsc.
David Roundy <[EMAIL PROTECTED]>**20081010133500
Ignore-this: 39d246ab1db8c31f78e0b8362ad05ca3
]
[make make_changelog default to quiet output.
David Roundy <[EMAIL PROTECTED]>**20081009203322
Ignore-this: 55eba7a68a3c8a5683d23cc99848bd6f
You can restore previous behavior by defining the VERBOSE environment
variable.
]
[remove unused and unneeded Workarounds.
David Roundy <[EMAIL PROTECTED]>**20081009194541
Ignore-this: bca5a7a2444d4ddffeed673cbbfa19ec
]
[rename lazy-deps to dont-prompt-for-dependencies.
David Roundy <[EMAIL PROTECTED]>**20081009171030
Ignore-this: 78393e28c184c9339c89cecaa852dbc9
]
[fix incompatibilities with ghc 6.6
David Roundy <[EMAIL PROTECTED]>**20081009165845
Ignore-this: 18739c880a49b976ec151363f4ff9296
]
[Restore send-external.sh test.
David Roundy <[EMAIL PROTECTED]>**20081009140121
Ignore-this: 700f9c538033108cac397c1d757fbfc4
]
[add test of Ignore-this functionality.
David Roundy <[EMAIL PROTECTED]>**20081008192621
Ignore-this: 47b7bf225e2997dd78c351763c769738
]
[warn users if they try to record a change beginning with Ignore-this:.
David Roundy <[EMAIL PROTECTED]>**20081008192001
Ignore-this: 94828726d609f46e384c2ab8091e49db
Ignore-this: I am testing the functionality of this feature.
]
[allow users to add their own ignored information to patches.
David Roundy <[EMAIL PROTECTED]>**20081008190038
Ignore-this: fe8294776896b6fdcd489752a29d1069
]
[basic tests for --lazy-deps
Florent Becker <[EMAIL PROTECTED]>**20081008124956
Ignore-this: 79d8a312943813e9fe5448bc2ab86aa0
]
[added a --lazy-deps option
Florent Becker <[EMAIL PROTECTED]>**20081008122224
Ignore-this: d934868e56f0084067f5aedf0512a533
This option means that you don't get asked about patches which do not match
a --match, but are depended upon by a patch that does. These patches will get
ilently selected.
]
[refactor of SelectChanges
Florent Becker <[EMAIL PROTECTED]>**20081008100551
Ignore-this: e620d36d6e52eb62a2205fe5122d7076
]
[use minimum Cachable time in corner case where f/=f' and c/=c'.
David Roundy <[EMAIL PROTECTED]>**20081008173804
Ignore-this: 51f2a68ac4139420bd116e8293cc5cc2
]
[remove excessive indentation that made the code very hard to read.
David Roundy <[EMAIL PROTECTED]>**20081008173358
Ignore-this: d93e312c27f0d9a1ef993855c6872257
]
[When requesting same URL with different cachability choose least cachable.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20081008145049
Ignore-this: fddacf3e706a68c55871f81438d283b
]
[refactor Match to handle --store-in-memory itself.
David Roundy <[EMAIL PROTECTED]>**20081008172748
Ignore-this: 647c75f78d2d4981e67039ae1b6e96df
This reduces the amount of duplicate code, at the cost of adding a
class to Darcs.Match--but at least it isn't exported.
]
[make writeSlurpy work properly when given "."
David Roundy <[EMAIL PROTECTED]>**20081008172207
Ignore-this: 9d5d077bcdf3a9bb7bfa8477ab9d96d5
This isn't a bugfix per se, but rather a feature addition.
writeSlurpy has a "safety feature" that it refuses to overwrite a
directory, but that safety feature doesn't really apply to the
directory ".", since "." explicitly means that we want to overwrite
the directory.
]
[change a bit of code to accept FilePathLike arguments.
David Roundy <[EMAIL PROTECTED]>**20081008172047
Ignore-this: 87032e071bb49117133d99a90bdfd0e1
These functions really should expect FileName, and this is an
incremental move in that direction.
]
[Improve test pull.sh cleanup
Thorkil Naur <[EMAIL PROTECTED]>**20081008115539]
[clean up RepoPath a bit (removing unused methods from classes).
David Roundy <[EMAIL PROTECTED]>**20081008161906
Ignore-this: 4e69882ebe10f20bb67350b106bd10af
]
[clean up exportation of SlurmMonad private internals.
David Roundy <[EMAIL PROTECTED]>**20081008151758
Ignore-this: 3763cc352b6f28fa83d8fbe5b1077985
]
[Allow dist command to take a tag argument (issue 286).
Stephen Hicks <[EMAIL PROTECTED]>**20081006075133
It should probably be a "match_one_context" instead of a "match_one"
option type, and then instead of using the "nonranged" matcher, we'd
use the "patchset" ones (that don't exist yet). But I couldn't figure
out how to blend "get_nonrange_match" and "get_one_patchset" in any
sensical way to get immediate pristine output (and all the more so for
the "_s" variants). So for now, contexts are not supported, but it
would be nice if they were someday.
]
[Optimize clean_hashdir's use of cleanCaches.
Petr Rockai <[EMAIL PROTECTED]>**20081007191237
We now only ask cleanCaches to look at files we have unlinked and therefore
might have caused their cached equivalents to drop link-count to 1. Limits
number of stats to O(n), n = number of cleaned out files.
]
[partial haddock documentation of Arguments.lhs
Florent Becker <[EMAIL PROTECTED]>**20081007131122]
[Restore quiet grep in portable_pwd
Eric Kow <[EMAIL PROTECTED]>**20081005164212
Only this time, we use > /dev/null.
]
[Disable a test that triggers a setCooked failure under Windows.
Eric Kow <[EMAIL PROTECTED]>**20081005145124]
[mv nfs-failure test to the bugs/ folder, since it fails.
David Roundy <[EMAIL PROTECTED]>**20081005130112
Ignore-this: 73c6e55558233f1b56d7ff51f327f454
]
[further makefile cleanups.
David Roundy <[EMAIL PROTECTED]>**20081005124353
Ignore-this: 8c498e4b793b7049e273d6ac98441256
]
[Simplify testing in makefile.
Eric Kow <[EMAIL PROTECTED]>**20081005092416]
[Revise test documentation to reflect consolidation to shell tests.
Eric Kow <[EMAIL PROTECTED]>**20081005091131]
[Remove Perl test harness and convenience copies.
Eric Kow <[EMAIL PROTECTED]>**20081005090921]
[Do not use Perl test harness.
Eric Kow <[EMAIL PROTECTED]>**20081005090903]
[Hopefully fix issue595 test on Solaris.
Eric Kow <[EMAIL PROTECTED]>**20081005090156
I'm not entirely clear on what is causing this to fail.
The basic test is:
mkdir -p restrictive/liberal
chmod 111 restrictive
cd restrictive/liberal
darcs get
This is apparantly known to fail under Solaris. The original Perl test
claims it's because you can't cd into restrictive/liberal, but the shell
variant seems to manage fine. In any case, I think this touch file
check is simpler.
]
[Translate merging_newlines bug into shell and restore bug context.
Eric Kow <[EMAIL PROTECTED]>**20081005085031
This used to be a TODO item at the end of the merging_newlines
test, but when it was moved out, the actions required to set up
a bug were forgotten. This patch restores those actions.
]
[Translate some Perl bugs into shell.
Eric Kow <[EMAIL PROTECTED]>**20081005084157]
[fix bug in external.sh translation.
David Roundy <[EMAIL PROTECTED]>**20081005122814
Ignore-this: 1291ebf27ea9c4a04d79c877b0f6f82d
]
[Translate printer test into shell.
Eric Kow <[EMAIL PROTECTED]>**20081005020140]
[Translate still more Perl tests into shell.
Eric Kow <[EMAIL PROTECTED]>**20081005012058]
[Translate pull_many_files tests into shell and avoid redoing work.
Eric Kow <[EMAIL PROTECTED]>**20081005004120
Just use whatever format is in .darcs/defaults
]
[Remove residual Perlisms in match-date.
Eric Kow <[EMAIL PROTECTED]>**20081005000324]
[Translate date matching test to shell.
Eric Kow <[EMAIL PROTECTED]>**20081005000243]
[Skip filepath test which does not work on Windows.
Eric Kow <[EMAIL PROTECTED]>**20081004234806]
[Fix non-portable use of grep -q in tests.
Eric Kow <[EMAIL PROTECTED]>**20081004234524]
[Make sed usage more portable in hidden_conflict2 test.
Eric Kow <[EMAIL PROTECTED]>**20081004233717]
[Use example.com in external.pl tests.
Eric Kow <[EMAIL PROTECTED]>**20080928082407
This avoids timing out in some DNS lookup. When I first wrote this
test, I did not know that RFC2606 has reserved example.{com,net,org}
which seems to be useful in precisely this situation.
]
[fix incorrect merging_newlines.sh test.
David Roundy <[EMAIL PROTECTED]>**20081004223547
Ignore-this: 33ebc10cd54112ec101750dd6c75fdf9
]
[Move merging_newlines test to bugs and add a simpler version.
Eric Kow <[EMAIL PROTECTED]>**20081004135724
There are two issues I noticed when converting this Perl test into
shell. This test was passing, but I made some mistakes translating it,
and in doing so, noticed two potential bugs.
The first is a potentially hidden conflict. If we start from
a file
from temp1
<EOF>
And then it seems that a change which adds an empty line should
conflict with a change that adds a line with content.
The second is that if you do omit the newline, as the original
test does,
from temp1<EOF>
you get some strange-looking changes, namely that appending a
line to this yields two addline changes and not one.
]
[Translate some more Perl tests into shell.
Eric Kow <[EMAIL PROTECTED]>**20081004201632]
[Translate some more Perl tests into shell.
Eric Kow <[EMAIL PROTECTED]>**20081004163850
Shell equivalents already exist for these particular tests,
but they may not do the same thing.
]
[Move non-date-matching code out of match.pl
Eric Kow <[EMAIL PROTECTED]>**20081004145445
The goal is to minimise and eventually eliminate our use of Perl
for regression tests.
]
[Fix minor bug in conflict-doppelganger test.
Eric Kow <[EMAIL PROTECTED]>**20081004163746
It does not account for --old-fashioned-inventory being
in .darcs/defaults
]
[Update tests to reflect --darcs-2 default.
Eric Kow <[EMAIL PROTECTED]>**20080925143252
We need to explicitly say --old-fashioned-inventory to test
accordingly.
]
[Translate some more Perl tests into shell.
Eric Kow <[EMAIL PROTECTED]>**20081004092507]
[remove -q from diff in test, not supported on solaris
Tommy Pettersson <[EMAIL PROTECTED]>**20081003205756]
[Translate some Perl tests into shell.
Eric Kow <[EMAIL PROTECTED]>**20081003183746]
[Convert tag.pl test into shell.
Eric Kow <[EMAIL PROTECTED]>**20081003095231]
[make default_boring and default_binaries NOINLINE
David Roundy <[EMAIL PROTECTED]>**20081001202731
Ignore-this: f74741738a612bb283d1e871d70aa492
This is primarily so I won't have to recompile all of darcs when these
change, but also because they shouldn't be inlined. It would just be
a waste of space (and would slow down darcs).
]
[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.
]
[add test that overriding of defaults works right.
David Roundy <[EMAIL PROTECTED]>**20081001175645
Ignore-this: aedfd923676b1fa35c25c72abb88c8f3
]
[Test for issue1105.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080929142205
Ignore-this: 5b7c2f7d270ab614eb1294566048a586
]
[Resolve issue1105: check if default options are valid.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080929141948
Ignore-this: 17b4b27e31545689f21496f7fc9c9fe7
]
[Restore 'simplify patches in rollback'.
Eric Kow <[EMAIL PROTECTED]>**20080926225429]
[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'.
]
[Implement Commands.Check in terms of Repository.Repair functionality.
[EMAIL PROTECTED]
[Implement Commands.Repair in terms of Repository.Repair functionality.
[EMAIL PROTECTED]
[Export testTentative from Darcs.Repository.
[EMAIL PROTECTED]
[Implement Repository.Repair to provide primitives for check and repair commands.
[EMAIL PROTECTED]
[keep changepref patches from breaking the toSimple optimization.
David Roundy <[EMAIL PROTECTED]>**20080924162022
Ignore-this: 404a4386b048b74dd9afcdde47bc1b11
]
[rewrite push_coalesce_patch to avoid calls to lengthFL.
David Roundy <[EMAIL PROTECTED]>**20080924161517
Ignore-this: cf746702c3b1e06ab2d400878e20e305
]
[make various autoconf simplifications.
David Roundy <[EMAIL PROTECTED]>**20080923150742
Ignore-this: 213c53eda0b54c01909c8d15b2a5fdd6
]
[TAG 2.1.0
Eric Kow <[EMAIL PROTECTED]>**20081009120532]
Patch bundle hash:
32302ff009597334493d18199ef71fc6b8fb3fe9
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users