Notes: - also includes stuff these patches depend on - scrutiny requested... i don't really know if what i'm doing is right, and also I'm not running under Windows, so I can't tell if my code does the right thing (I do know it compiles, but that's about it)
This fixes Windows redirection of stdin/stdout to /dev/null. The consequence of this fix is that putty breaks (because it relies on stdin/stdout for user interaction), so I also threw in some fanciness so that we could exec ssh without the redirections. Seems to work fine with OpenSSH and Putty on my Mac. Fri Jul 7 07:41:34 CEST 2006 Eric Kow <[EMAIL PROTECTED]> * Exec improvements : Windows redirection, and more redirection control. - Implement ability to redirect to /dev/null under Windows (eivuokko on #darcs points out that it is NUL under Windows) - Add exec_ function, which does the same thing as exec, but allows redirection on stderr, and also allows us to NOT redirect stdin/stderr Fri Jul 7 07:46:11 CEST 2006 Eric Kow <[EMAIL PROTECTED]> * Do not redirect to /dev/null when calling ssh. Redirection of stdin and stdout breaks putty, which uses these to interact with the user. Quiet mode and redirecting stderr are good enough for making ssh silent.
New patches: [Improved SSH ControlMaster check. Eric Kow <[EMAIL PROTECTED]>**20060706201819 Remove spurious error messages seen in issue200 and issue219. Fixes issue218. ] < > { hunk ./External.hs 17 import List ( intersperse ) import Monad ( liftM, when, zipWithM_ ) +import Data.Maybe ( isJust ) import System ( ExitCode(..), system, getEnv ) import IO ( hPutStr, hPutStrLn, hClose, hFlush, try, stdout ) import System.IO.Error ( isDoesNotExistError ) hunk ./External.hs 42 import FastPackedString ( PackedString, readFilePS, gzReadFilePS, writeFilePS, hPutPS, unpackPS, linesPS, unlinesPS, lengthPS, takePS, dropPS, packString, - nullPS, nilPS, concatPS + nullPS, nilPS, concatPS, substrPS, ) import Lock ( withTemp, withOpenTemp, readDocBinFile, canonFilename, writeBinFile, writeDocBinFile, hunk ./External.hs 699 -- Because of the unsafePerformIO above, this can be called at any -- point. It cannot rely on any state, not even the current directory. hasSSHControlMasterIO :: IO Bool -hasSSHControlMasterIO = do - (ssh, _) <- getSSHOnly SSH - -- If ssh has the ControlMaster feature, it will recognise the - -- the -O flag, but exit with status 255 because of the nonsense - -- command. If it does not have the feature, it will simply dump - -- a help message on the screen and exit with 1. - sx <- exec ssh ["-O", "an_invalid_command"] "/dev/null" "/dev/null" - case sx of - ExitFailure 255 -> return True - _ -> return False +hasSSHControlMasterIO = + do (ssh, _) <- getSSHOnly SSH + -- With OpenSSH and Putty, launching ssh with no arguments gives + -- us the help text. We parse this text to determine if it + -- it supports the ControlMaster feature (right now this consists + -- of looking for the switch -O) + withTemp $ \ho -> do + exec ssh [] "/dev/null" ho + -- no reason to use a PackedString, but no reason not to either + liftM hasCM (readFilePS ho) + where + dashO = packString "-O " + hasCM = isJust . (substrPS dashO) -- | Launch an SSH control master in the background, if available. -- We don't have to wait for it or anything. } [Refactor calls to ssh/scp/sftp. Eric Kow <[EMAIL PROTECTED]>**20060706202509 ] < > { hunk ./External.hs 168 copySSH :: String -> FilePath -> IO () copySSH uRaw f = let u = escape_dollar uRaw in do - (scp, scp_args) <- getSSH SCP u - r <- exec scp (scp_args++[u,f]) - "/dev/null" "/dev/null" + r <- runSSH SCP u [] [u,f] "/dev/null" when (r /= ExitSuccess) $ fail $ "(scp) failed to fetch: " ++ u where {- '$' in filenames is troublesome for scp, for some reason.. -} hunk ./External.hs 251 "source files:"] ++ ns copySSHs :: String -> [String] -> FilePath -> IO () -copySSHs u ns d = do (sftp, sftp_args) <- getSSH SFTP u - let path = drop 1 $ dropWhile (/= ':') u +copySSHs u ns d = do let path = drop 1 $ dropWhile (/= ':') u host = (takeWhile (/= ':') u)++":" cd = "cd "++path++"\n" input = cd++(unlines $ map ("get "++) ns) hunk ./External.hs 259 withTemp $ \sftpoutput -> do hPutStr th input hClose th - r <- exec sftp (sftp_args++["-b",tn,host]) - "/dev/null" sftpoutput + r <- runSSH SFTP u [] ["-b",tn,host] sftpoutput let files = if length ns > 5 then (take 5 ns) ++ ["and " ++ (show (length ns - 5)) ++ " more"] hunk ./External.hs 338 -- reading its output. Return its ExitCode execSSH :: String -> String -> IO ExitCode execSSH remoteAddr command = - do (ssh, ssh_args) <- getSSH SSH remoteAddr - exec ssh (remoteAddr:ssh_args++[command]) "/dev/null" "/dev/null" + runSSH SSH remoteAddr [remoteAddr] [command] "/dev/null" pipeDoc_SSH_IgnoreError :: String -> [String] -> Doc -> IO Doc pipeDoc_SSH_IgnoreError remoteAddr args input = hunk ./External.hs 648 show SCP = "scp" show SFTP = "sftp" +runSSH :: SSHCmd -> String -> [String] -> [String] -> FilePath -> IO ExitCode +runSSH cmd remoteAddr preArgs postArgs output = + do (ssh, args) <- getSSH cmd remoteAddr + exec ssh (preArgs ++ args ++ postArgs) "/dev/null" output + -- | Return the command and arguments needed to run an ssh command -- along with any extra features like use of the control master. -- See 'getSSHOnly' } [Run ssh/scp/sftp quietly. Eric Kow <[EMAIL PROTECTED]>**20060707025245 This is useful for silencing Putty, and could also be for OpenSSH should we decide to stop redirecting to /dev/null. ] < > { hunk ./External.hs 667 hasCmFeature <- doesFileExist cmPath let cm_args = if hasCmFeature then [ "-o ControlPath=" ++ cmPath ] else [] -- - return (ssh, ssh_args ++ cm_args) + return (ssh, "-q" : ssh_args ++ cm_args) -- | Return the command and arguments needed to run an ssh command. -- First try the appropriate darcs environment variable and SSH_PORT } [Exec improvements : Windows redirection, and more redirection control. Eric Kow <[EMAIL PROTECTED]>**20060707054134 - Implement ability to redirect to /dev/null under Windows (eivuokko on #darcs points out that it is NUL under Windows) - Add exec_ function, which does the same thing as exec, but allows redirection on stderr, and also allows us to NOT redirect stdin/stderr ] < > { hunk ./Exec.lhs 19 \begin{code} {-# OPTIONS -fffi #-} -module Exec ( exec, exec_interactive +module Exec ( exec, exec_, exec_interactive ) where import System hunk ./Exec.lhs 38 wcss (s:ss) css = withCString s $ \cstr -> wcss ss (cstr:css) #endif -exec :: String -> [String] -> FilePath -> FilePath -> IO ExitCode +exec :: String -> [String] -> FilePath -> FilePath -> IO ExitCode +exec c args inp out = exec_ c args (Just inp) (Just out) Nothing + +-- lets you opt not to redirect streams, and to (optionally) redirect stderr +exec_ :: String -> [String] -> Maybe FilePath -> Maybe FilePath -> Maybe FilePath -> IO ExitCode #ifdef WIN32 hunk ./Exec.lhs 45 -exec c args "/dev/null" "/dev/null" = system $ c++" "++careful_unwords args -exec c args "/dev/null" out = - system $ c++" "++careful_unwords args++" > "++careful_unwords [out] -exec c args inp "/dev/null" = - system $ c++" "++careful_unwords args++" < "++careful_unwords [inp] -exec c args inp out = - system $ c++" "++careful_unwords args++" < "++careful_unwords [inp]++" > "++careful_unwords [out] +exec_ c args minp mout merr = + let redirect side mp = + case mp of + Nothing -> "" + Just "/dev/null" -> side ++ "NUL" + Just p -> side ++ careful_unwords [p] + redirectErr = + case merr of + Nothing -> "2>&1" + Just e -> redirect " 2> " (Just e) + in system $ c ++" "++careful_unwords args + ++(redirect " < " minp) + ++(redirect " > " mout) + ++redirectErr careful_unwords :: [String] -> [Char] careful_unwords (a:as) = "\""++a++"\" "++ careful_unwords as hunk ./Exec.lhs 64 careful_unwords [] = "" #else -exec c args inp out = do +exec_ c args minp mout merr = do fval <- c_fork hunk ./Exec.lhs 66 + let -- set up stdin redirection if needed + withStdin job = + case minp of + Nothing -> job + Just inp -> withCString inp $ \in_c -> do + fdin <- open_read in_c + c_dup2 fdin 0 + job + -- set up stdout/stderr redirection if needed + withStdout job = + case mout of + -- no stdout redirection + Nothing -> + case merr of + Nothing -> job + Just e -> withCString e $ \err_c -> do + fderr <- open_write err_c + c_dup2 fderr 2 + job + -- stdout redirection + Just out -> withCString out $ \out_c -> do + fdout <- open_write out_c + c_dup2 fdout 1 + case merr of + Nothing -> do c_dup2 fdout 2 -- stderr to stdout + job + Just e -> withCString e $ \err_c -> do + fderr <- open_write err_c + c_dup2 fderr 2 + job + -- fork and go case fval of -1 -> return $ ExitFailure $ 1 hunk ./Exec.lhs 99 - 0 -> withCString inp $ \in_c -> - withCString out $ \out_c -> + 0 -> withStdin $ withStdout $ withCString c $ \c_c -> withCStrings (c:args) $ \c_args -> do hunk ./Exec.lhs 102 - fdin <- open_read in_c - fdout <- open_write out_c - c_dup2 fdout 1 - c_dup2 fdout 2 - c_dup2 fdin 0 - -- execvp only returns if there is an error: - ExitFailure `liftM` execvp_no_vtalarm c_c c_args + -- execvp only returns if there is an error: + ExitFailure `liftM` execvp_no_vtalarm c_c c_args pid -> do ecode <- smart_wait pid if ecode == 0 then return ExitSuccess else return $ ExitFailure ecode } [Do not redirect to /dev/null when calling ssh. Eric Kow <[EMAIL PROTECTED]>**20060707054611 Redirection of stdin and stdout breaks putty, which uses these to interact with the user. Quiet mode and redirecting stderr are good enough for making ssh silent. ] < [Exec improvements : Windows redirection, and more redirection control. Eric Kow <[EMAIL PROTECTED]>**20060707054134 - Implement ability to redirect to /dev/null under Windows (eivuokko on #darcs points out that it is NUL under Windows) - Add exec_ function, which does the same thing as exec, but allows redirection on stderr, and also allows us to NOT redirect stdin/stderr ] > { hunk ./External.hs 52 import Autoconf ( have_libcurl, have_sendmail, have_mapi, sendmail_path, darcs_version ) import Curl ( copyUrl ) import Curl ( Cachable(..) ) -import Exec ( exec ) +import Exec ( exec, exec_ ) import DarcsURL ( is_file, is_url, is_ssh ) import DarcsUtils ( catchall ) import Printer ( Doc, hPutDoc, hPutDocLn, ($$), (<+>), renderPS, hunk ./External.hs 168 copySSH :: String -> FilePath -> IO () copySSH uRaw f = let u = escape_dollar uRaw in do - r <- runSSH SCP u [] [u,f] "/dev/null" + r <- runSSH SCP u [] [u,f] Nothing when (r /= ExitSuccess) $ fail $ "(scp) failed to fetch: " ++ u where {- '$' in filenames is troublesome for scp, for some reason.. -} hunk ./External.hs 259 withTemp $ \sftpoutput -> do hPutStr th input hClose th - r <- runSSH SFTP u [] ["-b",tn,host] sftpoutput + r <- runSSH SFTP u [] ["-b",tn,host] (Just sftpoutput) let files = if length ns > 5 then (take 5 ns) ++ ["and " ++ (show (length ns - 5)) ++ " more"] hunk ./External.hs 338 -- reading its output. Return its ExitCode execSSH :: String -> String -> IO ExitCode execSSH remoteAddr command = - runSSH SSH remoteAddr [remoteAddr] [command] "/dev/null" + runSSH SSH remoteAddr [remoteAddr] [command] Nothing pipeDoc_SSH_IgnoreError :: String -> [String] -> Doc -> IO Doc pipeDoc_SSH_IgnoreError remoteAddr args input = hunk ./External.hs 648 show SCP = "scp" show SFTP = "sftp" -runSSH :: SSHCmd -> String -> [String] -> [String] -> FilePath -> IO ExitCode -runSSH cmd remoteAddr preArgs postArgs output = +runSSH :: SSHCmd -> String -> [String] -> [String] -> Maybe FilePath -> IO ExitCode +runSSH cmd remoteAddr preArgs postArgs mout = do (ssh, args) <- getSSH cmd remoteAddr hunk ./External.hs 651 - exec ssh (preArgs ++ args ++ postArgs) "/dev/null" output + exec_ ssh (preArgs ++ args ++ postArgs) Nothing mout (Just "/dev/null") -- | Return the command and arguments needed to run an ssh command -- along with any extra features like use of the control master. } Context: [Added up links in web interface. Peter Stuifzand <[EMAIL PROTECTED]>**20060610082238 Added a link to the 'projects' part of the cgi repository interface, so that you go back to the project list. ] [Merge makefile targets test_perl and test_shell into test_scripts. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060607223134 This should keep parallel make from breaking. ] [bump version to 1.0.8pre1 Tommy Pettersson <[EMAIL PROTECTED]>**20060522122655] [Add warning to Eric's SSHControlMaster rework. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060528194136] [Only launch SSH control master on demand (fixes issue171) Eric Kow <[EMAIL PROTECTED]>**20060528093000 A secondary benefit is that this encapsulates the use of the control master functionality and consequently simplifies calling ssh. There is no need to deal with the details of launching or exiting the control master. ] [Add a test suite for calling external programs. Eric Kow <[EMAIL PROTECTED]>**20060521045407 For now this only includes a test for ssh (issue171). ] [Fail with a sensible message when there is no default repository to pull from. [EMAIL PROTECTED] [TAG 1.0.7 Tommy Pettersson <[EMAIL PROTECTED]>**20060513171438] [make 1.0.7 latest stable source on web page Tommy Pettersson <[EMAIL PROTECTED]>**20060513000703] [add some entries to the change log Tommy Pettersson <[EMAIL PROTECTED]>**20060512235752] [bump version to 1.0.7 Tommy Pettersson <[EMAIL PROTECTED]>**20060512235738] [TAG 1.0.7rc1 Tommy Pettersson <[EMAIL PROTECTED]>**20060508101408] [bump version to 1.0.7rc1 Tommy Pettersson <[EMAIL PROTECTED]>**20060508101349] [Extend test suite for patch matching. Eric Kow <[EMAIL PROTECTED]>**20060513192501 ] [Implement help --match (issue91). Eric Kow <[EMAIL PROTECTED]>**20060513185610 Also, refactor matching code in a way that encourages developers to document for help --match any new matchers they create. ] [Replace dateparser.sh with more general match.pl for testing --match. Eric Kow <[EMAIL PROTECTED]>**20060513104942 ] [Add tests for pristine error and quiet mode when removing a directory. Eric Kow <[EMAIL PROTECTED]>**20060513100021] [Suppress non-empty dir warning if Quiet. Eric Kow <[EMAIL PROTECTED]>**20060513053456] [Replace test rmdir.sh with rmdir.pl. Eric Kow <[EMAIL PROTECTED]>**20060513043823] [fix error is is_pipe test in error reporting. (fixes Issue160) David Roundy <[EMAIL PROTECTED]>**20060501142114 The trouble was that Ian (quite naturally) assumed that my C function stdout_is_a_pipe returned nonzero for true, whereas for some very, very backwards reason it returned zero for true, and its result was properly interpreted. So I caused this bug by my (unexplained) backwards programming, but it was introduced when Ian refactored the C code. :( ] [Add forgotten file umask.h. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060423174844] [TAG 1.0.7pre1 Tommy Pettersson <[EMAIL PROTECTED]>**20060427095905] [Add --umask to all commands that write to the current repository. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060407195655] [Add option --umask. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060407194552] [Actually switch umasks in withRepoLock. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060407194202] [Implement withUMask. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060407193312] [Add umask.c. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060407193255] [Propagate opts to withRepoLock. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060325190622] [Provide some error reporting for remote identifyRepository. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060325234958] [Note on sftp usage and other fixes. Dave Love <[EMAIL PROTECTED]>**20060403122032] [Allow for non-empty subdir when applying rmdir patch to working dir. Eric Kow <[EMAIL PROTECTED]>**20060405231909 Do not delete the directory; just print a warning. Fix for issue154. ] [Add a 'is working dir' flag to PatchApply.apply. Eric Kow <[EMAIL PROTECTED]>**20060405225201 Half of the solution to issue154. This is so that we can have different behaviours when applying to the working directory, as opposed to the pristine tree. ] [Tidy help command. Eric Kow <[EMAIL PROTECTED]>**20060402225837] [Display list of subcommands when getting help on a supercommand. Eric Kow <[EMAIL PROTECTED]>**20060402190038] [Add test case for issue154 (rmdir on non-empty subdir in working). Eric Kow <[EMAIL PROTECTED]>**20060402134933] [write with fancyPrinters to pager (issue108) Tommy Pettersson <[EMAIL PROTECTED]>**20060319234103] [make Printers choose policy for supplied file handle Tommy Pettersson <[EMAIL PROTECTED]>**20060319233723] [Added additional common binary image file formats to binary regex. Daniel Freedman <[EMAIL PROTECTED]>**20060321002940] [Added a RSS link to common.xslt. Peter Stuifzand <[EMAIL PROTECTED]>**20060321222242 With the RSS link in the head tag it is easier for RSS reader to find the link. ] [Add --logfile and --delete-logfile options to send command. Zachary P. Landau <[EMAIL PROTECTED]>**20060114214510] [Fix merge conflicts. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060325182457] [docfix, pull can take more than one URL Tommy Pettersson <[EMAIL PROTECTED]>**20060319193913] [Use withRepoLock systematically in Repository.lhs. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060303175729 Unlike the other functions in Repository.lhs, get_unrecorded and sync_repo used to require that the caller chdir to the right place. This fixes this inconsistency. ] [Add -i as an alias for --interactive. Zachary P. Landau <[EMAIL PROTECTED]>**20060302184640] [remove redundant import. David Roundy <[EMAIL PROTECTED]>**20060318122848] [Refactor external-merge feature to use CommandLine.parseCmd. Eric Kow <[EMAIL PROTECTED]>**20060320235932 ] [Add a flag to disable use of SSH control master. Eric Kow <[EMAIL PROTECTED]>**20060320235217] [More detailed comments for SSH control master. Eric Kow <[EMAIL PROTECTED]>**20060320235200] [Fix a button bar layout bug (wxDarcs). Eric Kow <[EMAIL PROTECTED]>**20060307033857] [Add a --diff-command flag. Eric Kow <[EMAIL PROTECTED]>**20060318001522] [Multiplex transactions over a single ssh connection (issue32). Eric Kow <[EMAIL PROTECTED]>**20060317233337 Eliminates the need to type your password a million times. This requires a recent version of OpenSSH with the ControlMaster feature, but it is harmless if you do not have it. ] [Refactor calls to ssh. Eric Kow <[EMAIL PROTECTED]>**20060317214816 Also, separate out the argument for the remote address in some calls. This makes it easier to implement functionality like use of the ControlMaster feature. ] [Minor simplifications of DateMatcher.lhs. Eric Kow <[EMAIL PROTECTED]>**20060317212529] [Minor tweaks to manual. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060307143305] [Fix merge conflicts. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060307135524] [make "-f" a synonym for "--force" [EMAIL PROTECTED] [Correct gui patch selection for commands like obliterate. Eric Kow <[EMAIL PROTECTED]>**20060307032303 The gui patch selection system did not reverse/invert patches in commands that need this behaviour (obliterate, unrecord). We solve the problem by relying on code which factorises common behaviour between the text and graphical patch selection systems. ] [Refactor output end of SelectChanges. Eric Kow <[EMAIL PROTECTED]>**20060307032052] [Fix layout bug in OS X Tiger (wxDarcs). Eric Kow <[EMAIL PROTECTED]>**20060302142517 Seems the solution to all gui ills is to add another panel. ] [Resolve darcs gui conflict. Eric Kow <[EMAIL PROTECTED]>**20060302010257 Pull.lhs was conflicting with Edwin Thomson's 2005-12-08 patch "Don't make merge folders when we don't need them". This patch merges the changes. ] [Correct copyFrameworks script (gui, osx). [EMAIL PROTECTED] All binaries and libraries have some entry which tells what libraries they are linked against. Any libraries which are not on the vanilla OS X need to be copied into the application bundle so that it will work anywhere. Whilst copying the libraries, you also need to change the entries refering to these libraries so that they point to the application bundle, and not their original path (e.g. /usr/local/lib). I had done this for the binary, but not for the libraries being copied. Also, make the copying of libraries recursive. ] [Correct compilation of gui code in console mode. Eric Kow <[EMAIL PROTECTED]>**20060131013107] [Scripts and makefile target to distribute wxDarcs on OS X. Eric Kow <[EMAIL PROTECTED]>**20060131012439 Creates an application bundle and a .dmg file. ] [Add a standalone graphical interface. Eric Kow <[EMAIL PROTECTED]>**20060131012036 The gui code prior to this patch allows graphical darcs forms to be run from the command line. This builds off that functionality by adding a graphical front-end, allowing users to access these forms with a click of a button. In other words, this allows users to run darcs without the command line. Much more work will have to be done on this front end before it is as usable as the command-line darcs, but hopefully patch shall kick things off. ] [Send darcs commands' output to log (gui only). Eric Kow <[EMAIL PROTECTED]>**20060130232608 If running in SubGui mode, darcs commands send their output to wxWidgets log instead of stdout, because under the standalone gui, this output would otherwise be hidden. ] [Add a lock mechanism for graphical interfaces. Eric Kow <[EMAIL PROTECTED]>**20060130215323 Add a distinct lock for the GUI. What makes this lock different is that taking and setting the lock are done seperately, instead of using an atomic operation like withRepoLock. This allows us to assign the releasing of the lock to GUI events like closing a window. This would be useful for a standalone interface to prevent weird race conditions, for example, from mulitple Record windows being open. Note that withLock is not enough for this purpose; the lock would already be released before the user even touches the window. ] [Make unpull, unrecord, obliterate accept --gui. Eric Kow <[EMAIL PROTECTED]>**20060130201041 This also has the side effect of them accepting --interactive. ] [Abstract the patch-viewer widget. Eric Kow <[EMAIL PROTECTED]>**20060130153753 We shouldn't care how the patch-viewer is implemented. ] [Add a SubGui flag. Eric Kow <[EMAIL PROTECTED]>**20060130153530 The SubGui flag enables commands to be run under a main GUI. The idea is that wxhaskell's start function really does not like to be called more than once, so we avoid calling it a second time if a main gui already has done so. ] [Remove tabs in graphical output. Eric Kow <[EMAIL PROTECTED]>**20060130134403 Wxhaskell has trouble when tabs are included in the text to be displayed. We quietly convert these tabs into spaces. ] [(GUI) Create GuiUtils.lhs, move tree widget code to it. Eric Kow <[EMAIL PROTECTED]>**20060129004445 Also, simplify the tree widget code. This file will provide a central place for various graphical odds and ends. ] [Refactor calls to Rez in makefile (OS X). Eric Kow <[EMAIL PROTECTED]>**20060125235731] [Fix layout bugs in GUI (buttons were being hidden). Eric Kow <[EMAIL PROTECTED]>**20060122215729 For some reason, scrolled windows seem to need to be inside of panels for them to behave correctly when their parent windows are resized. Otherwise they hide the button bars used in Record and SelectChanges. Also, slightly simplify GUI code to avoid proliferation of widgets. ] [Fix conflict between Zachary P. Landau's and my patch. Eric Kow <[EMAIL PROTECTED]>**20060306010743 ] [Refactor SelectChanges.lhs. Eric Kow <[EMAIL PROTECTED]>**20060306004421 1. Rearrange parameters of with_any_selected_changes to favour eta reduction. 2. Refactor type definitions for with_selected...changes functions to indicate that it's all the same thing. 3. Separate patch counting with decisions about which patches we should consider. ] [Perl tests: get rid of 'darcs: <stdin>: hGetLine: end of file' messages Marnix Klooster <[EMAIL PROTECTED]>**20060304180420 These were printed because 'n' was not answered to 'Really unpull' and 'Really obliterate' questions. Also, do not send superfluous '\n' to darcs in echo_to_darcs(). ] [Test pull.pl, CREATE_DIR_ERROR: removed TODO now that directory name is printed in error message Marnix Klooster <[EMAIL PROTECTED]>**20060304164033 Also removes a superfluous (and erroneous) chdir statement, which tried to change to non-existing directory templ (last character was ell instead of one). Also improves the description of this test. ] [Make darcs exit after last patch in changes --interactive. Zachary P. Landau <[EMAIL PROTECTED]>**20060303014534 Currently, hitting 'j' on the last patch in changes --interactive has no effect. This patch will cause darcs to exit, making the command more consistent with an interactive pull. ] [Fix crash when using changes --interactive with --patch or --match Zachary P. Landau <[EMAIL PROTECTED]>**20060303013820] [Chdir systematically in Repository.lhs. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060303181824 Unlike the other functions in Repository.lhs, applyToPristine, get_unrecorded and sync_repo used to require that the caller chdir to the right place. This fixes that inconsistency. ] [Improved support for absolute paths (issue39) Eric Kow <[EMAIL PROTECTED]>**20060304111532 This modifies fix_maybe_absolute so that if you specify a repository directory, any absolute paths prefixed by this directory are converted to be ones relative to the repodir. The following commands now account for arguments which are absolute paths but refer to files in the repository: add, amend-record, annotate, changes, diff, mv, record, remove, replace, revert, whatsnew The following commands are not actually affected, though the code is changed: apply, push, pull, put. This patch also slightly refactors FilePathUtils.lhs ] [Enable tests for absolute paths. Eric Kow <[EMAIL PROTECTED]>**20060304104355] [Extend argument substitution for --external-merge Daan Leijen <[EMAIL PROTECTED]>**20060214062042 Argument substitution used to work on words at the time which made it difficult to use Windows merge tools like the supernice tortoiseMerge. Now, substitution of "%a" etc. takes place everywhere and we can write: --external-merge 'tortoiseMerge /base:"%a" /mine:"%1" /theirs:"%2" /merged:"%o" To make it complete, we substitute "%%" to "%". ] [boring += autom4te.cache/ Kirill Smelkov <[EMAIL PROTECTED]>**20060130071416] [omit the "Finished getting." message when --quiet Simon Marlow <[EMAIL PROTECTED]>**20060120074731] [Enable GUI on MacOS X with /Developer/Tools/Rez. Eric Kow <[EMAIL PROTECTED]>**20060121004325 Without this command, the darcs GUI does not take focus under MacOS X. ] [Reimplement flexible GUI widget for whatsnew. Eric Kow <[EMAIL PROTECTED]>**20060121001049 The current implementation was not working, maybe as a result of a wxhaskell or WxWidgets bug in which resized widgets lose their new sizes when the parent window is resized. The new implementation works around this by displaying patches in tree form. Each node is a patch summary, and expanding that node reveals the full patch. ] [Freshen GUI code so that it compiles. Eric Kow <[EMAIL PROTECTED]>**20060121000818] [Don't make merge folders when we don't need them [EMAIL PROTECTED] ] [Add "y" and "n" commands to changes --interactive. Zachary P. Landau <[EMAIL PROTECTED]>**20060115054548] [Save email description file if a send fails Zachary P. Landau <[EMAIL PROTECTED]>**20060114204826] [posthook success/failure messages with --verbose only Jason Dagit <[EMAIL PROTECTED]>**20060113204930 Changes behavior of posthook status messages. Use --verbose to have posthook status messages. Error reporting can be turned off with --quiet. Note: The command run by the posthook might still generate output, this patch does not address this output. ] [bump version to 1.0.7pre1 Tommy Pettersson <[EMAIL PROTECTED]>**20060301000323] [show 1.0.6 as latest stable source on web page Tommy Pettersson <[EMAIL PROTECTED]>**20060301000158 Forgot this, again :-/ ] [removed last bits of create-repo from makefile (issue14) Jason Dagit <[EMAIL PROTECTED]>**20060113212432] [TAG 1.0.6 Tommy Pettersson <[EMAIL PROTECTED]>**20060228111841] [bump version to 1.0.6 Tommy Pettersson <[EMAIL PROTECTED]>**20060228111833] [fix bug in release state version extraction Tommy Pettersson <[EMAIL PROTECTED]>**20060226182419 Save result of old regexp match before matching new regexps. ] [remove dependency on unit from normal tests in makefile Tommy Pettersson <[EMAIL PROTECTED]>**20060226181751] [bump version to 1.0.6rc2 Tommy Pettersson <[EMAIL PROTECTED]>**20060226164451] [TAG 1.0.6rc1 Tommy Pettersson <[EMAIL PROTECTED]>**20060219231919] [bump version to 1.0.6rc1 Tommy Pettersson <[EMAIL PROTECTED]>**20060219231900] [add some changelog entries Tommy Pettersson <[EMAIL PROTECTED]>**20060219231847] [change suggestion in bestpractices on reverting addfile to use remove Tommy Pettersson <[EMAIL PROTECTED]>**20051115101928] [resolve conflicts Tommy Pettersson <[EMAIL PROTECTED]>**20060219213218] [Minor documentation editing. Bill Trost <[EMAIL PROTECTED]>**20060108193245 Change details: * Replace "repo" with "repository" where practical. * Replace "an email" with something less grating. (-: * Try to consistify formatting, punctuation, & capitalization. * etc. ] [check for malicious path before applying patch (issue48) Tommy Pettersson <[EMAIL PROTECTED]>**20060219192328] [new test for unpull Tommy Pettersson <[EMAIL PROTECTED]>**20060212172344] [reimplement --set-script-executable after apply_list unoptimization Tommy Pettersson <[EMAIL PROTECTED]>**20060123004900] [revert optimization for apply_list Tommy Pettersson <[EMAIL PROTECTED]>**20060119231523 The optimization made unrecord and unpull sometimes fail. It, unnecessarily, removes the --set-script-executable functionality. ] [Commute patches when getting a specific version of a repo [EMAIL PROTECTED] Fix for issue 67 ] [add test for get --tag with commuted patches (Issue67) Tommy Pettersson <[EMAIL PROTECTED]>**20060211194736 Supplied by Grant Husbands. ] [Add newline between long comment and changed files list in dry-run summary [EMAIL PROTECTED] [remove TODO from three passing tests in pull.pl Tommy Pettersson <[EMAIL PROTECTED]>**20060211183857] [new TODO test for better message on directory conflict when pulling Mark Stosberg <[EMAIL PROTECTED]>**20051124003621] [test suite: fix some glitches in directory creation/removal Tommy Pettersson <[EMAIL PROTECTED]>**20060130012803] [dateparser.sh only tries to delete tmp if it exists Jason Dagit <[EMAIL PROTECTED]>**20060114021327] [All perl tests use cleanup at beginning instead of rm_rf Jason Dagit <[EMAIL PROTECTED]>**20060114021114 rm_rf will give an error (causing test to fail) when the directory is missing. Use cleanup instead as it will not give an error. ] [Added author to darcs record commandline in dateparser.sh Jason Dagit <[EMAIL PROTECTED]>**20060114021017] [Fixed minor typo in home page. Marnix Klooster <[EMAIL PROTECTED]>**20060113054649] [use exact matching in some changelog entries Tommy Pettersson <[EMAIL PROTECTED]>**20060129124023] [add some changelog entries Tommy Pettersson <[EMAIL PROTECTED]>**20060129123955] [Detect dates which overflow. Throw a more helpful error message. Eric Kow <[EMAIL PROTECTED]>**20060211194521 An example of a date which overflows is "105 years ago" on my system. For reference: The "problem" is not so much Haskell's System.Time, but in the underlying C library. System.Time uses Integer to represent ClockTime, so theoretically this number can be as big as we want. However, the function addToClockTime makes a call to 'mktime' (time.h) to get a value for the number of seconds elapsed since 1970. And this value is of a fixed-size type (time_h). If the number of seconds overflows, mktime returns -1 to indicate an error. This is detected by System.Time and propagated up as a user error "Time.toClockTime: invalid input". ] [Correct dateparser test's self-cleanup. Eric Kow <[EMAIL PROTECTED]>**20060129210701 The dateparser test was not properly removing its own tmp directory, causing it to be a pain when using the tests/tests_to_run mechanism. ] [Remove '4 score, 7 years ago' from dateparser test. Eric Kow <[EMAIL PROTECTED]>**20060129210635] [Update dateparser test with CVS style dates. Eric Kow <[EMAIL PROTECTED]>**20060120233434] [Add time zone support for CVS date parsing. (issue104) Eric Kow <[EMAIL PROTECTED]>**20060120233327 ] [refactor amInRepository, am_in_repository and findRepository Eric Kow <[EMAIL PROTECTED]>**20060115111509 replace helper functions with general seekRepo function also refactor am_not_in_repository ] [remove spurious '.' in doc Eric Kow <[EMAIL PROTECTED]>**20060114230020] [call unnamed patches "changes" in interactive patch selection dialogue Tommy Pettersson <[EMAIL PROTECTED]>**20060113203829 It currently affects record, revert and amend, but will generally do "the right thing". ] [fix pathname in comment in darcs.cgi.in [EMAIL PROTECTED] [fix win32 build breaks Will <[EMAIL PROTECTED]>**20060112054853] [fix content-type in rss output of cgi Will <[EMAIL PROTECTED]>**20060110052938] [resolve conflict Tommy Pettersson <[EMAIL PROTECTED]>**20060108173148] [Obey normal autoconf conventions. Dave Love <[EMAIL PROTECTED]>**20051117190231 Allows you to `make install prefix=...', for instance, and doesn't change default for sysconfdir. ] [add link to darcs-unstable repo on darcs home page Tommy Pettersson <[EMAIL PROTECTED]>**20060107212721] [Don't say "yes" in an infinite loop. Bill Trost <[EMAIL PROTECTED]>**20060108162605 I ended up with this test hanging forever because the while loop wasn't getting a SIGPIPE because of the way my editor environment (no controlling tty?) was set up. We have a pretty good idea of how many "y"s are needed anyhow. ] [fix crash caused by tests failing on amend-record Zachary P. Landau <[EMAIL PROTECTED]>**20060108174722] [Make the "record --pipe" docs match the program behavior. Bill Trost <[EMAIL PROTECTED]>**20060107050910] [Make --exact-version also work if darcs is built from "make dist" tar ball Marnix Klooster <[EMAIL PROTECTED]>**20060106205857 This is to prevent "darcs --exact-version" outputting something like darcs compiled on Mar 2 2005, at 10:56:16 unknown as it does when building from the output of "make dist", e.g., from the official tarballs at darcs.net. (This is what a lot of people and distros do. Gentoo does this, and I'm using Gentoo, and I want to be able to do "darcs --exact-version" and have it output something sensible.) The reason that this problem occurs is that while doing 'make predist' (in the 'predist' preference), Context.hs was nicely preserved by predist_copy, but then thrown away by distclean which calls clean. So the resulting tarball has no Context.hs, which results in the "unknown" exact version. The solution consists of the following: * Only remove Context.hs in "clean" if it can be rebuilt using its rule in automake.mk (i.e., if _darcs/inventory exists, so if we are in a repository). * Target realclean is renamed to the newer maintainer-clean and extended a little, according to the GNU make manual (not strictly necessary). As a result of this, we now follow GNU makefile conventions more closely. See the rules in the "Standard Targets for Users" section of the GNU make manual (currently at http://www.gnu.org/software/make/manual/html_node/make_127.html), and an interpretation of these rules in the "What Gets Cleaned" section of the GNU automake manual (currently at http://www.gnu.org/software/automake/manual/html_node/Clean.html). Thanks to Taral <[EMAIL PROTECTED]> for the above info. ] [only create log file when a long comment was requested Zachary P. Landau <[EMAIL PROTECTED]>**20060108181034] [Use temporary file when editing send description. Zachary P. Landau <[EMAIL PROTECTED]>**20051217212051] [--repodir for changes (RT #196 and #567) Eric Kow <[EMAIL PROTECTED]>**20060109001224 Changes already accepts a --repo flag for possibly remote repo dirs, but there is no reason not to also accept --repodir. The gain in consistency outweighs the cost in redundancy. Also, do not attempt to get_repodir unless --repo is in the arguments. This is so that --repodir can work with relative paths. (Otherwise, darcs tries to change directory twice, which is bad). ] [More canonization Eric Kow <[EMAIL PROTECTED]>**20060108235935 canonized : Mark Stosberg, Erik Schnetter, Joeri van Ruth identified: Richard Smith, Victor Hugo Borja Rodriguez ] [Improved single-character prompt (RT #261) Eric Kow <[EMAIL PROTECTED]>**20060108225741 In the dialogue prompting for a single character as a response, if the user just presses enter, we behave is if we got an invalid response. This way, the user gets a little bit of feedback that he should respond differently. Also: refactors the case where there is a default answer and where the user may press '?' for help. ] [Corrections to bugfix for (RT #466) Eric Kow <[EMAIL PROTECTED]>**20060108225411 The bug fix for case insensitive filesystems was incorrect because 1. canonicalizePath does not canonicalise the same filename with different cases into the same entry 2. RT #466 affects case sensitive and case insensitive file systems alike (i.e. the bug description was wrong) 3. canonicalizePath is not available in ghc 6.2.2 This correction also has the advantage of being much simpler and closer to what David Roundy suggested on the bug tracker. We remove the old file from the slurpy so that it doesn't get mistaken for the new file. ] [use _darcs/pristine in regression tests Eric Kow <[EMAIL PROTECTED]>**20060108222000] [Update "darcs init" documentation to match its behavior. Bill Trost <[EMAIL PROTECTED]>**20060105040737] [add a --without-docs option to configure [EMAIL PROTECTED] [fix for Issue14 remove darcs-createrepo Jason Dagit <[EMAIL PROTECTED]>**20051224002230] [Support --interactive option in changes command (issue #59). Zachary P. Landau <[EMAIL PROTECTED]>**20051221052049] [Fix type incompatibility between C code and Haskell foreign declaration. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060106154108] [Move patchSetToPatches to Repository.lhs Zachary P. Landau <[EMAIL PROTECTED]>**20051219043719] [Use _darcs/pristine instead of _darcs/current. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051215180814 All versions of Darcs since 1.0.2rc1 are able to handle either name. This will break compatibility of new repositories with older versions. ] [Allow rename to different case (RT #466, case-insensitive file systems) Eric Kow <[EMAIL PROTECTED]>**20060106000141 Creates an exception in the check that the new name does not already exists; it's ok if both names reduce to the same canonical path ] [Coalesce setpref (issue70 and RT #349) Eric Kow <[EMAIL PROTECTED]>**20051230230842] [Added test selection mechanism to makefile Eric Kow <[EMAIL PROTECTED]>**20051230230008 If the developer creates a file test/tests_to_run with the filenames of the tests to run, only those tests will be run. ] [Invert 'file exists already' error message in mv Eric Kow <[EMAIL PROTECTED]>**20051230220431 mv used the wrong error message for --case-ok and opposite ] [--repodir argument for get (RT #196 - controversial?) Eric Kow <[EMAIL PROTECTED]>**20051230133605 get already accepts a --repo-name flag, but I see no reason to keep this distinction, especially if we accept that init should accept --repodir In this implementation, we also keep the old --repo-name around for backwards compatability (of dubious value here), but the internal representation is changed to that of repodir ] [--repodir argument for several commands (RT #196 and RT #559) Eric Kow <[EMAIL PROTECTED]>**20051230021652 Commands affected: dist, optimize, repair, replace, setpref, tag, trackdown Includes a small repodir test script. Note that wrt RT #196 * replace and setpref (marked "no need" in the bug report -- but I don't see why not) * changes (--repo) untouched [ I'd suggest having both flags available ] * get (--repo-name) [ no reccomendations ] ] [bug fixes for darcs help Eric Kow <[EMAIL PROTECTED]>**20051230011003] [Added --repodir argument to init (RT #104 and part of RT #196) Eric Kow <[EMAIL PROTECTED]>**20051230005424 This implementation also tries to create the repodir if it does not exist. ] [Canonize myself and almost all other contributers. Eric Kow <[EMAIL PROTECTED]>**20051229140428 Add function to append name to email address Merged: Marnix Klooster, Eric Kow, Andres Loeh, Esa Ilari Vuokko Looked up name on Google for most orphaned email addresses. Hope nobody actually objects to this. ] [Do not document "darcs query manifest" twice. Erik Schnetter <[EMAIL PROTECTED]>**20051222125103] [Rename git.c to gitlib.c Erik Schnetter <[EMAIL PROTECTED]>**20051222115318 On case-insensitive file systems, the source files Git.lhs and git.c lead to the same object file git.o. Renaming git.c to gitlib.c solves this problem. ] [Remove periods from the AC_MSG_CHECKING call for the release state. Matt Kraai <[EMAIL PROTECTED]>**20051220174536] [Implementation of help command Eric Kow <[EMAIL PROTECTED]>**20051218172558 (RT #307) Provides a command to display usage information on the screen. darcs help = darcs --help darcs help --verbose = darcs --extended-help darcs help command = darcs command --help This implementation understands abbreviated commands and subcommands. Slightly refactors darcs.lhs. ] [Extended date matching functionality. Eric Kow <[EMAIL PROTECTED]>**20051228210942 (issue31 and RT #34) Now accepts ISO 8601 intervals (mostly) as well as a larger subset of English (including times like "yesterday at noon"). Note: also includes corrections to ISO 8601 date/time parsing, using a more elegant technique of building dates up. ] [Partial implementation of iso 8601 dates Eric Kow <[EMAIL PROTECTED]>**20051228123040 (issue31) - first step reluctant to implement (ambiguous!): * years > 9999 * truncated representations with implied century (89 for 1989) unimplemented: * time intervals -- this might be good to have in darcs * negative dates (BC) ] [only print 'making executable' in verbose mode Eric Kow <[EMAIL PROTECTED]>**20051226182817] [reorganize comments (and add a comment) in Depends.lhs. David Roundy <[EMAIL PROTECTED]>**20051218122029] [fix bug in doesDirectoryReallyExist. David Roundy <[EMAIL PROTECTED]>**20051020121710 We were failing with an exception if there was no such object. The error message was: Fail: getSymbolicLinkStatus: does not exist ] [fix type of foreign calls in FastPackedString. David Roundy <[EMAIL PROTECTED]>**20050920125800] [rename RepoTypes to PatchSet. David Roundy <[EMAIL PROTECTED]>**20050917133920] [remove PatchSequence, which has long been obsolete. David Roundy <[EMAIL PROTECTED]>**20050917133313 The patch removes remaining vestiges of PatchSequence, which was obsoleted long ago by PatchSet (which stores patches in the opposite order (better for lazy use) and which has additional information about tags that allows us to avoid looking at old history. ] [RemoteApply no longer depends on cd, use --repodir instead. [EMAIL PROTECTED] This is a minor change to make darcs no longer use cd before applying patches to a remote repository. Now the --repodir option for the apply command is used. This patch came from a hack to rssh[http://sf.net/projects/rssh] to allow using darcs as a restricted command without depending on the cd binary. http://sf.net/tracker/index.php?func=detail&aid=1351939&group_id=65349&atid=510643 ] [Support signed push Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051129082159] [Fix typo in multirepo pull. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051217201918] [Fix merge conflicts. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051217201903] [add changelog entry for multirepo pull. David Roundy <[EMAIL PROTECTED]>**20051215122808] [add support for pulling from multiple repositories simultaneously. David Roundy <[EMAIL PROTECTED]>**20050919125012] [Use POSIX-style option for 'head', instead of obsolescent syntax Marnix Klooster <[EMAIL PROTECTED]>**20051216111731] [Clarify wording for changes that can't be unreverted [EMAIL PROTECTED] [Set attachment filename when sending a patch bundle by e-mail. Zachary P. Landau <[EMAIL PROTECTED]>**20051217195009] [save long comment file if a test fails during record Zachary P. Landau <[EMAIL PROTECTED]>**20051216023948] [correction for send.sh test Eric Kow <[EMAIL PROTECTED]>**20051218095652 previously failed on (at least) MacOS X 10.3.9 ] [properly quote paths so that paths with spaces in them are okay [EMAIL PROTECTED] [fix up debug printouts in cygwin-wrapper.bash [EMAIL PROTECTED] [smoother invocation of cygwin-wrapper.bash -- it detects fully-qualified path to itself by leading / [EMAIL PROTECTED] [modernize amend-record.pl to be more portable. Mark Stosberg <[EMAIL PROTECTED]>**20050402133417 This depends on the new "echo_to_darcs()" function in Test::Darcs ] [implementation of --set-scripts-executable on local darcs get [EMAIL PROTECTED] proposed fix for issue38 The --set-scripts-executable flag is normally evaluated when you apply patches. But when you do a local darcs get, no patches are applied. So as a solution, we traverse the directory on local darcs get , and set any script files to be executable. Note: one flaw in this patch is that it duplicates the definition of what a script is -- a file that starts with #! -- in PatchApply.lhs and Get.lhs. It might be good to refactor these somehow. ] [extended set-scripts-executable test [EMAIL PROTECTED] added check for local darcs get (issue 38) as well as initial sanity check ] [Fix merge conflicts. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051214223217] [Add --subject flag to 'darcs send' Joeri van Ruth <[EMAIL PROTECTED]>**20051205120301] [print out the patch name when a test fails. Zachary P. Landau <[EMAIL PROTECTED]>**20051205055109] [revert maybe_relink and atomic_create to original C code. David Roundy <[EMAIL PROTECTED]>**20051208131213] [resolve conflicts between stable and unstable. David Roundy <[EMAIL PROTECTED]>**20051206134818] [Merge changes Ian Lynagh <[EMAIL PROTECTED]>**20051008225210] [fix mkstemp implementation for win32 Peter Strand <[EMAIL PROTECTED]>**20050810211303] [Implement parts of System.Posix.(IO|Files) for win32 [EMAIL PROTECTED] [implement RawMode with library functions instead of ffi [EMAIL PROTECTED] [call hsc2hs without output filename argument [EMAIL PROTECTED] [Rename compat.c to c_compat.c to avoid object filename conflict with Compat.hs [EMAIL PROTECTED] [Move atomic_create/sloppy_atomic_create to Compat Ian Lynagh <[EMAIL PROTECTED]>**20050730141703] [Split the raw mode stuff out into its own .hsc file. Windows needs some TLC Ian Lynagh <[EMAIL PROTECTED]>**20050730134030] [Move maybe_relink out of compat.c Ian Lynagh <[EMAIL PROTECTED]>**20050730131205] [Remove is_symlink Ian Lynagh <[EMAIL PROTECTED]>**20050730122255] [Move mkstemp to Compat.hs Ian Lynagh <[EMAIL PROTECTED]>**20050730020918] [Start Compat.hs, and move stdout_is_a_pipe from compat.c Ian Lynagh <[EMAIL PROTECTED]>**20050730004829] [Fix mistyped /dev/null, fixes --sendmail-command in Windows Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051129160120] [Use \ as path separator for GnuPG in Windows -- makes apply --verify work Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051129164533] [make dangers and recommended use of "Amend" clearer in the docs. Mark Stosberg <[EMAIL PROTECTED]>**20051213140523 I think it's important to be clearer about when it's appropriate to use 'amend', so I moved some notes into the short and mid-length help texts. ] [update web page to reflect 1.0.5 as latest stable source. Tommy Pettersson <[EMAIL PROTECTED]>**20051213111137] [fix handling of absolute paths containing drive letters Will <[EMAIL PROTECTED]>**20051208054737 This fixes issue 47 where paths containing drive letters (i.e. on windows) are not treated as absolute paths. ] [bump version to 1.0.6pre1 Tommy Pettersson <[EMAIL PROTECTED]>**20051208092839] [TAG 1.0.5 Tommy Pettersson <[EMAIL PROTECTED]>**20051207112730] Patch bundle hash: 91f5fccbac787fc55fa1a2e883346ba51abd45ba
_______________________________________________ darcs-devel mailing list darcs-devel@darcs.net http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel