Resending this (amend-recorded) patch with a fix for a bad interaction with
another patch.

Fri Jul 22 06:57:08 EDT 2005  David Roundy <[EMAIL PROTECTED]>
  * fix pulling from a relative defaultrepo from within a subdirectory.
  This is a fix for bug #208.  It is perhaps a tad more invasive than
  necesary, and introduces a FilePathUtils module that is perhaps
  overkill... especially since it doesn't do much.

Wed Jul 27 06:07:45 EDT 2005  David Roundy <[EMAIL PROTECTED]>
  * resolve conflict with myself...

New patches:

[fix pulling from a relative defaultrepo from within a subdirectory.
David Roundy <[EMAIL PROTECTED]>**20050722105708
 This is a fix for bug #208.  It is perhaps a tad more invasive than
 necesary, and introduces a FilePathUtils module that is perhaps
 overkill... especially since it doesn't do much.
] 
<
> {
hunk ./Apply.lhs 90
 \begin{code}
 stdin_magic :: String
 stdin_magic = "magic darcs standard input"
-stdindefault :: [String] -> IO [String]
-stdindefault [] = return [stdin_magic]
-stdindefault x = return x
+stdindefault :: FilePath -> [String] -> IO [String]
+stdindefault _ [] = return [stdin_magic]
+stdindefault _ x = return x
 apply :: DarcsCommand
 apply = DarcsCommand {command_name = "apply",
                       command_help = apply_help,
hunk ./DarcsArguments.lhs 58
                         set_default,
                         fancy_move_add, pristine_tree,
                         set_scripts_executable,
-                        (///),
                         sibling, flagsToSiblings, relink
                       ) where
 import System.Console.GetOpt
hunk ./DarcsArguments.lhs 69
 import Monad ( liftM, mplus, when )
 import Char ( isDigit )
 
-import Autoconf ( path_separator )
 import Patch ( Patch, patch_summary, patch2patchinfo )
 import PatchInfo ( human_friendly )
 import PatchShow ( showUnnamed )
hunk ./DarcsArguments.lhs 73
 import DarcsUtils ( askUser, catchall, ortryrunning )
-import DarcsURL ( is_relative )
 import RepoPrefs ( boring_file_filter, get_preflist, get_global )
hunk ./DarcsArguments.lhs 74
-import FileName ( fn2fp, fp2fn, norm_path )
+import FilePathUtils ( fix_maybe_absolute, drop_paths )
 import PatchMatchData ( patch_match )
 import DarcsFlags ( DarcsFlag(..) )
 import Repository ( slurp_pending, identifyRepository )
hunk ./DarcsArguments.lhs 133
 fix_flag fix (Context s) = Context $ fix_maybe_absolute fix s
 fix_flag _ f = f
 
-fix_maybe_absolute :: FilePath -> FilePath -> FilePath
-fix_maybe_absolute fix pat = fma $ map cleanup pat
-    where fma p@('/':_) = p
-          fma p = fix /// p
-          cleanup '\\' | path_separator == '\\' = '/'
-          cleanup c = c
-
 fix_filepath :: [DarcsFlag] -> FilePath -> FilePath
 fix_filepath [] f = f
 fix_filepath (FixFilePath fix:_) f = fix_maybe_absolute fix f
merger 0.0 (
hunk ./DarcsArguments.lhs 151
-drop_paths "" ps = ps
+drop_paths "" ps = map do_norm ps
hunk ./DarcsArguments.lhs 142
-
-(///) :: FilePath -> FilePath -> FilePath
-""///a = do_norm a
-a///b = do_norm $ a ++ "/" ++ b
-
-do_norm :: FilePath -> FilePath
-do_norm f = fn2fp $ norm_path $ fp2fn f
-
-drop_paths :: String -> [String] -> [String]
-drop_paths "" ps = ps
-drop_paths fix ps = catMaybes $ map drop_path ps
-  where drop_path ('.':'/':p) = drop_path $ dropWhile (=='/') p
-        drop_path p = if take (length fix) p == fix
-                      then Just $ dropWhile (=='/') $ drop (length fix) p
-                      else if is_relative p
-                           then Nothing
-                           else Just p
)
hunk ./DarcsCommands.lhs 124
                   command_command :: [DarcsFlag] -> [String] -> IO (),
                   command_prereq :: [DarcsFlag] -> IO (Either String FilePath),
                   command_get_arg_possibilities :: IO [String],
-                  command_argdefaults :: [String] -> IO [String],
+                  command_argdefaults :: FilePath -> [String] -> IO [String],
                   command_darcsoptions :: [DarcsOption]}
 command_options :: DarcsCommand -> [OptDescr DarcsFlag]
 command_options c
hunk ./DarcsCommands.lhs 129
     = concat $ map option_from_darcsoption $ command_darcsoptions c
-nodefaults :: [String] -> IO [String]
-nodefaults as = return as
+nodefaults :: FilePath -> [String] -> IO [String]
+nodefaults _ xs = return xs
 \end{code}
 
 
hunk ./DarcsCommands.lhs 247
                      formatPath ("darcs "++ command_name cmd) ++
                      " here.\n\n" ++ complaint
    Right fix_path -> do
-    extra <- (command_argdefaults cmd) old_extra
+    extra <- (command_argdefaults cmd) fix_path old_extra
     specops <- add_command_defaults cmd $ map (fix_flag fix_path) opts
     if command_extra_args cmd < 0
       then (command_command cmd) (FixFilePath fix_path:specops) extra
addfile ./FilePathUtils.hs
hunk ./FilePathUtils.hs 1
+-- Copyright (C) 2005 David Roundy
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 2, or (at your option)
+-- any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program; if not, write to the Free Software Foundation,
+-- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+module FilePathUtils ( fix_maybe_absolute, unfix_maybe_absolute,
+                       drop_paths, (///) ) where
+
+import Maybe ( catMaybes )
+
+import Autoconf ( path_separator )
+import FileName ( fn2fp, fp2fn, norm_path )
+import DarcsURL ( is_relative, is_file )
+#include "impossible.h"
+
+fix_maybe_absolute :: FilePath -> FilePath -> FilePath
+fix_maybe_absolute _ pat | not $ is_file pat = pat
+fix_maybe_absolute fix pat = fma $ map cleanup pat
+    where fma p@('/':_) = p
+          fma p = fix /// p
+          cleanup '\\' | path_separator == '\\' = '/'
+          cleanup c = c
+
+unfix_maybe_absolute :: FilePath -> FilePath -> FilePath
+unfix_maybe_absolute _ pat | not $ is_file pat = pat
+unfix_maybe_absolute fix pat = fma $ map cleanup pat
+    where fma p@('/':_) = p
+          fma p = make_dotdots fix /// p
+          cleanup '\\' | path_separator == '\\' = '/'
+          cleanup c = c
+
+make_dotdots :: FilePath -> FilePath
+make_dotdots "" = ""
+make_dotdots p@('/':_) = bug $ "Can't make_dotdots on an absolute path:  "
+                         ++ p
+make_dotdots p = "../" ++ case snd $ break (=='/') p of
+                          "" -> ""
+                          r -> make_dotdots r
+
+drop_paths :: String -> [String] -> [String]
+drop_paths "" ps = ps
+drop_paths fix ps = catMaybes $ map drop_path ps
+  where drop_path ('.':'/':p) = drop_path $ dropWhile (=='/') p
+        drop_path p = if take (length fix) p == fix
+                      then Just $ dropWhile (=='/') $ drop (length fix) p
+                      else if is_relative p
+                           then Nothing
+                           else Just p
+
+(///) :: FilePath -> FilePath -> FilePath
+""///a = do_norm a
+a///b = do_norm $ a ++ "/" ++ b
+
+do_norm :: FilePath -> FilePath
+do_norm f = fn2fp $ norm_path $ fp2fn f
hunk ./GNUmakefile 25
 	Pristine.lhs DarcsArguments.lhs DarcsFlags.lhs DarcsUtils.lhs	\
 	CommandLine.lhs \
 	DateMatcher.lhs Depends.lhs Diff.lhs Exec.lhs External.hs	\
-	FastPackedString.hs FilePathMonad.lhs	\
-	FileName.lhs IsoDate.lhs Lcs.lhs Lock.lhs Map.hs	\
+	FastPackedString.hs FileName.lhs FilePathMonad.lhs	\
+	FilePathUtils.hs IsoDate.lhs Lcs.lhs Lock.lhs Map.hs	\
 	Match.lhs Motd.lhs Patch.lhs PatchApply.lhs PatchBundle.lhs	\
 	PatchCheck.lhs PatchChoices.lhs PatchCommute.lhs PatchCore.lhs	\
 	PatchInfo.lhs PatchMatch.lhs PatchMatchData.lhs			\
hunk ./Mv.lhs 24
 
 import DarcsCommands ( DarcsCommand(..), nodefaults )
 import DarcsArguments ( DarcsFlag( AllowCaseOnly ), verbose,
-                        fix_filepath, (///), working_repo_dir,
+                        fix_filepath, working_repo_dir,
                         list_files, allow_caseonly,
                       )
hunk ./Mv.lhs 27
+import FilePathUtils ( (///) )
 import Directory ( renameDirectory )
 import Workaround ( renameFile )
 import Repository ( identifyRepository, withRepoLock, amInRepository,
hunk ./Optimize.lhs 260
 do_relink :: [DarcsFlag] -> IO ()
 do_relink opts =
     do some_siblings <- return (flagsToSiblings opts)
-       defrepo <-  defaultrepo []
+       defrepo <-  defaultrepo "" []
        siblings <- return (some_siblings ++ defrepo)
        if (siblings == []) 
           then putStrLn "No siblings -- no relinking done."
hunk ./Pull.lhs 122
   when (cur_absolute_repo_dir == req_absolute_repo_dir) $
         fail "Can't pull from current repo!"
   them <- identifyRepository repodir >>= read_repo
-  old_default <- defaultrepo []
+  old_default <- defaultrepo "" []
   set_defaultrepo repodir opts
   when (old_default == [repodir]) $
       putInfo $ text $ "Pulling from "++formatPath repodir++"..."
hunk ./Push.lhs 114
                        $$ text ""
            else errorDoc msg
   them <- read_repo repodir
-  old_default <- defaultrepo []
+  old_default <- defaultrepo "" []
   set_defaultrepo repodir opts
   when (old_default == [repodir]) $
        putInfo $ text $ "Pushing to "++formatPath repodir++"..."
hunk ./RepoPrefs.lhs 39
 import DarcsUtils ( catchall, stripCr )
 import DarcsIO ( ReadableDirectory(..), WriteableDirectory(..) )
 import FileName ( fp2fn )
+import FilePathUtils ( unfix_maybe_absolute )
 \end{code}
 
 \section{prefs}
hunk ./RepoPrefs.lhs 223
 set_preflist :: WriteableDirectory m => String -> [String] -> m ()
 get_global :: String -> IO [String]
 
-defaultrepo :: [String] -> IO [String]
 set_defaultrepo :: String -> [DarcsFlag] -> IO ()
 \end{code}
 
hunk ./RepoPrefs.lhs 297
 \end{code}
 
 \begin{code}
-defaultrepo [] = do defrepo <- get_preflist "defaultrepo"
-                    case defrepo of
-                      [_] -> return defrepo
-                      -- FIXME after a few releases, remove following
-                      -- transition code...
-                      _ -> do lastrepo <- get_preflist "lastrepo"
-                              case lastrepo of
-                                [_] -> return lastrepo
-                                _ -> return []
+defaultrepo :: FilePath -> [String] -> IO [String]
+defaultrepo fix [] = do defrepo <- get_preflist "defaultrepo"
+                        case defrepo of
+                            [r] -> return [unfix_maybe_absolute fix r]
+                            _ -> return []
 
hunk ./RepoPrefs.lhs 303
-defaultrepo r = return r
+defaultrepo _ r = return r
 set_defaultrepo r opts = do doit <- if not (NoSetDefault `elem` opts)
                                     then return True
                                     else do olddef <-
hunk ./Send.lhs 105
     Nothing -> do
         repo <- identifyRepository repodir
         them <- read_repo repo
-        old_default <- defaultrepo []
+        old_default <- defaultrepo "" []
         set_defaultrepo repodir input_opts
         when (old_default == [repodir] && not (Quiet `elem` input_opts)) $
              putStrLn $ "Creating patch to "++formatPath repodir++"..."
}
[resolve conflict with myself...
David Roundy <[EMAIL PROTECTED]>**20050727100745] 
<
> {
hunk ./DarcsArguments.lhs 139
 fix_filepath (_:fs) f = fix_filepath fs f
 
 unfix_filepaths :: [DarcsFlag] -> [FilePath] -> [FilePath]
-unfix_filepaths [] f = map do_norm f
+unfix_filepaths [] f = f
 unfix_filepaths (FixFilePath fix:_) f = drop_paths fix f
 unfix_filepaths (_:fs) f = unfix_filepaths fs f
hunk ./DarcsArguments.lhs 142
-
-(///) :: FilePath -> FilePath -> FilePath
-""///a = do_norm a
-a///b = do_norm $ a ++ "/" ++ b
-
-do_norm :: FilePath -> FilePath
-do_norm f = fn2fp $ norm_path $ fp2fn f
-
-drop_paths :: String -> [String] -> [String]
-drop_paths "" ps = ps
-drop_paths fix ps = catMaybes $ map drop_path ps
-  where drop_path ('.':'/':p) = drop_path $ dropWhile (=='/') p
-        drop_path p = if take (length fix) p == fix
-                      then Just $ dropWhile (=='/') $ drop (length fix) p
-                      else if is_relative p
-                           then Nothing
-                           else Just p
 \end{code}
 
 \begin{code}
hunk ./FilePathUtils.hs 52
                           r -> make_dotdots r
 
 drop_paths :: String -> [String] -> [String]
-drop_paths "" ps = ps
+drop_paths "" ps = map do_norm ps
 drop_paths fix ps = catMaybes $ map drop_path ps
   where drop_path ('.':'/':p) = drop_path $ dropWhile (=='/') p
         drop_path p = if take (length fix) p == fix
}

Context:

[new changelog entries.
David Roundy <[EMAIL PROTECTED]>**20050726123329] 
[make make_changelog ignore boring files (emacs backups) in changelog.in/entries/.
David Roundy <[EMAIL PROTECTED]>**20050726121455] 
[scrunch up the tla/cvs tables a bit in the manual.
David Roundy <[EMAIL PROTECTED]>**20050724181011] 
[another alternative formatting for cvs/tla tables.
Erik Schnetter <[EMAIL PROTECTED]>**20050724134656] 
[alternative formatting for cvs/tla tables.
Erik Schnetter <[EMAIL PROTECTED]>**20050724113905] 
[make add/remove --list-options not output preceding ./
David Roundy <[EMAIL PROTECTED]>**20050723134758
 We were treating the repository root differently from subdirectories
 because the file paths didn't need to get "fixed".  Addresses bug #158.
] 
[fix unit test that prompts for input
Will <[EMAIL PROTECTED]>**20050722181028] 
[put configure.ac back in the public domain.
David Roundy <[EMAIL PROTECTED]>**20050720115702] 
[advance DARCS_VERSION to 1.0.4pre2.
David Roundy <[EMAIL PROTECTED]>**20050720115536
 In the new tradition of changing the version after a release rather than
 before a release (although when the release type changes to rc or actual
 release it'll have to be done before the release).
] 
[drop $srcdir use; build-directories aren't supported anyway
Peter Simons <[EMAIL PROTECTED]>**20050719140044] 
[clean generated manual files at realclean
Peter Simons <[EMAIL PROTECTED]>**20050719135935] 
[cosmetic changes
Peter Simons <[EMAIL PROTECTED]>**20050719135834] 
[move comment to the right place
Peter Simons <[EMAIL PROTECTED]>**20050719135818] 
[let config.status generate config.command
Peter Simons <[EMAIL PROTECTED]>**20050719135733] 
[make use of autoconf 2.5x's AC_INIT macro
Peter Simons <[EMAIL PROTECTED]>**20050719135611] 
[use ./config.status to re-configure build after autoconf changes
Peter Simons <[EMAIL PROTECTED]>**20050719135435] 
[update distclean and realclean targets
Peter Simons <[EMAIL PROTECTED]>**20050719135415] 
[canonize [EMAIL PROTECTED]
Peter Simons <[EMAIL PROTECTED]>**20050719134834] 
[cosmetic change
Peter Simons <[EMAIL PROTECTED]>**20050719134816] 
[update test suite to work with Peter's makefile changes.
David Roundy <[EMAIL PROTECTED]>**20050721102319] 
[clean up formatting in Depends.
David Roundy <[EMAIL PROTECTED]>**20050723130807] 
[add changelog entry for get --partial fix.
David Roundy <[EMAIL PROTECTED]>**20050723130715] 
[fix bug in get_patches_beyond_tag that broke get --partial.
David Roundy <[EMAIL PROTECTED]>**20050723125507
 The bug was that we sometimes looked at patches that weren't strictly
 necesary.  This was because of the concat in get_patches_beyond_tag, which
 loses information about tag dependencies.  A clean implementation of a
 get_extra that accepts a true PatchSet would be a nicer fix (since it might
 fix other similar problems), but this fix is also correct and simple.
] 
[Make DarcsRepo.add_to_inventory take a list.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050720174029
 This avoids opening the inventory multiple times.  Thanks to Ian for the hint.
] 
[Use mapM_ instead of the comprehensible alternative.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050720164258
 Mentioning mapM_ always impresses people at dinner parties.  Thanks to
 Ian for the hint.
] 
[Move iterateGitTree out of the IO monad.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050720162841
 We're reading immutable on-disk data, it's safe to do it unsafely.
] 
[Clean up usage of interleaveIO in Git.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050720162251] 
[changelog entry for fix to RT#208.
David Roundy <[EMAIL PROTECTED]>**20050722113803] 
[make make_changelog a bit more flexible in its parsing.
David Roundy <[EMAIL PROTECTED]>**20050722113701
 One can now have blank lines between the match: lines and the actual
 comments.
] 
[fix error in name of --reorder-patches flag.
David Roundy <[EMAIL PROTECTED]>**20050722110752] 
[give better error message when dealing with a non-repository.
David Roundy <[EMAIL PROTECTED]>**20050722105908] 
[TAG 1.0.4pre1
David Roundy <[EMAIL PROTECTED]>**20050718112234] 
[make configure automatically guess the release state based on defaultrepo and tags.
David Roundy <[EMAIL PROTECTED]>**20050718112222] 
[Push and pull can now show the detailed diffs of patches
Jim Radford <[EMAIL PROTECTED]>**20050717042645
 The same distinction is now made between --summary and --verbose
 as changes makes.
] 
[TAG 2005-07-18
Ian Lynagh <[EMAIL PROTECTED]>**20050718193534] 
[fix write_problem to show all problems.
David Roundy <[EMAIL PROTECTED]>**20050717110628] 
[Rename bound variable in fromJust macro.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050716221705
 Avoids ``shadows existing variable'' warnings which for some reason are
 errors.
 
 Could we please use Lisp macros instead?
] 
[bugfix, make _darcs/prefs/defaults really override $HOME/.darcs/defaults
Tommy Pettersson <[EMAIL PROTECTED]>**20050612174925
 Variants of the same flag from the two defaults files where just merged,
 and an ALL in the local defaults could not override an explicit command
 in the global defaults, as would be expected.
] 
[use AC_SEARCH_LIBS instead of AC_CHECK_LIB
Wim Lewis <[EMAIL PROTECTED]>**20050707181811] 
[Update AC_PREREQ to 2.54
Wim Lewis <[EMAIL PROTECTED]>**20050707181631
 The form of AC_C_BIGENDIAN used here didn't show up until 2.53 or 2.54.
 Also, no need to specify the third arg, since it defaults to erroring out anyway.
] 
[TAG 2005-007-16
Ian Lynagh <[EMAIL PROTECTED]>**20050716181541] 
[don't import head and tail, which are in the prelude.
David Roundy <[EMAIL PROTECTED]>**20050716143547] 
[Keep file modes in dirty Git slurpies.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050716071846
 This prevents Darcs from resetting Git file permissions.
] 
[Update HEAD in place.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050716071116] 
[Generalise write_pending.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050716002145
 I missed this, which breaks add and remove.
] 
[Use emptyGitSlurpy in gitCommitToPatch'.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715234115] 
[Fix parsing of Git merges with no common ancestor.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715233226] 
[Implement emptyGitSlurpy.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715233211] 
[Fix typo in applyF_direct (Git).
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715233140] 
[Don't include ./ when generating patches from Git.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715203248] 
[Generalise rollback.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715194322] 
[Make histories that come from Git lazy in the presence of merges.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715193440
 Use the fact that we know the length of the result of a merge to produce a
 spine-lazy list of patches.  This makes ``darcs changes'' never touch
 a blob.
] 
[Make darcs understand Git n-ary merges.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050715192333] 
[move read/write format checks into identifyRepository and withRepoLock.
David Roundy <[EMAIL PROTECTED]>**20050714105840] 
[Generalise Pull and Apply.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050712145643] 
[Generate Git PatchInfos from scratch.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050712123945
 patchtopatchinfo is not lazy enough.
] 
[Replace frobPatchFile with patchTokenToPatchFile.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050711045246] 
[Make writing of patches work in arbitrary directories.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050711021014] 
[Use impossible.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050711015640] 
[Make patch tokens opaque.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050711014829] 
[cleanups in RepoFormat as suggested by Ian.
David Roundy <[EMAIL PROTECTED]>**20050711125711] 
[fix typo in git prefsUrl.
David Roundy <[EMAIL PROTECTED]>**20050711100531] 
[generalize Revert and Unrevert.
David Roundy <[EMAIL PROTECTED]>**20050711100429] 
[fix bug where we failed to convert sha1 to hex.
David Roundy <[EMAIL PROTECTED]>**20050711092602] 
[Only read darcs/cgi.conf once.
Wim Lewis <[EMAIL PROTECTED]>**20050623081319
 Modified read_conf() so it caches the parsed configuration values
 in a hash, instead of re-opening and re-reading the configuration
 file several times per CGI invocation. (A probably-unimportant side
 effect of this is that flag names can no longer contain spaces, but
 that shouldn't affect anybody.)
] 
[Make record repository-format agnostic.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710034630] 
[Implement polymorphic write support.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710034310] 
[Make withRepoLock polymorphic.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710023802] 
[Make writePatch and updateInventory polymorphic.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710021543] 
[Make sync_repo polymorphic.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710021426] 
[Import GitRepo from darcs-git.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710015221
 This version has write support and support for reverse-engineering
 Darcs merges from Git merges.
] 
[Add ``lax'' argument to applyToGitSlurpy.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710014814
 When lax is true, we apply merger_equivalent to mergers.
] 
[Make read/write_pending polymorphic.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710012515] 
[don't go through shell when execing darcs
Wim Lewis <[EMAIL PROTECTED]>**20050710062743
 Use the LIST variant of exec to avoid exposing the arguments of the darcs
 command to shell interpretation. Also, pipe the output directly to where
 it's going instead of reading it in and writing it out again.
] 
[fix incorrectly quoted regexp
Wim Lewis <[EMAIL PROTECTED]>**20050710051424
 Unquoted regexp evaluated to 0 or 1, which didn't immediately break the cgi
 because most hashes have those characters in them. Also fixed a bogus
 initializer caught by "perl -w".
] 
[update comments in darcs.cgi
Wim Lewis <[EMAIL PROTECTED]>**20050710050226] 
[Use a pipe instead of a temp file
Wim Lewis <[EMAIL PROTECTED]>**20050710005052
 Instead of storing the intermediate XML in a temporary file and then invoking
 xsltproc, just pipe the XML directly into the xslt processor on the fly.
] 
[use darcs_xml() where it simplifies things
Wim Lewis <[EMAIL PROTECTED]>**20050709023659] 
[Fix make_changelog to work with David's new identifyRepository.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710002419] 
[Fix typo in import of malloc.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050710001235] 
[Add comment about immutability of Git trees.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050709215815] 
[Fix location of HEAD in Git.updateHead.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050709215408] 
[implement missing DarcsIO methods in SlurpMonad.
David Roundy <[EMAIL PROTECTED]>**20050709192216] 
[clean up GitTreeIterator.
David Roundy <[EMAIL PROTECTED]>**20050709174440] 
[eliminate excess touching in Git.
David Roundy <[EMAIL PROTECTED]>**20050709170954] 
[make GitFileInfo a cleaner more haskellish data type.
David Roundy <[EMAIL PROTECTED]>**20050709170457] 
[add some typesafety to haskell cache_entry-related Git code.
David Roundy <[EMAIL PROTECTED]>**20050709153935] 
[add a bit of type safety to the pointers to git_tree_iterator.
David Roundy <[EMAIL PROTECTED]>**20050709153337] 
[make GitFile use the ffi more nicely.
David Roundy <[EMAIL PROTECTED]>**20050709152131] 
[replace fromSingleton with gitSingleCommitValue which gives better error message.
David Roundy <[EMAIL PROTECTED]>**20050709145616] 
[implement CString utility functions in FastPackedString.
David Roundy <[EMAIL PROTECTED]>**20050709145549] 
[use withSlurpy to implement apply_to_slurpy.
David Roundy <[EMAIL PROTECTED]>**20050709145517] 
[make darcs send look in the right place for target email address.
David Roundy <[EMAIL PROTECTED]>**20050709121505] 
[fix bug in Repository abstraction code that broke remote pulls.
David Roundy <[EMAIL PROTECTED]>**20050709120518
 This change adds to the Repository data object the URL of the repository in
 question, allowing us to use this abstraction with both remote and local
 repositories.
] 
[add support for repository format checking.
David Roundy <[EMAIL PROTECTED]>**20050709112017
 The idea being to be forward-compatible with repository format changes.
] 
[add an unused RepoFormat module.
David Roundy <[EMAIL PROTECTED]>**20050430123937] 
[Documentation nits & typos
Wim Lewis <[EMAIL PROTECTED]>**20050618193852] 
[Merge conflicts in configure.ac, and add blank line to try to avoid future conflicts
Ian Lynagh <[EMAIL PROTECTED]>**20050707160658] 
[TAG 1.0.3
Tomasz Zielonka <[EMAIL PROTECTED]>**20050524215127] 
[bump version to 1.0.3
Tomasz Zielonka <[EMAIL PROTECTED]>**20050524215115] 
[Revert an accidental Repository -> DarcsRepo change in a string
Ian Lynagh <[EMAIL PROTECTED]>**20050707160431] 
[Revert "Cache pristine directory within NoPristine"
Ian Lynagh <[EMAIL PROTECTED]>**20050707153500] 
[fixed a few typos in docs & comments
Wim Lewis <[EMAIL PROTECTED]>**20050624070640] 
[make git support configurable (copied from Juliusz's patch).
David Roundy <[EMAIL PROTECTED]>**20050701135046] 
[TAG another version that works in the git-merge saga.
David Roundy <[EMAIL PROTECTED]>**20050701133252] 
[fix errors from merging more darcs-git stuff.
David Roundy <[EMAIL PROTECTED]>**20050701133228] 
[resolve some more conflicts.
David Roundy <[EMAIL PROTECTED]>**20050701132446] 
[TAG working version in middle of darcs-git merge.
David Roundy <[EMAIL PROTECTED]>**20050701125730] 
[resolve conflicts between git and darcs-unstable.
David Roundy <[EMAIL PROTECTED]>**20050701125706] 
[Cache pristine directory within NoPristine.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426172006] 
[eliminate unnecesary unsafePerformIOs in Git.
David Roundy <[EMAIL PROTECTED]>**20050701142312] 
[Move gitIsTree to C code.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050509235651] 
[Simplify gitBlobToPatches.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050509234445] 
[Remove obsolete comment.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050507195543] 
[Make ordering of trees Linus-compatible.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050507184412] 
[Don't sort when purifying Git slurpies.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050507024134
 The new ordering is preserved by purification.
] 
[Replace the definition of Ord on GitSlurpy with one that works.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050507023832
 This is still not Linus-compliant, as Haskell and C use different ordering
 conventions.
] 
[Fix typo in noname.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050506222328] 
[Make gitFooToPatches work with dirty trees.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050506200939] 
[Export GitSlurpy.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050506181048] 
[Implement a variant of gitCommitToPatch that takes a GitSlurpy reference.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050506180031] 
[Get rid of gitCommitToPIMP.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050505181603] 
[Move reading git commits out of the IO monad.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050505180609] 
[Simplify generation of PatchSets from Git repos.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050505170207] 
[Fix parsing of multiple parents in Git commits.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050505153025
 Multiple parents come in separate parent lines, not a single line as I
 thought.
] 
[Fix Git date handling.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504233745] 
[Fix formatting of Git files.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504211643] 
[Fix formatting of Git records.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504210607] 
[Only free those names that were allocated in git_write_tree_done.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504204933] 
[Free the right buffer in git_write_tree_done.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504204910] 
[Estimate the size of a new tree correctly.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504204850] 
[Actually create new .git/HEAD (blush).
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504204825] 
[Use "." as root of GitSlurpies.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504203304] 
[Implement updateHead.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504193546] 
[Implement git_update_head.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504193529] 
[Implement writeGitCommit.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504192232] 
[Add type argument to writeGitFile.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504185421] 
[Make slurpGitCommit return a GitSlurpy after all.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504143935] 
[Implement make_git_file_info.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504142613] 
[Implement purification of Git trees.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504142042] 
[Actually implement purification of blobs.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504125709] 
[Add repo argument to purify.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050503234432] 
[Partial implementation of purifyGitSlurpy.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050503232848] 
[Generalise trackdown.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426233012] 
[Make whatsnew go through Repository.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426162106
 This won't work for Git repositories until they implement slurp_recorded
 and get_recorded.
] 
[Implement git_format_time.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504192053] 
[Export Slurpy constructors.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426195817] 
[Export applyBinary and applyHunkLines.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050503224204] 
[Really don't include directories in slurpies.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050429235609] 
[Make dist work with git repositories.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426203906] 
[Fix merge conflicts.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425194100] 
[Remove unsafeConstructPS.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050509233129] 
[Declare Git's global variables as extern.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050507224710
 Silly GHCi doesn't grok common symbols.
] 
[Use RepoPrefs.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050506220257] 
[Implement repoPrefs.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050506220152] 
[Export PatchInfo constructor.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050504190531] 
[Implement applyToGitSlurpy.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050503231941] 
[Basic implementation of dirty Git slurpies.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050503222642] 
[Use the cache when slurping the pristine state.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050430000813] 
[Restructure patch generation from Git repos.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050427213320] 
[Don't store directories in slurpies.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050427000833] 
[Instance Show Slurpy.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426235914] 
[Start slurping at ".".
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426203853] 
[Implement slurping from git repositories.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426195957] 
[Make pattern exhaustive.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426195941] 
[Check for presence of .git/HEAD.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426195914] 
[Move slurp_pending and slurp_recorded into Repository.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426185425] 
[Move get_unrecorded to Repository.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426175527] 
[Implement send for git repositories.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425210728] 
[Implement changes for git repositories.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425205329] 
[Use ForeignPtrs instead of raw pointers when useful.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425180449
 Now I remember why I hate Haskell.
] 
[Some less IO monad hacking.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425180207] 
[Fix handling of subtrees.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425162405] 
[Implement subtrees.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425063228] 
[Parse new-style git dates.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425001902] 
[Initial implementation of pulling from git.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424213832] 
[Add licence statements to Linus' files.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050426161330] 
[Implement constructPS.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050425180306
 I use touchForeignPtr in the finaliser when building a PS from a
 ForeignPtr.
] 
[Import parts of Linus' git 0.6.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424213310] 
[Implement unsafeConstructPS.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424212204] 
[Export diff_files from Diff.lhs.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424212113] 
[Export emptyFileContents from SlurpDirectory.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424212051] 
[First cut at remodularising repo access.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424145002] 
[Change Repository to DarcsRepo.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050424140132] 
[TAG 2005-07-07
Ian Lynagh <[EMAIL PROTECTED]>**20050707144607] 
Patch bundle hash:
c015ff3b28b6b63c005cbc7595d96e6f323e562e
_______________________________________________
darcs-devel mailing list
[email protected]
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel

Reply via email to