Hi Tommy,

I was thinking that maybe these patches could go into stable (more issue319 than
issue298), assuming I didn't make any mistakes in them.

Tue Aug 21 07:19:42 CEST 2007  Eric Kow <[EMAIL PROTECTED]>
  * [issue319, issue440] Backup unmanged working dir files as needed.
  If f is to be overwritten, it will be first renamed to f-darcsbackup0
  (or f-darcsbackup1, f-darcsbackup... as needed).

Tue Aug 21 07:23:58 CEST 2007  Eric Kow <[EMAIL PROTECTED]>
  * [issue298] Backup conflicted working dir files as needed.
  The difference between this and the other backup working dir patch is that
  the files here actually are managed by darcs.  In either case, we want to
  avoid losing the user's work.

Mon Aug 20 21:55:50 CEST 2007  Eric Kow <[EMAIL PROTECTED]>
  * Update pull test to reflect backing up of working dir files.

Mon Aug 20 22:43:24 CEST 2007  Eric Kow <[EMAIL PROTECTED]>
  * Add tests for issue319 and issue440.

Mon Aug 20 23:19:55 CEST 2007  Eric Kow <[EMAIL PROTECTED]>
  * Add test for issue298.

Tue Aug 21 07:41:03 CEST 2007  Eric Kow <[EMAIL PROTECTED]>
  * [issue259] Documentation: files already being tracked are never boring.

Tue Aug 21 07:49:32 CEST 2007  Eric Kow <[EMAIL PROTECTED]>
  * [issue407] Offer some minimal advice if sendmail failed.

New patches:

[[issue319, issue440] Backup unmanged working dir files as needed.
Eric Kow <[EMAIL PROTECTED]>**20070821051942
 If f is to be overwritten, it will be first renamed to f-darcsbackup0
 (or f-darcsbackup1, f-darcsbackup... as needed).
] 
<
> {
hunk ./src/Darcs/External.hs 17
 -- [Putting this comment before any of the INCLUDE lines prevents them
 -- being acted on :-(.]
 module Darcs.External (
+    backupByRenaming,
     copyFileOrUrl, copyFilesOrUrls, copyLocal, cloneFile,
     cloneTree, cloneTreeExcept, clonePartialsTree, clonePaths,
     fetchFilePS, gzFetchFilePS,
hunk ./src/Darcs/External.hs 38
 import System.IO.Error ( isDoesNotExistError )
 import System.IO.Unsafe ( unsafePerformIO )
 import System.Posix.Files ( getSymbolicLinkStatus, isRegularFile, isDirectory )
-import System.Directory ( createDirectory, getDirectoryContents, doesFileExist, copyFile )
+import System.Directory ( createDirectory, getDirectoryContents,
+                          doesFileExist, doesDirectoryExist,
+                          renameFile, renameDirectory, copyFile )
 import Data.Char ( toUpper )
 import Foreign.C ( CString, withCString, CInt )
 import Foreign.Ptr ( nullPtr )
hunk ./src/Darcs/External.hs 76
                  text, empty, packedString, vcat, renderString )
 #include "impossible.h"
 
+backupByRenaming :: FilePath -> IO ()
+backupByRenaming = backupBy rename
+ where rename x y = do
+         isD <- doesDirectoryExist x
+         if isD then renameDirectory x y else renameFile x y
+
+backupBy :: (FilePath -> FilePath -> IO ()) -> FilePath -> IO ()
+backupBy backup f =
+           do hasBF <- doesFileExist f
+              hasBD <- doesDirectoryExist f
+              when (hasBF || hasBD) $ helper (0::Int)
+  where
+  helper i = do existsF <- doesFileExist next
+                existsD <- doesDirectoryExist next
+                if (existsF || existsD)
+                   then helper (i + 1)
+                   else do putStrLn $ "Backing up " ++ f ++ " as " ++ next
+                           backup f next
+             where next = f ++ "-darcs-backup" ++ show i
 
 fetchFilePS :: [DarcsFlag] -> String -> Cachable -> IO PackedString
 fetchFilePS _    fou _ | is_file fou = readFilePS fou
hunk ./src/Darcs/IO.lhs 57
                           unlinesPS, nilPS, packString, unpackPS,
                         )
 import Darcs.Utils ( withCurrentDirectory, prettyException )
+import Darcs.External ( backupByRenaming )
 import Printer ( Doc, renderPS )
 import FileName ( FileName, fn2fp, fp2fn )
 import Darcs.Lock ( writeBinFile, readBinFile, writeAtomicFilePS )
hunk ./src/Darcs/IO.lhs 199
      mSetFileExecutable f e = warning $ mSetFileExecutable f e
      mWriteBinFile f s = warning $ mWriteBinFile f s
      mWriteFilePS f s = warning $ mWriteFilePS f s
-     mCreateDirectory d = warning $ mCreateDirectory d
+     mCreateFile f = warning $ backup f >> mWriteFilePS f nilPS
+     mCreateDirectory d = warning $ backup d >> mCreateDirectory d
      mRemoveFile f = warning $ mRemoveFile f
      mRemoveDirectory d = warning $ catchJust ioErrors
                                  (mRemoveDirectory d)
hunk ./src/Darcs/IO.lhs 208
                                         ioError $ userError $
                                          "Not deleting " ++ fn2fp d ++ " because it is not empty.")
      mRename a b = warning $ catchJust ioErrors
-                          (mRename a b)
+                          (backup b >> mRename a b)
                           (\e -> case () of
                                  _ | isPermissionError e -> ioError $ userError $
                                        couldNotRename ++ "."
hunk ./src/Darcs/IO.lhs 225
      mSetFileExecutable f e = warning $ mSetFileExecutable f e
      mWriteBinFile f s = warning $ mWriteBinFile f s
      mWriteFilePS f s = warning $ mWriteFilePS f s
-     mCreateDirectory d = warning $ mCreateDirectory d
+     mCreateFile f = warning $ backup f >> mWriteFilePS f nilPS
+     mCreateDirectory d = warning $ backup d >> mCreateDirectory d
      mRemoveFile f = warning $ mRemoveFile f
      mRemoveDirectory d = warning $ catchJust ioErrors
                                  (mRemoveDirectory d)
hunk ./src/Darcs/IO.lhs 234
                                         ioError $ userError $
                                          "Not deleting " ++ fn2fp d ++ " because it is not empty.")
      mRename a b = warning $ catchJust ioErrors
-                          (mRename a b)
+                          (backup b >> mRename a b)
                           (\e -> case () of
                                  _ | isPermissionError e -> ioError $ userError $
                                        couldNotRename ++ "."
hunk ./src/Darcs/IO.lhs 246
         x = fn2fp a
         y = fn2fp b
         couldNotRename = "Could not rename " ++ x ++ " to " ++ y
+
+backup :: FileName -> IO ()
+backup f = backupByRenaming $ fn2fp f
 \end{code}
 \end{comment}
 
}
[[issue298] Backup conflicted working dir files as needed.
Eric Kow <[EMAIL PROTECTED]>**20070821052358
 The difference between this and the other backup working dir patch is that
 the files here actually are managed by darcs.  In either case, we want to
 avoid losing the user's work.
] 
<
> {
hunk ./src/Darcs/Commands/Apply.lhs 26
 import System.IO ( hClose, stdin, stdout, stderr )
 import Control.Exception ( catch, throw, Exception( ExitException ) )
 import Control.Monad ( when )
-import Darcs.Utils ( nubsort )
 import Data.Maybe ( catMaybes )
 
 import Darcs.Hopefully ( conscientiously, hopefully )
hunk ./src/Darcs/Commands/Apply.lhs 55
                     finalizeRepositoryChanges,
                     applyToWorking,
                   )
-import Darcs.Patch ( Patch, patch2patchinfo, list_touched_files,
+import Darcs.Patch ( patch2patchinfo,
                join_patches, unjoin_patches,
              )
 import Darcs.Patch.Info ( human_friendly )
hunk ./src/Darcs/Commands/Apply.lhs 65
                           lastPS, initPS, nullPS,
                           unlinesPS )
 import Darcs.External ( sendEmail, sendEmailDoc, resendEmail,
-                  verifyPS )
+                        backupByCopying, verifyPS )
 import Darcs.Email ( read_email )
 import Darcs.Lock ( withStdoutTemp, readBinFile )
hunk ./src/Darcs/Commands/Apply.lhs 68
-import Darcs.Commands.Pull ( merge_with_us_and_pending, check_unrecorded_conflicts )
+import Darcs.Commands.Pull ( files_with_conflicts, merge_with_us_and_pending, check_unrecorded_conflicts )
 import Darcs.Patch.Depends ( get_common_and_uncommon_or_missing )
 import Darcs.Resolution ( standard_resolution, no_resolution, external_resolution )
 import Darcs.SelectChanges ( with_selected_changes )
hunk ./src/Darcs/Commands/Apply.lhs 170
     recorded_with_pending <- slurp_pending repository
     working <- co_slurp recorded_with_pending "."
     standard_resolved_pw <- standard_resolution work_patch
-    announce_merge_conflicts opts standard_resolved_pw
+    let cfs = files_with_conflicts standard_resolved_pw
+    announce_merge_conflicts opts cfs
+    mapM_ backupByCopying cfs
     check_unrecorded_conflicts opts us_patch
     pw_resolved <-
        if AllowConflicts `elem` opts
hunk ./src/Darcs/Commands/Apply.lhs 342
 conflict.
 
 \begin{code}
-announce_merge_conflicts :: [DarcsFlag] -> [Patch] -> IO ()
-announce_merge_conflicts opts resolved_pw =
-    case nubsort $ list_touched_files $ join_patches $ tail resolved_pw of
-    [] -> return ()
-    cfs -> if MarkConflicts `elem` opts || AllowConflicts `elem` opts
+announce_merge_conflicts :: [DarcsFlag] -> [FilePath] -> IO ()
+announce_merge_conflicts _ [] = return ()
+announce_merge_conflicts opts cfs =
+           if MarkConflicts `elem` opts || AllowConflicts `elem` opts
               || want_external_merge opts /= Nothing
            then do putStrLn "We have conflicts in the following files:"
                    putStrLn $ unwords cfs
hunk ./src/Darcs/Commands/Pull.lhs 21
 \subsection{darcs pull}
 \begin{code}
 module Darcs.Commands.Pull ( pull, merge_with_us_and_pending,
-              check_unrecorded_conflicts,
+              files_with_conflicts, check_unrecorded_conflicts,
             ) where
 import System ( ExitCode(..), exitWith )
 import Control.Monad ( when )
hunk ./src/Darcs/Commands/Pull.lhs 27
 import Data.Maybe ( catMaybes )
 
+import Darcs.External ( backupByCopying )
 import Darcs.Hopefully ( hopefully )
 import Darcs.SignalHandler ( withSignalsBlocked )
 import Darcs.Commands ( DarcsCommand(..), loggers )
hunk ./src/Darcs/Commands/Pull.lhs 162
       (pc,pw) <- merge_with_us_and_pending opts
                  (map hopefully $ reverse $ head us', to_be_pulled)
       standard_resolved_pw <- standard_resolution pw
-      have_conflicts <- announce_merge_conflicts logMessage standard_resolved_pw
+      let cfs = files_with_conflicts standard_resolved_pw
+      have_conflicts <- announce_merge_conflicts logMessage cfs
+      mapM_ backupByCopying cfs
       have_unrecorded_conflicts <- check_unrecorded_conflicts opts pc
       (_, working) <- slurp_recorded_and_unrecorded repository
       pw_resolved <-
hunk ./src/Darcs/Commands/Pull.lhs 337
 \end{code}
 
 \begin{code}
-announce_merge_conflicts :: (String -> IO ()) -> [Patch] -> IO Bool
-announce_merge_conflicts logMessage resolved_pw =
-    case nubsort $ list_touched_files $ join_patches $ tail resolved_pw of
-    [] -> return False
-    cfs -> do logMessage "We have conflicts in the following files:"
+files_with_conflicts :: [Patch] -> [FilePath]
+files_with_conflicts = nubsort . list_touched_files . join_patches . tail
+
+announce_merge_conflicts :: (String -> IO ()) -> [FilePath] -> IO Bool
+announce_merge_conflicts _ []  = return False
+announce_merge_conflicts logMessage cfs =
+           do logMessage "We have conflicts in the following files:"
               logMessage $ unwords cfs
               return True
 
hunk ./src/Darcs/External.hs 17
 -- [Putting this comment before any of the INCLUDE lines prevents them
 -- being acted on :-(.]
 module Darcs.External (
-    backupByRenaming,
+    backupByRenaming, backupByCopying,
     copyFileOrUrl, copyFilesOrUrls, copyLocal, cloneFile,
     cloneTree, cloneTreeExcept, clonePartialsTree, clonePaths,
     fetchFilePS, gzFetchFilePS,
hunk ./src/Darcs/External.hs 70
 import Curl ( copyUrl )
 import Curl ( Cachable(..) )
 import Exec ( exec, Redirects, Redirect(..), )
+import FileName ( fn2fp, fp2fn, norm_path )
 import Darcs.URL ( is_file, is_url, is_ssh )
 import Darcs.Utils ( catchall )
 import Printer ( Doc, hPutDoc, hPutDocLn, ($$), (<+>), renderPS,
hunk ./src/Darcs/External.hs 83
          isD <- doesDirectoryExist x
          if isD then renameDirectory x y else renameFile x y
 
+backupByCopying :: FilePath -> IO ()
+backupByCopying = backupBy copy
+ where
+  copy x y = do
+    isD <- doesDirectoryExist x
+    if isD then do createDirectory y
+                   cloneTree (do_norm x) (do_norm y)
+           else copyFile x y
+  do_norm f = fn2fp $ norm_path $ fp2fn f
+
 backupBy :: (FilePath -> FilePath -> IO ()) -> FilePath -> IO ()
 backupBy backup f =
            do hasBF <- doesFileExist f
}
[Update pull test to reflect backing up of working dir files.
Eric Kow <[EMAIL PROTECTED]>**20070820195550] 
<
> {
hunk ./tests/pull.pl 136
    ok((chdir '../temp2'), "chdir succeeds");;
    mkdir 'newdir';
    my $out = darcs('pull -a ../temp1');
-   like($out, qr/Warning: /i, $test_name);
+   like($out, qr/Backing/i, $test_name);
    like($out, qr/Finished pulling/i, $test_name);
    like($out, qr/newdir/i, "...and report the name of the directory involved");
    ok((chdir '../'), "chdir succeeds");;
}
[Add tests for issue319 and issue440.
Eric Kow <[EMAIL PROTECTED]>**20070820204324] 
<
> {
hunk ./tests/workingdir.pl 26
 cleanup 'wtemp0';
 cleanup 'wtemp1';
 cleanup 'wtemp2';
+
 mkdir 'wtemp0';
 chdir 'wtemp0';
 darcs 'init';
hunk ./tests/workingdir.pl 31
 mkdir 'a';
-`touch a/x`;
+`echo wtemp0 > a/x`;
 darcs 'add a';
 darcs 'add a/x';
 darcs 'record -am "a" --author me';
hunk ./tests/workingdir.pl 38
 chdir '..';
 
 darcs 'get wtemp0 wtemp1';
-darcs 'get wtemp1 wtemp2';
 chdir 'wtemp1';
 darcs 'mv a/x a/y';
 darcs 'record -am "x to y" --author me';
hunk ./tests/workingdir.pl 41
-`touch b`;
+`echo wtemp1 > b`;
 darcs 'add b';
 darcs 'record -am "b" --author me';
hunk ./tests/workingdir.pl 44
-chdir '../wtemp2';
+mkdir 'd';
+darcs 'add d';
+darcs 'record -am "d" --author me';
+darcs 'tag 1 --author me';
+`echo 1-b2 > b`;
+darcs 'record -am "b2" --author me';
+chdir '..';
+
 # try to move a file that we don't have the right to do
hunk ./tests/workingdir.pl 53
+darcs 'get wtemp1 wtemp2 --to-patch a';
+chdir 'wtemp2';
 `chmod u-w a`;
 darcs 'pull -a';
 ok((-e 'b'), "managed to do pull b despite problems with x to y");
hunk ./tests/workingdir.pl 59
 chdir '..';
+cleanup('wtemp2');
 
hunk ./tests/workingdir.pl 61
+{ # [issue319] try to overwrite file(s) in our working dir
+  darcs 'get wtemp1 wtemp2 --to-patch a';
+  chdir 'wtemp2';
+  `echo wtemp2 > b`;
+  `echo wtemp2 > d`;
+  darcs 'pull -a -t 1';
+  open TEMP2, 'b'; my $b = (<TEMP2>); close TEMP2;
+  open TEMP2, 'b-darcs-backup0'; my $b0 = (<TEMP2>); close TEMP2;
+  open TEMP2, 'd-darcs-backup0'; my $d0 = (<TEMP2>); close TEMP2;
+  like ($b, qr/wtemp1/, "working dir now contains pulled file");
+  like ($b0, qr/wtemp2/, "backup properly created");
+  like ($d0, qr/wtemp2/, "backup properly created");
+  # now make sure we didn't overdo it
+  darcs 'pull -a';
+  open TEMP2, 'b'; my $bb = (<TEMP2>); close TEMP2;
+  like ($bb, qr/1-b2/, "working dir now contains pulled file");
+  ok(-e 'b-darcs-backup0',   "sanity check");
+  ok(! -e 'b-darcs-backup1', "no gratuitous backing up");
+  chdir '..';
+  cleanup('wtemp2');
+}
+
+{ # [issue440] a) try to overwrite a file in our working dir
+  darcs 'get wtemp1 wtemp2 --to-patch a';
+  chdir 'wtemp2';
+  `echo wtemp2 > a/y`;
+  `echo old-bak > a/y-darcs-backup0`;
+  darcs 'pull -a';
+  open TEMP2, 'a/y'; my $ay = (<TEMP2>); close TEMP2;
+  open TEMP2, 'a/y-darcs-backup0'; my $ay0 = (<TEMP2>); close TEMP2;
+  open TEMP2, 'a/y-darcs-backup1'; my $ay1 = (<TEMP2>); close TEMP2;
+  like ($ay, qr/wtemp0/, "working dir now contains pulled file");
+  like ($ay0, qr/old-bak/, "old backup not clobbered");
+  like ($ay1, qr/wtemp2/,  "new backup properly created");
+  chdir '..';
+  cleanup('wtemp2');
+}
+
+{ # [issue440] b) try to overwrite a directory in our working dir
+  darcs 'get wtemp1 wtemp2 --to-patch a';
+  chdir 'wtemp2';
+  mkdir 'a/y';
+  `echo old-bak > a/y-darcs-backup0`;
+  darcs 'pull -a';
+  open TEMP2, 'a/y'; my $ay = (<TEMP2>); close TEMP2;
+  open TEMP2, 'a/y-darcs-backup0'; my $ay0 = (<TEMP2>); close TEMP2;
+  like ($ay, qr/wtemp0/, "working dir now contains pulled file");
+  like ($ay0, qr/old-bak/, "old backup not clobbered");
+  ok(-d 'a/y-darcs-backup1');
+  chdir '..';
+  cleanup('wtemp2');
+}
 
 reset_chmod('wtemp0');
 reset_chmod('wtemp1');
hunk ./tests/workingdir.pl 118
 reset_chmod('wtemp2');
 cleanup('wtemp0');
-cleanup('wtemp1');
-cleanup('wtemp2');
+cleanup('wtemp1');
}
[Add test for issue298.
Eric Kow <[EMAIL PROTECTED]>**20070820211955] 
<
> {
hunk ./tests/workingdir.pl 82
   chdir '..';
   cleanup('wtemp2');
 }
+
+{ # [issue298] backup working dir files with conflicts
+  darcs 'get wtemp1 wtemp2 --tag 1';
+  chdir 'wtemp2';
+  `echo 2-b2 > b`;
+  darcs 'pull -a';
+  open TEMP2, 'b'; my $b = (<TEMP2>); close TEMP2;
+  open TEMP2, 'b-darcs-backup0'; my $b0 = (<TEMP2>); close TEMP2;
+  like ($b, qr/v v v/, "working dir now contains conflicts");
+  like ($b0, qr/2-b2/, "backup properly created");
+  unlike ($b0, qr/v v v/, "backup properly created");
+  chdir '..';
+  cleanup('wtemp2');
+}
 
 { # [issue440] a) try to overwrite a file in our working dir
   darcs 'get wtemp1 wtemp2 --to-patch a';
}
[[issue259] Documentation: files already being tracked are never boring.
Eric Kow <[EMAIL PROTECTED]>**20070821054103] 
<
> {
hunk ./src/Darcs/Repository/Prefs.lhs 110
 file in your home directory, named \verb!~/.darcs/boring!, which will be
 used with all of your darcs repositories.
 
-Any file whose repository path (such as \verb!manual/index.html!) matches any of
+Any file not already managed by darcs and whose repository path (such
+as \verb!manual/index.html!) matches any of
 the boring regular expressions is considered boring.  The boring file is
 used to filter the files provided to darcs add, to allow you to use a
 simple \verb-darcs add newdir newdir/*-
hunk ./src/Darcs/Repository/Prefs.lhs 118
 without accidentally adding a bunch of
 object files.  It is also used when the \verb!--look-for-adds! flag is
 given to whatsnew or record.
+Note that once a file has been added to darcs, it is not considered
+boring, even if it matches the boring file filter.
 
 \begin{code}
 default_boring :: IO ()
}
[[issue407] Offer some minimal advice if sendmail failed.
Eric Kow <[EMAIL PROTECTED]>**20070821054932] 
<
> {
hunk ./src/Darcs/External.hs 423
                     return [ ('b', renderString body) ]
      let ftable = [ ('t',addressOnly t),('c',cc),('f',f),('s',s) ] ++ ftable'
      r <- execSendmail ftable scmd fn
-     when (r /= ExitSuccess) $ fail ("failed to send mail to: " ++ t)
+     when (r /= ExitSuccess) $ fail ("failed to send mail to: " ++ t
+                                     ++ "\nPerhaps sendmail is not configured.")
   else if have_mapi then do
      r <- withCString t $ \tp ->
            withCString f $ \fp ->
}

Context:

[Fix conflicts with Kevin Quick's [DarcsRepo] stuff.
Eric Kow <[EMAIL PROTECTED]>**20070722193223] 
[Added --nolinks option to request actual copies instead of hard-links for files.
Kevin Quick <[EMAIL PROTECTED]>**20070613193742] 
[Provide [DarcsFlag] command-line options to copyLocal
Kevin Quick <[EMAIL PROTECTED]>**20070612041516] 
[Use System.Directory.copyFile for file copying.
Kevin Quick <[EMAIL PROTECTED]>**20070723071533] 
[Fix conflict between unpull refactor and --no-deps.
Eric Kow <[EMAIL PROTECTED]>**20070805105818] 
[Hide darcs unpull command.
Eric Kow <[EMAIL PROTECTED]>**20070730181138] 
[Slightly refactor unpull (make it an alias).
Eric Kow <[EMAIL PROTECTED]>**20070728095057] 
[mark dangerous code with a fixme.
David Roundy <[EMAIL PROTECTED]>**20070727012503] 
[Fix typo.
Eric Kow <[EMAIL PROTECTED]>**20070805084445] 
[resurrect --no-deps [issue353]
Tommy Pettersson <[EMAIL PROTECTED]>**20070801213028] 
[make --no-deps work with obliterate, unrecord and unpull
Tommy Pettersson <[EMAIL PROTECTED]>**20070801212519] 
[make --no-deps work with push and send
Tommy Pettersson <[EMAIL PROTECTED]>**20070801212256] 
[Export the non-interactive part of get_author.
Eric Kow <[EMAIL PROTECTED]>**20070731190748] 
[Fix conflicts between issue308 fix and amend-record metadata editing.
Eric Kow <[EMAIL PROTECTED]>**20070729191434] 
[Do not run test suite if amending metadata only.
Eric Kow <[EMAIL PROTECTED]>**20070728055505] 
[Add patchname to logfile when amending long comment.
Eric Kow <[EMAIL PROTECTED]>**20070728054752
 
 And simplify use of unlines (we already detect trailing newline).
] 
[Catch bad patch names in record --pipe.
Eric Kow <[EMAIL PROTECTED]>**20070727203606
 
 This appears to be a bug by which we have not yet been bitten.
] 
[[issue389] Support record -m --prompt-long-comment.
Eric Kow <[EMAIL PROTECTED]>**20070727203503] 
[Combine get_patchname with get_log in record command.
Eric Kow <[EMAIL PROTECTED]>**20070727203237
 
 This probably makes the code longer, but more explicit and with
 support for 'prior patchnames' (for amend-record).
] 
[Add test for issue467.
Eric Kow <[EMAIL PROTECTED]>**20070801184138] 
[[issue467] changes --context --repodir
Eric Kow <[EMAIL PROTECTED]>**20070801184051] 
[Remove more GUI code.
Eric Kow <[EMAIL PROTECTED]>**20070727202816] 
[Move just_dir helper function to Darcs.FilePathUtils.
Eric Kow <[EMAIL PROTECTED]>**20070730193703] 
[Rename fix_maybe_absolute and friends to something clearer.
Eric Kow <[EMAIL PROTECTED]>**20070730193603
 
 As suggested by David.
] 
[Rename (again) query/list to show.
Eric Kow <[EMAIL PROTECTED]>**20070730184757
 
 Clarify the online help while we're at it.
] 
[improve error message when unable to access a repository.
David Roundy <[EMAIL PROTECTED]>**20070726230517] 
[Always use cloneFile for copying files.
Kevin Quick <[EMAIL PROTECTED]>**20070723065621] 
[Refactor amend-record test.
Eric Kow <[EMAIL PROTECTED]>**20070725194320] 
[Makes non-repository paths in DarcsFlags absolute [issue427].
Zachary P. Landau <[EMAIL PROTECTED]>**20070724013425] 
[fix typo
Tommy Pettersson <[EMAIL PROTECTED]>**20070729225249] 
[Fix issue308: don't record empty patch with --ask-deps
Kevin Quick <[EMAIL PROTECTED]>**20070728190329] 
[move to pure record-access in Patch.Info.
David Roundy <[EMAIL PROTECTED]>**20070727001358] 
[Expose more PatchInfo parts and switch to record syntax.
Eric Kow <[EMAIL PROTECTED]>**20070725210644] 
[Add a 'commit' command stub.
Eric Kow <[EMAIL PROTECTED]>**20070722053050] 
[Add test for issue308
Kevin Quick <[EMAIL PROTECTED]>**20070723062114] 
[fix website in darcs.cgi.
David Roundy <[EMAIL PROTECTED]>**20070802220205] 
[resolv issue490 fix in stable (will conflict with resolv in unstable)
Tommy Pettersson <[EMAIL PROTECTED]>**20070729225410] 
[[issue386] Fix some --dry-run messages: "Would push" not "Pushing".
Eric Kow <[EMAIL PROTECTED]>**20070722211900] 
[[issue313] Ensure that logfile for record has trailing newline.
Eric Kow <[EMAIL PROTECTED]>**20070722053200] 
[Update test suite to account for mark-conflicts command.
Eric Kow <[EMAIL PROTECTED]>**20070722044435] 
[resolve conflict.
David Roundy <[EMAIL PROTECTED]>**20070422213416] 
[make copyInventory work for all permutations of repo formats.
David Roundy <[EMAIL PROTECTED]>**20070422155344] 
[fix bug in Internal.
David Roundy <[EMAIL PROTECTED]>**20070422155324] 
[add support for different kinds of get.
David Roundy <[EMAIL PROTECTED]>**20070422152934] 
[don't print "partial repository" guess.
David Roundy <[EMAIL PROTECTED]>**20070422150603
 This guess is all too often inaccurate, and with the new hashed
 inventories, it'll be even more often inaccurate.
] 
[remove redundant copyInventory.
David Roundy <[EMAIL PROTECTED]>**20070422144910] 
[add tests for mixed inventories to hashed_inventory.sh.
David Roundy <[EMAIL PROTECTED]>**20070418234821] 
[fix FIXME for handling hashed+normal inventory at the same time.
David Roundy <[EMAIL PROTECTED]>**20070418215614
 This fix also makes the tests pass with both inventory types enabled,
 so I added that to the test suite.  This was easier than I expected!
] 
[by default test hashed inventories plus normal.
David Roundy <[EMAIL PROTECTED]>**20070329010900] 
[fix bug in hashed-inventory get
David Roundy <[EMAIL PROTECTED]>**20070530172527] 
[fix strict get to a hashed repo from another.
David Roundy <[EMAIL PROTECTED]>**20070422151300
 The trouble was that my clever idea of lazily downloading patches even
 during a strict get didn't work, since we didn't have the source while
 reading the patches the second time.  One option would be to add that
 source while applying patches the second time, but that seems like it'd
 require a more tricky interface than just copying things strictly the first
 time.
] 
[remove TODO from passing repodir.pl test
David Roundy <[EMAIL PROTECTED]>**20070530195104] 
[Do not set defaultrepo if --dry-run (issue186).
Eric Kow <[EMAIL PROTECTED]>**20070717101607] 
[Fix handling of --repo with relative paths.
Eric Kow <[EMAIL PROTECTED]>**20070714160336
   
 We did not correctly deal with the case where the user passes in a directory
 path via the --repo flag (cf --repodir).  The fix is to make findRepository
 properly aware of the --repo flag.  This way, if we have been passed a --repo
 argument, and the argument is a directory, we avoid calling seekRepo.  Note
 that we still have to keep the old code around too, to cover the case where
 --repo is a URL.
] 
[Modernise imports of System.IO.
Eric Kow <[EMAIL PROTECTED]>**20070507192521
 
 Note that some try/bracket/etc are now imported from Control.Exception.
] 
[rewrite --lazy to be more flexible.
David Roundy <[EMAIL PROTECTED]>**20070416154113
 This change makes it so we can handle a configured set of URLs for patch
 origins.  See the description in the Prefs.lhs documentation for details.
 In addition, I've added a new --ephemeral option, which allows the user to
 create repositories without any patch files at all (which seems a bit
 scary, but potentially handy).
] 
[Fix issue329: typing q for record --ask-deps records anyway with no deps.
Kevin Quick <[EMAIL PROTECTED]>**20070718055426] 
[Rename query to list; manifest to files.
Eric Kow <[EMAIL PROTECTED]>**20070718204703
 
   query          => list (with query as alias)
   query manifest => list files (with manifest as alias)
   query tags     => list tags
 
 Note that the list manifest and list files commands differ in that the
 former displays directories by default and the latter does not.
] 
[Refactor aliases and stubs (rm, unadd, resolve).
Eric Kow <[EMAIL PROTECTED]>**20070718201453] 
[Add helpers command_alias and command_stub.
Eric Kow <[EMAIL PROTECTED]>**20070718200940] 
[Make --directories the default in query manifest (issue456).
Eric Kow <[EMAIL PROTECTED]>**20070716220308] 
[Tweak padding in usage_helper (mark-conflicts needs an extra space).
Eric Kow <[EMAIL PROTECTED]>**20070716230013] 
[Rename resolve to mark-conflicts (issue113).
Eric Kow <[EMAIL PROTECTED]>**20070716225635
 
 Resolve is retained as a (hidden) alias.
] 
[Implement hidden commands.
Eric Kow <[EMAIL PROTECTED]>**20070716204107
 
 This makes it possible to have command stubs or aliases without cluttering
 the usage info.
] 
[Implement command stubs 'rm', 'unadd', 'move' (issue127).
Eric Kow <[EMAIL PROTECTED]>**20070716202944
 
 These hidden commands are either stubs (they print some text and quit) or
 aliases (they do the same thing as some other command).
] 
[Fix hscurl.c conflicts.
Eric Kow <[EMAIL PROTECTED]>**20070714195126] 
[Add test for issue396.
Eric Kow <[EMAIL PROTECTED]>**20070717054431] 
[Filter out empty filenames (issue396).
Eric Kow <[EMAIL PROTECTED]>**20070717054319] 
[Always use permissive disambiguation of commands.
Eric Kow <[EMAIL PROTECTED]>**20070717051631] 
[Allow --list-options even if command cannot be run (issue297).
Eric Kow <[EMAIL PROTECTED]>**20070716210631
 
 If the command cannot be run, just print the possible flags, not the file args.
] 
[Distinguish between strict and permissive disambiguation (regression).
Eric Kow <[EMAIL PROTECTED]>**20070715203256
 
 Permissive disambiguation lets you handle the case where you supply a
 supercommand and a flag (i.e. not a subcommand).
] 
[Refactor parsing of command line arguments.
Eric Kow <[EMAIL PROTECTED]>**20070715200140] 
[Rewrite disambiguate_commands.
Eric Kow <[EMAIL PROTECTED]>**20070715200119
 
 This should make it more explicit what is going on.
] 
[String parameters to libcurl are kept alive to conform with the api specification
[EMAIL PROTECTED] 
[Use prettyException in clarify_errors (issue73).
Eric Kow <[EMAIL PROTECTED]>**20070717050732
 
 This solves one of three bugs in issue73, namely that we blame the user
 for darcs's own errors.
] 
[Use Control.Exception.catch in Darcs.Utils
Eric Kow <[EMAIL PROTECTED]>**20070717050613
 
 This affects helper functions like catchall and clarify_errors.
] 
[Fix supercommand --help (issue282).
Eric Kow <[EMAIL PROTECTED]>**20070715170843] 
[Fix missing newline in inventory (issue412).
Eric Kow <[EMAIL PROTECTED]>**20070718210138
 
 This simplifies third party scripts that have to parse the darcs inventory.
] 
[Add crossref.png (issue485).
Eric Kow <[EMAIL PROTECTED]>**20070714230519] 
[Add all pulled repos to _darcs/prefs/repos (issue368).
Eric Kow <[EMAIL PROTECTED]>**20070717180127] 
[Implement apply --dry-run (issue37).
Eric Kow <[EMAIL PROTECTED]>**20070717103257] 
[Define datarootdir early enough in autoconf.mk.in (issue 493).
Dave Love <[EMAIL PROTECTED]>**20070714165441] 
[More concise --look-for-adds description.
Eric Kow <[EMAIL PROTECTED]>**20070708141727] 
[Harmonise capitalisation (etc) in flags help.
Eric Kow <[EMAIL PROTECTED]>**20070708122719] 
[fix repodir test cleanup
Tommy Pettersson <[EMAIL PROTECTED]>**20070715183319] 
[Canonize Andres Loeh and Daniel Gorin.
Eric Kow <[EMAIL PROTECTED]>**20070714200521] 
[Sort tags file (Vim likes it that way).
Eric Kow <[EMAIL PROTECTED]>**20070708213833] 
[Fix tags target in Makefile to account for mv to src.
Eric Kow <[EMAIL PROTECTED]>**20070708212921] 
[Fix Makefile bug (symlink for bigpage.tex).
Eric Kow <[EMAIL PROTECTED]>**20070714192500] 
[work around < &lt problem in bigpage.html [issue483]
Tommy Pettersson <[EMAIL PROTECTED]>**20070712233559
 latex2html seems to misunderstand the sequence "\<" in verbatim mode, so I
 split it into two verbatim sections. It appears to look the same, but it
 could probably cause an unfortunate line break.
] 
[Fix issue420: User Agent size limit for curl gets is removed.
Kevin Quick <[EMAIL PROTECTED]>**20070711225049] 
[fix links to wiki on web page (again)
Tommy Pettersson <[EMAIL PROTECTED]>**20070630080403
 (They aren't broken, but) change the /index.html/ part to /DarcsWiki/ as
 David intended it.
] 
[move URL for darcs.cgi to new server.
David Roundy <[EMAIL PROTECTED]>**20070629200757] 
[fix for issue 490
David Roundy <[EMAIL PROTECTED]>**20070629195741
 This patch ensures that we never try to use a checkpoint
 for a tag that isn't in a place where the inventory is
 broken.
 
 It's a little ugly because it also puts more of the checkpoint
 handling code in Checkpoint, which required a refactor to avoid
 import loops.
] 
[In tests, don't assume grep has -q and -x flags.
Dave Love <[EMAIL PROTECTED]>**20070225114022] 
[Add send --output-auto-name information to the documentation.
Zachary P. Landau <[EMAIL PROTECTED]>**20070221014555] 
[Add test for send --output-auto-name.
Zachary P. Landau <[EMAIL PROTECTED]>**20070221014501] 
[Add --output-auto-name option to Send.
Zachary P. Landau <[EMAIL PROTECTED]>**20070221014327] 
[add test to trigger yet another buggy case.
David Roundy <[EMAIL PROTECTED]>**20070422152651] 
[check for gzopen directly in zlib
[EMAIL PROTECTED]
 
 Without this change, configure will fail on systems having curl and zlib
 in different locations. Because curl depends on zlib and is already detected
 prior to zlib by the configure file, the AC_CHECK_FUNC check to curl will
 succeed. Some combinations of pkgconfig/curl versions do no longer add the
 -lz flag in its pkgconfig file, so darcs won't record -lz as a necessary
 flag, and the build will fail later.
 
 A different solution to the problem would be to move the whole check for
 zlib to *before* the check for curl.
] 
[Fix Windows build breakage.
Eric Kow <[EMAIL PROTECTED]>**20070520054713] 
[Use System.Process under Unix.
Eric Kow <[EMAIL PROTECTED]>**20070426194615] 
[Remove conflictors unit tests.
Eric Kow <[EMAIL PROTECTED]>**20070513063537] 
[Complete conflictors code removal.
Eric Kow <[EMAIL PROTECTED]>**20070513061545
 
 Remove submerge_in_dir function, apparantly only used by the conflictors
 code.
] 
[remove unneeded (and unsafe) export from Patch.
David Roundy <[EMAIL PROTECTED]>**20070511005356] 
[remove (unused) conflictor code
David Roundy <[EMAIL PROTECTED]>**20070511003956] 
[Fix makefile conflict.
Eric Kow <[EMAIL PROTECTED]>**20070512194803] 
[fix path to completion scripts
Peter Simons <[EMAIL PROTECTED]>**20070511033227] 
[Support makefile docdir/datarootdir variables.
Dave Love <[EMAIL PROTECTED]>**20070507210129
 Also avoid warnings from autoconf 2.61.  The backward compatibility
 stuff should be tidied up once requiring 2.61 is acceptable.
] 
[cut unneeded pragma from SlurpDirectory.lhs
David Roundy <[EMAIL PROTECTED]>**20070505140749] 
[Added prehooks
Jason Dagit <[EMAIL PROTECTED]>**20070505202210] 
[Use system for calling interactive cmds in Windows instead of rawSystem.
Eric Kow <[EMAIL PROTECTED]>**20070415132608
 
 This lets us support switches, for example, in DARCS_EDITOR.
] 
[Fix test/ssh.sh conflicts.
Eric Kow <[EMAIL PROTECTED]>**20070311205156] 
[fix test_scripts bug pointed out by Eric.
David Roundy <[EMAIL PROTECTED]>**20070421213635] 
[remove unused export from RepoFormat.
David Roundy <[EMAIL PROTECTED]>**20070414174933] 
[Modernise imports of Foreign.Ptr.
Eric Kow <[EMAIL PROTECTED]>**20070407102536] 
[Make record_editor.pl test work under Windows.
Eric Kow <[EMAIL PROTECTED]>**20070415132932
 
 I believe setting the PATH to '' was giving me libcurl4.dll complaints
 under Windows.
 
 Note also that this simplifies away part of a test, in that we were
 initially trying to create stuff in a directory called 'temp dir2 " "',
 but just creating the dir itself got so tricky that I just gave up and
 switched to 'temp dir2', still with a space, no quotes.
] 
[Make mv.pl test pass on Windows.
Eric Kow <[EMAIL PROTECTED]>**20070415114122
 
 Fixed test count mismatch, and recovery of absolute path under msys.
] 
[Move packaging related stuff to its own directory (release).
Eric Kow <[EMAIL PROTECTED]>**20070401071845] 
[Move extras to their own directory (tools).
Eric Kow <[EMAIL PROTECTED]>**20070401071734
 
 Shell completion scripts, cgi.
 
] 
[fix bug Eric pointed out (which has also now bitten me).
David Roundy <[EMAIL PROTECTED]>**20070404233317
 This was a bug in the Checkpoint repo, where we assumed we were
 looking at the current working directory, incorrectly.
] 
[Fix unit.lhs import.
Eric Kow <[EMAIL PROTECTED]>**20070331194046
 
 ...due to sloppy scripting during the hierarchical shakeup.
 
] 
[whitespace cleanups in makefile.
David Roundy <[EMAIL PROTECTED]>**20070330152018] 
[fail on error in get_patches_beyond_tag.
David Roundy <[EMAIL PROTECTED]>**20070328172408
 This will expose any bugs where we use this function wrongly.
 (As was the case in darcs check --partial with hashed inventories.)
] 
[Fix conflicts.
Eric Kow <[EMAIL PROTECTED]>**20070313210908] 
[Modernise imports of Control.Monad.
Eric Kow <[EMAIL PROTECTED]>**20070313205312] 
[In tests, don't assume diff has -u, -x flags.
Dave Love <[EMAIL PROTECTED]>**20070305202838] 
[Fixes for Solaris sh in tests: no $(...), test -e, or ! pipelines.
Dave Love <[EMAIL PROTECTED]>**20070311170210] 
[Add changelog entries (file: quick) for pull --complement changes.
Kevin Quick <[EMAIL PROTECTED]>**20070205185329] 
[Fix bash-ism `export foo=' in tests.
Dave Love <[EMAIL PROTECTED]>**20070225113216] 
[More sed compliance on pull_compl test.
Eric Kow <[EMAIL PROTECTED]>**20070217073744] 
[Fix pull_compl test sed compliance.
Kevin Quick <[EMAIL PROTECTED]>**20070214033347] 
[Add pull_compl test; note interesting duplicate repo elimination in docs.
Kevin Quick <[EMAIL PROTECTED]>**20070206065236] 
[Include src/Darcs/Patch in makefile's SRC_DIRS.
Dave Love <[EMAIL PROTECTED]>**20070415215139] 
[Re-fix MAKEMANUAL.
Dave Love <[EMAIL PROTECTED]>**20070415122733] 
[Fix MAKEMANUAL conflict.
Eric Kow <[EMAIL PROTECTED]>**20070413231608] 
[Fix MAKEMANUAL make target.
Dave Love <[EMAIL PROTECTED]>**20070410192153] 
[Move documentation to its own directory (doc).
Eric Kow <[EMAIL PROTECTED]>**20070401071635] 
[fix bug in makefile regarding manual.
David Roundy <[EMAIL PROTECTED]>**20070330154259] 
[Correct compilation errors in win32 due to src reorganisation.
Eric Kow <[EMAIL PROTECTED]>**20070313210732] 
[Move osx directory to src.
Eric Kow <[EMAIL PROTECTED]>**20070313200304] 
[Extend GHCFLAGS override mechanism to allow for subdirectories.
Eric Kow <[EMAIL PROTECTED]>**20070313193917] 
[Fix manual compilation errors (due to source reorganisation).
Eric Kow <[EMAIL PROTECTED]>**20070313214302] 
[Resolve Makefile conflict.
Eric Kow <[EMAIL PROTECTED]>**20070413231906] 
[Fix conflicts; adapt QueryTag to new hierarchical structure.
Eric Kow <[EMAIL PROTECTED]>**20070331191925] 
[Fix applyToWorking conflicts.
Eric Kow <[EMAIL PROTECTED]>**20070422060319
 
 Was recorded against darcs stable post 1.0.9rc2.
] 
[add support for partial and lazy downloading of hashed repos.
David Roundy <[EMAIL PROTECTED]>**20070405000616] 
[add framework for lazily fetching hash files.
David Roundy <[EMAIL PROTECTED]>**20070403232223
 This patch doesn't yet actually have any effect, but prepares
 the way for changes to allow a variety of --partial that won't
 have the downside of sometimes causing darcs to fail later,
 since one can always download the patch files from the original
 server.
] 
[make --set-scripts-executable work with get and hashed inventories.
David Roundy <[EMAIL PROTECTED]>**20070329010828] 
[fix checkpoint handling with hashed inventories.
David Roundy <[EMAIL PROTECTED]>**20070330154325] 
[Modernise imports of Data.(Char|Int|List|Maybe).
Eric Kow <[EMAIL PROTECTED]>**20070313210805] 
[Modernise imports of System.Directory.
Eric Kow <[EMAIL PROTECTED]>**20070313205200] 
[Move Haskell sources to src directory with hierarchical structure.
Eric Kow <[EMAIL PROTECTED]>**20070313200751
 
 src
   general modules, possibly to be spun off as non-darcs libraries 
   administrative stuff (e.g., modules generated by autoconf)
 
 src/Darcs
   darcs-specific modules, catch-all for modules I didn't know what
   to do with
 
 src/Darcs/Patch
   core patch operations
 
 src/Darcs/Repository
   modules specific to the maintenance of the darcs repo, especially the _darcs
   stuff
 
 src/Darcs/Commands
   the darcs commands, e.g. pull, record, whatsnew
 
] 
[Move C files to src directory.
Eric Kow <[EMAIL PROTECTED]>**20070313200135] 
[Add subdirectories for source files.
Eric Kow <[EMAIL PROTECTED]>**20070313194050] 
[Fix conflicts related to --ssh-cm flag.
Eric Kow <[EMAIL PROTECTED]>**20070311205820] 
[change "current" to (or add) "pristine" in verbose message and doc
Tommy Pettersson <[EMAIL PROTECTED]>**20070211191942] 
[Resolve conflict between complement add and get_recorded_unsorted.
Kevin Quick <[EMAIL PROTECTED]>**20070206071832] 
[Added --complement to pull to allow "exclusion" repos
Kevin Quick <[EMAIL PROTECTED]>**20070204181301] 
[refactor get_unrecorded.
David Roundy <[EMAIL PROTECTED]>**20070128231405
 I've removed the [DarcsFlag] argument, and added two new functions
 get_unrecorded_unsorted, and get_unrecorded_no_look_for_adds, which do what
 they say.  I think this simplifies its use, and cleans things up a tad.  It
 doesn't scale to many different ways to get_unrecorded, but I don't think
 we want to go there.
] 
[Correct test for quoted arguments in DARCS_EDITOR.
Eric Kow <[EMAIL PROTECTED]>**20070204211312
 
 1) On MacOS X, grep lives in /usr/bin, not /bin
 2) We shouldn't escape the double quotes because they're already protected
    by the single quotes
 
] 
[Restore working directory if no repository is found (issue385).
Zachary P. Landau <[EMAIL PROTECTED]>**20070203173440
 seekRepo continues to go further up the directory tree looking for a
 repository.  If we are not in a repository, our current working directory
 becomes /.  This causes problems with code that falls back on creating
 temporary files in the current directory.  This patch will restore the
 directory the user started in if seekRepo fails.
] 
[use (empty) opts to Repository in list_authors and make_changelog
Tommy Pettersson <[EMAIL PROTECTED]>**20070128165840
 They where left out in the opts Repository refactoring.
] 
[fix bug triggered in replace.sh
David Roundy <[EMAIL PROTECTED]>**20070128002206
 This bug was an annoying one that seemed to involve trouble caused by
 unsafeInterleaveIO and the order of evaluation, since we change the working
 directory.  I've simplified the code significantly.  Complicating the debug
 process was a race condition caused by the lack of --ignore-times in
 replace.sh, which was because darcs replace didn't accept that option.
] 
[refactor: add opts into Repository.
David Roundy <[EMAIL PROTECTED]>**20070128000728] 
[add test for replace that messes with unrecorded hunks
Tommy Pettersson <[EMAIL PROTECTED]>**20070125153803] 
[go back to using system for edit_file/view_file instead of exec (system 'cmd "$ARG"')
Benedikt Schmidt <[EMAIL PROTECTED]>**20070131162811] 
[use TODO instead of pass for record_editor test
Benedikt Schmidt <[EMAIL PROTECTED]>**20070131161635] 
[add some tests for edit_file and DARCS_EDITOR handling
Benedikt Schmidt <[EMAIL PROTECTED]>**20070131011526] 
[Remove extraneous parentheses (RepoFormat).
Eric Kow <[EMAIL PROTECTED]>**20070127231359] 
[make write_repo_format agree with read_repo_format (use | for separating properties)
Benedikt Schmidt <[EMAIL PROTECTED]>**20070126143752] 
[Remove unused functions from Population.
Eric Kow <[EMAIL PROTECTED]>**20070107232034
 
 The functions are not shown to be used by any other part of darcs.
 Perhaps they should be restored if we ever get to work seriously on
 libdarcs.
 
] 
[Import IO.bracket instead of Control.Exception.bracket in Exec.
Eric Kow <[EMAIL PROTECTED]>**20070107211935
 
 This makes darcs work on *nix the same way it did before Simon Marlow's
 runProcess patch for Windows and my conflict-resolution tweaks.
 
] 
[Import bracketOnError from Workaound instead of Control.Exception.
Eric Kow <[EMAIL PROTECTED]>**20061225212444
   
 bracketOnError was introduced in GHC 6.6, whereas we want to support 6.4.1 and
 higher.
   
] 
[Fix conflicts and compile errors (Exec runProcess stuff).
Eric Kow <[EMAIL PROTECTED]>**20061225212423
 
 Side A:
   Simon Marlow: Use System.Process on Windows
 
 Side B:
   Edwin Thomson : Make Exec.lhs not import unneeded Control.Exception functions
     when compiling on Windows.
   Magnus Jonsson : Added rigorous error checking in exec
     
 Compile errors in question were just import-related issues.
 
] 
[Use System.Process on Windows
Simon Marlow <[EMAIL PROTECTED]>**20061129160710
 
 This was an attempt to address "[issue218] Patch bundle failed hash",
 but unfortunately it doesn't fix the problem.  Still, System.Process
 is a better way to invoke external commands these days.
 
 For now, the new code only replaces the Windows version of exec.  This
 means that GHC 6.4 will be required to build darcs on Windows.  Better
 would be to add a configure test, but I ran out of time here.
] 
[fix [issue370], darcs ignored args contained in VISUAL variable
Benedikt Schmidt <[EMAIL PROTECTED]>**20061220110807
 given VISUAL="emacs -nw", darcs would run "emacs file" instead of
 "emacs -nw file"
] 
[Make annotate work on files with spaces in the name
[EMAIL PROTECTED]
 
] 
[Resolve conflicts in David's hashed_inventory optimize patches.
Eric Kow <[EMAIL PROTECTED]>**20061217031027
 
] 
[Make hashed inventories support optimize and reordering.
David Roundy <[EMAIL PROTECTED]>**20061216193913] 
[fix issue360, with darcs mv foo foo.
David Roundy <[EMAIL PROTECTED]>**20061217212340] 
[Prettify exceptions in identifyRepository.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20061218025453] 
[QP-encode bundles when putting to a remote repo.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20061218003034] 
[fix pending bug in darcs get --tag.
David Roundy <[EMAIL PROTECTED]>**20061217225256
 This patch addresses the bug displayed in Tommy's test:
 
 Mon Dec 11 20:28:21 CET 2006  Tommy Pettersson <[EMAIL PROTECTED]>
   * add test for get --tag and pending
] 
[Separate comment from OPTIONS pragma for GHC 6.4 compatibility.
Eric Kow <[EMAIL PROTECTED]>**20061217041212
 
] 
[make optimize less DarcsRepo-specific.
David Roundy <[EMAIL PROTECTED]>**20061209205755] 
[fix bug in haskell_policy check for HopefullyPrivate.
David Roundy <[EMAIL PROTECTED]>**20061210234453
 Perhaps with this test, we can rename it to CertainlyPrivate?  :)
] 
[don't use HopefullyPrivate outside of Hopefully.
David Roundy <[EMAIL PROTECTED]>**20061210231623
 The idea is to hide the Hopefully constructors, so I can hide some more
 information in there, if I like, which should be handy for the hashed
 inventories, and may also come in handy (for similar reasons) with git
 repositories.
] 
[change Maybe Patch to Hopefully Patch.
David Roundy <[EMAIL PROTECTED]>**20061210213536
 This rather pervasive change move us to using a new Hopefully type, which
 is similar to Either String for storing patches that may or may not exist.
 This should improve error reporting.  At a minimum it'll making easier to
 improve error reporting.
] 
[resolve conflict in white space.
David Roundy <[EMAIL PROTECTED]>**20061210211846] 
[fix pending bug that broke several_commands.sh.
David Roundy <[EMAIL PROTECTED]>**20061209223916] 
[eliminate DarcsRepo.am_in_repo.
David Roundy <[EMAIL PROTECTED]>**20061204153128
 This patch is a Good Thing, even though repair and optimize don't yet
 properly support anything bug old-fashioned repositories, because without
 it, when using such repositories, one can find those command operating on a
 different repository than intended (e.g. the test suite runs optimize on
 the darcs repository itself).  Now they'll fail as they ought to, when run
 on a repo format they don't support.
] 
[fix hashed inventory bug in add and prevent it happening again.
David Roundy <[EMAIL PROTECTED]>**20061204020823] 
[make get and put reuse initialize code.
David Roundy <[EMAIL PROTECTED]>**20061203220833
 This patch actually fixes put to properly accept and use any flags that
 init accepts, which is a Good Thing.  It also ensures that get behaves
 consistently with init in the future.  Also a Good Thing.
] 
[make put work with hashed inventories (and test for this).
David Roundy <[EMAIL PROTECTED]>**20061203211141] 
[add some more hashed_inventory.sh tests.
David Roundy <[EMAIL PROTECTED]>**20061203173207] 
[fix more incompatible uses of DarcsRepo.
David Roundy <[EMAIL PROTECTED]>**20061203064355] 
[make replace work with hashed inventories.
David Roundy <[EMAIL PROTECTED]>**20061203055452] 
[Make get_tag test work with hashed inventories.
David Roundy <[EMAIL PROTECTED]>**20061203055019] 
[make directory_confusion pass with hashed inventories.
David Roundy <[EMAIL PROTECTED]>**20061203035551
 I'm not sure whether there is still a bug in the pending handling here, but
 at least it doesn't crash...
] 
[update annotate for hashed inventories
Jason Dagit <[EMAIL PROTECTED]>**20061108033202
 Fixes test suite failure for annotate on a repository with hashed inventory.
] 
[resolve conflicts
Tommy Pettersson <[EMAIL PROTECTED]>**20061117222757
 between 'clean up unrevert and pending handling'
 and 'ignore failure from hSetBufferin'
] 
[Resolve conflict in Resolution.lhs.
Eric Kow <[EMAIL PROTECTED]>**20061113032236
 
] 
[fix new get to not mess up pending (fixes latest hashed_inventory.sh tests).
David Roundy <[EMAIL PROTECTED]>**20061203173722] 
[External resolution can resolve conflicting adds
[EMAIL PROTECTED] 
[Only copy files needed in external_resolution
[EMAIL PROTECTED] 
[change message in 'darcs check' from "applying" to "checking" (issue147)
Tommy Pettersson <[EMAIL PROTECTED]>**20061111154259] 
[make Get work with hashed inventory.
David Roundy <[EMAIL PROTECTED]>**20061101150901
 This is inefficient, but it uses only the pre-existing refactored
 functions, so it's the easiest approach.  Later we can write an efficient
 bit of code to do the same thing.
] 
[fix parsing of hashed inventories.
David Roundy <[EMAIL PROTECTED]>**20060927024505] 
[put Repository in Show class for debugging ease.
David Roundy <[EMAIL PROTECTED]>**20060927021202] 
[add a bit of hashed inventory code.
David Roundy <[EMAIL PROTECTED]>**20060918173904] 
[Added --store-in-memory option for diff
[EMAIL PROTECTED]
 
] 
[make darcs check use Repository framework.
David Roundy <[EMAIL PROTECTED]>**20060927024514] 
[resolve conflicts
Tommy Pettersson <[EMAIL PROTECTED]>**20061102184834
 Merge Unrecord fix for checkpoints inventory with Repository code refactoring.
] 
[Move RawMode into DarcsUtils to break cyclic imports on Win32
Josef Svenningsson <[EMAIL PROTECTED]>**20061004120024] 
[remove duplicate file names in fix_filepaths (fixes issue273)
Tommy Pettersson <[EMAIL PROTECTED]>**20060929145335] 
[add test for replace command with duplicated file name
Tommy Pettersson <[EMAIL PROTECTED]>**20060929144008] 
[Move bug reporting code to its own module.
Eric Kow <[EMAIL PROTECTED]>**20060928222826
 
 Fixes circular dependency caused by David's unrevert cleanup (which moves
 edit_file to DarcsUtil, thus causing it to depend on Exec) and Tommy's
 exec patches (which add impossible.h to Exec, thus causing it to depend
 on DarcsUtil).
 
] 
[clean up unrevert and pending handling.
David Roundy <[EMAIL PROTECTED]>**20060917214136] 
[Fix merge conflicts.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20060906191317] 
[fix bug in pristine handling when dealing with multiple patches.
David Roundy <[EMAIL PROTECTED]>**20060731111404] 
[fix ordering of operations to call pull_first_middles properly.
David Roundy <[EMAIL PROTECTED]>**20060730111409] 
[fix bug in refactoring of get.
David Roundy <[EMAIL PROTECTED]>**20060726121655] 
[refactor Population.
David Roundy <[EMAIL PROTECTED]>**20060716034837] 
[add TODO for refactoring get_markedup_file.
David Roundy <[EMAIL PROTECTED]>**20060716034339] 
[partial refactoring in annotate.
David Roundy <[EMAIL PROTECTED]>**20060716034319] 
[don't use DarcsRepo in list_authors.
David Roundy <[EMAIL PROTECTED]>**20060716033450] 
[I've now eliminated need to export DarcsRepo.write_patch.
David Roundy <[EMAIL PROTECTED]>**20060716033109] 
[partially refactor Optimize.
David Roundy <[EMAIL PROTECTED]>**20060716032934] 
[partial refactoring of Get.
David Roundy <[EMAIL PROTECTED]>**20060716031605] 
[refactor amend-record.
David Roundy <[EMAIL PROTECTED]>**20060716021003] 
[add TODO to refactor unrevert handling.
David Roundy <[EMAIL PROTECTED]>**20060716020247] 
[refactor Unrecord, adding tentativelyRemovePatches.
David Roundy <[EMAIL PROTECTED]>**20060716015150] 
[refactor tag.
David Roundy <[EMAIL PROTECTED]>**20060716011853] 
[refactor Repository to allow truly atomic updates.
David Roundy <[EMAIL PROTECTED]>**20060716011245] 
[Be explicit about timezone handling (issue220); assume local by default.
Eric Kow <[EMAIL PROTECTED]>**20060812102034
 
 Except for the local timezone in the user interface, this patch is not
 expected to change darcs's behaviour.  It merely makes current practice
 explicit:
 
 - Assume local timezone when parsing date strings from the user
   interface (previous behaviour was assuming UTC).
 
 - Assume UTC timezone when parsing date strings from PatchInfo.
   Newer patch date strings do *not* specify the timezone, so it
   would be prudent to treat these as UTC.
  
 - Disregard timezone information altogether when reading patch
   dates (issue220).  Note that this bug was not caused by assuming local
   timezone, because legacy patch date strings explicitly tell you what
   the timezone to use.  The bug was caused by a patch that fixed
   issue173 by using timezone information correctly.  To preserve
   backwards-compatability, we deliberatly replicate the incorrect
   behaviour of overriding the timezone with UTC.
   (PatchInfo.make_filename)
  
] 
[Account for timezone offset in cleanDate  (Fixes issue173).
Eric Kow <[EMAIL PROTECTED]>**20060610193049
 
] 
[TAG darcs-unstable-20060831
Juliusz Chroboczek <[EMAIL PROTECTED]>**20060831191554] 
[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.
] 
[add right-arrow with new name desired by new latex2html.
[EMAIL PROTECTED] 
[change wiki links on webpage to wiki.darcs.net
Tommy Pettersson <[EMAIL PROTECTED]>**20070617095655] 
[bump version to 1.1.0pre1
Tommy Pettersson <[EMAIL PROTECTED]>**20070616202236] 
[TAG 1.0.9
Tommy Pettersson <[EMAIL PROTECTED]>**20070603213706] 
Patch bundle hash:
43493f9800dadffefa1c0a3bd0d3cbdba4e97eb5
_______________________________________________
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel

Reply via email to