Hi David,
How does this look?
Also, I'm a bit confused; it's not necessarily true that the
(fst $ last ps1) == (fst $ last ps2) test be when the lengths are equal,
right? So we might miss it due to our length equalising if we are
unlucky?
Perhaps we should really be checking lasts each time we take a
new patch set against all lasts on the other side we have seen?
And possibly biasing the search towards the non-network or less-partial
repo (although partialness isn't a total order, I don't think)?
Hmm, just realised my gcau_simple (cr ps1 ++ concat ps1s) (cr ps2)
(and symmetric) case will be missing opportunities to do the test but
aborting sending at this point is too much hassle :-)
Thanks
Ian
Sat Aug 27 23:49:52 BST 2005 Ian Lynagh <[EMAIL PROTECTED]>
* Rewrite gcau, and add explanatory comment from David
New patches:
[Rewrite gcau, and add explanatory comment from David
Ian Lynagh <[EMAIL PROTECTED]>**20050827224952] {
hunk ./Depends.lhs 54
-get_common_and_uncommon_err (ps1,ps2) = gcau (optimize_patchset ps1, ps2)
+get_common_and_uncommon_err (ps1,ps2) = gcau (optimize_patchset ps1) ps2
hunk ./Depends.lhs 56
-gcau :: (PatchSet, PatchSet) -> Either MissingPatch ([PatchInfo],PatchSet,PatchSet)
-gcau (ps1,ps2) | null ps1 || null ps2 = return ([],[concat ps1],[concat ps2])
-gcau (ps1,[[]]) = return ([],[concat ps1],[[]])
-gcau ([[]],ps2) = return ([],[[]],[concat ps2])
-gcau ([(pi1,_)]:_,[(pi2,_)]:_) | pi1 == pi2 = return ([pi1],[[]],[[]])
-gcau (ps1:ps1b:ps1s,ps2:ps2b:ps2s) =
- if (fst $ last ps1) == (fst $ last ps2)
- then gcau_simple (ps1, ps2)
- else if length ps1 > length ps2
- then gcau (ps1:ps1b:ps1s, (ps2++ps2b):ps2s)
- else gcau ((ps1++ps1b):ps1s, ps2:ps2b:ps2s)
+{-
+gcau determines a list of "common" patches and patches unique to each of
+the two PatchSets. The list of "common" patches only needs to include all
+patches that are not interspersed with the "unique" patches, but including
+more patches in the list of "common" patches doesn't really hurt, except
+for efficiency considerations. Mostly, we want to access as few elements
+as possible of the PatchSet list, since those can be expensive (or
+unavailable).
hunk ./Depends.lhs 65
-gcau (ps1:ps1b:ps1s,[ps2]) =
- if (fst $ last ps1) == (fst $ last ps2)
- then gcau_simple (ps1, ps2)
- else gcau ((ps1++ps1b):ps1s, [ps2])
-gcau ([ps1],ps2:ps2b:ps2s) =
- if (fst $ last ps1) == (fst $ last ps2)
- then gcau_simple (ps1, ps2)
- else gcau ([ps1], (ps2++ps2b):ps2s)
+PatchSets have the property that if
hunk ./Depends.lhs 67
-gcau ([ps1],[ps2]) = gcau_simple (ps1, ps2)
-gcau ([ps1],ps2s) = gcau ([ps1],[concat ps2s])
-gcau (ps1s,[ps2]) = gcau ([concat ps1s],[ps2])
-gcau _ = bug "Unchecked args possibility in get_common_and_uncommon"
+(fst $ last $ head a) == (fst $ last $ head b)
hunk ./Depends.lhs 69
-gcau_simple :: ([(PatchInfo, Maybe Patch)], [(PatchInfo, Maybe Patch)])
+then (tail a) and (tail b) are identical repositories, and we want to take
+advantage of this if possible, to avoid reading too many inventories. In
+the case of --partial repositories or patch bundles, it is crucial that we
+don't need to read the whole history, since it isn't available.
+-}
+
+gcau :: PatchSet -> PatchSet
+ -> Either MissingPatch ([PatchInfo],PatchSet,PatchSet)
+gcau [] ps2 = return ([], [[]], [concat ps2])
+gcau ps1 [] = return ([], [concat ps1], [[]])
+gcau ([]:ps1) ps2 = gcau ps1 ps2
+gcau ps1 ([]:ps2) = gcau ps1 ps2
+gcau ([(pi1,_)]:_) ([(pi2,_)]:_)
+ | pi1 == pi2 = return ([pi1], [[]], [[]])
+gcau (orig_ps1:orig_ps1s) (orig_ps2:orig_ps2s)
+ = f (length orig_ps1) (fst $ last orig_ps1) [orig_ps1] orig_ps1s
+ (length orig_ps2) (fst $ last orig_ps2) [orig_ps2] orig_ps2s
+ where {- Invariants: nx = length $ cr psx
+ lx = last $ cr psx -}
+ f _n1 l1 ps1 _ps1s _n2 l2 ps2 _ps2s
+ | l1 == l2 = gcau_simple (cr ps1) (cr ps2)
+ f n1 l1 ps1 ps1s n2 l2 ps2 ps2s
+ = case compare n1 n2 of
+ GT -> case dropWhile null ps2s of
+ ps2':ps2s' ->
+ f n1 l1 ps1 ps1s
+ (n2 + length ps2') (fst $ last ps2') (ps2':ps2) ps2s'
+ [] -> gcau_simple (cr ps1 ++ concat ps1s) (cr ps2)
+ _ -> case dropWhile null ps1s of
+ ps1':ps1s' ->
+ f (n1 + length ps1') (fst $ last ps1') (ps1':ps1) ps1s'
+ n2 l2 ps2 ps2s
+ [] -> gcau_simple (cr ps1) (cr ps2s ++ concat ps2s)
+ cr = concat . reverse
+
+gcau_simple :: [(PatchInfo, Maybe Patch)] -> [(PatchInfo, Maybe Patch)]
hunk ./Depends.lhs 106
-gcau_simple (ps1, ps2) = do
- ex1 <- get_extra (return []) common ps1
- ex2 <- get_extra (return []) common ps2
- return $
- ( map fst $ head $ (optimize_patchset [filter ((`elem` common).fst) ps1]) ++ [[]]
- , [ex1]
- , [ex2]
- )
- where
- common = (map fst ps1) `intersect` (map fst ps2)
+gcau_simple ps1 ps2 = do
+ ex1 <- get_extra (return []) common ps1
+ ex2 <- get_extra (return []) common ps2
+ let ps1' = filter ((`elem` common) . fst) ps1
+ return (map fst $ head $ ((optimize_patchset [ps1']) ++ [[]]) , [ex1] , [ex2])
+ where common = map fst ps1 `intersect` map fst ps2
}
Context:
[remove hideous malloc hack.
David Roundy <[EMAIL PROTECTED]>**20050818161411]
[change my AUTHORS email to [EMAIL PROTECTED]
David Roundy <[EMAIL PROTECTED]>**20050808124703]
[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]
[fix for bug Ian found in apply.
David Roundy <[EMAIL PROTECTED]>**20050811162558
This is the bug manifested in the cabal repository.
]
[fix compilation errors with ghc-6.2.2 on win32
Peter Strand <[EMAIL PROTECTED]>**20050809192759]
[Retain both Git's author and committer.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050810000820]
[Move slurping into syncPristine.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050809232101
Avoids creating a useless pristine tree when there is none. Thanks to
Ian for pointing this out.
]
[Split --relink into --relink and --relink-pristine.
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050809230951
Relinking the pristine tree breaks handling of timestamps, which causes
Darcs to compare file contents. It should not be used unless you know
what you are doing.
]
[make repair work on partial repositories.
David Roundy <[EMAIL PROTECTED]>**20050805113001]
[Cleanup --verbose handling in repair command
Matt Lavin <[EMAIL PROTECTED]>**20050805020630]
[clean up Printer.wrap_text.
David Roundy <[EMAIL PROTECTED]>**20050808114844]
[add several changelog entries.
David Roundy <[EMAIL PROTECTED]>**20050808114800]
[improve EOD message a tad.
David Roundy <[EMAIL PROTECTED]>**20050807112644
This change also introduces a "wrapped_text" function in Printer, so we
won't have to worry so often about manually wrapping lines.
]
[changed ***DARCS*** to ***END OF DESCRIPTION***
Jason Dagit <[EMAIL PROTECTED]>**20050729032543]
[remove unused opts argument from apply_patches and apply_patches_with_feedback
Matt Lavin <[EMAIL PROTECTED]>**20050807031038]
[Use apply_patch_with_feedback from check and repair commands
Matt Lavin <[EMAIL PROTECTED]>**20050805020830]
[add code to read patch bundles with added CRs.
David Roundy <[EMAIL PROTECTED]>**20050806222631
I think this'll address bug #291.
]
[accept command-line flags in any order.
David Roundy <[EMAIL PROTECTED]>**20050806211828
In particular, we no longer require that --flags precede filename and
repository arguments.
]
[show patch numbers instead of dots on get
Matt Lavin <[EMAIL PROTECTED]>**20050804013649]
[add obliterate command as alias for unpull.
David Roundy <[EMAIL PROTECTED]>**20050804104929]
[Do not ask confirmation for revert -a
[EMAIL PROTECTED]
Giving -a as a parameter means the user expects all changes to be reverted.
Just like for unrevert and record go ahead with it do not ask for confirmation.
]
[clarify help text for 'd' in SelectPatches.
David Roundy <[EMAIL PROTECTED]>**20050806231117]
[Add --with-static-libs configure flag for linking static versions of libraries.
[EMAIL PROTECTED]
[add changelog entry for bug #477.
David Roundy <[EMAIL PROTECTED]>**20050806212148]
[changelog entry for bug #189.
David Roundy <[EMAIL PROTECTED]>**20050731132624]
[add description of how to add changelog entries to ChangeLog.README.
David Roundy <[EMAIL PROTECTED]>**20050806225901]
[Explain the missing ChangeLog
Mark Stosberg <[EMAIL PROTECTED]>**20050526135421
It should be easy for casual users and contributors to view and update the
ChangeLog.
Providing a README file in the place where people are most likely to look
provides a very useful clue.
However, it's still not clear to me exactly how the system works, so I have
left a stub to complete that documentation.
Mark
]
[fix obsolete error explanation in get_extra bug.
David Roundy <[EMAIL PROTECTED]>**20050804130610]
[simplify fix for bug 463; reuse /// from FilePathUtils
Matt Lavin <[EMAIL PROTECTED]>**20050804021130]
[Make curl exit with error on failed downloads
[EMAIL PROTECTED]
[Bump up AC_PREREQ version to 2.59.
[EMAIL PROTECTED]
[fix for bug 463 (with new test)
Matt Lavin <[EMAIL PROTECTED]>**20050802002116]
[bump version number, since I just made a release.
David Roundy <[EMAIL PROTECTED]>**20050731190756]
[Use simpler curl_version() function to get version string.
Kannan Goundan <[EMAIL PROTECTED]>**20050322221027]
[fix documentation on --reorder-patches.
David Roundy <[EMAIL PROTECTED]>**20050731185406]
[add changelog entry for bug #224.
David Roundy <[EMAIL PROTECTED]>**20050731133942]
[fix bug when editing long comment leaves empty file.
David Roundy <[EMAIL PROTECTED]>**20050731133612]
[TAG 1.0.4pre2
David Roundy <[EMAIL PROTECTED]>**20050731121029]
[add changelog entry and building darcsgit section to manual.
David Roundy <[EMAIL PROTECTED]>**20050731120458]
[check for a git/ in current directory (when --enable-git).
David Roundy <[EMAIL PROTECTED]>**20050731112740]
[remove the now-unneeded git/.
David Roundy <[EMAIL PROTECTED]>**20050731105656]
[make determine_release_state.pl not touch ThisVersion.lhs unless it's changed.
David Roundy <[EMAIL PROTECTED]>**20050730193258
This saves us considerable time checking whether anything needs to be
recompiled.
]
[Autoconf support for linking against libgit.a
Wim Lewis <[EMAIL PROTECTED]>**20050731050341
Allow (actually, require) the user to specify the location of the Git
implementation when including Git support. Attempt to discover whether
Git was compiled to require OpenSSL's implementation of SHA1.
]
[Do autoconf substitution on git.h
Wim Lewis <[EMAIL PROTECTED]>**20050731050259]
[Use AS_HELP_STRING to format option descriptions
Wim Lewis <[EMAIL PROTECTED]>**20050729185632]
[Simplify curses/ncurses search; use $LIBS
Wim Lewis <[EMAIL PROTECTED]>**20050729183440]
[Changes for Git 0.99
Juliusz Chroboczek <[EMAIL PROTECTED]>**20050730213601]
[fix darcs --commands, which was broken by subcommand code.
David Roundy <[EMAIL PROTECTED]>**20050730111501]
[share target collection code in send implementation
Matt Lavin <[EMAIL PROTECTED]>**20050730212012]
[Make send --to override default email and add test for it
Matt Lavin <[EMAIL PROTECTED]>**20050730185352]
[remove unused #define from windows flags.
David Roundy <[EMAIL PROTECTED]>**20050730124558]
[mention in changelog the win32 build improvement in recognizing windows.
David Roundy <[EMAIL PROTECTED]>**20050730124809]
[use presence of windows.h to decide if we're in windows.
David Roundy <[EMAIL PROTECTED]>**20050730124536]
[add new changelog entry and update older one.
David Roundy <[EMAIL PROTECTED]>**20050730115001]
[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]
[Remove unused function
Ian Lynagh <[EMAIL PROTECTED]>**20050730010118]
[Start Compat.hs, and move stdout_is_a_pipe from compat.c
Ian Lynagh <[EMAIL PROTECTED]>**20050730004829]
[remove TODO annotation for two tests that now pass.
David Roundy <[EMAIL PROTECTED]>**20050728115034]
[fix bug introduced in 208 fix which messed up --list-options output.
David Roundy <[EMAIL PROTECTED]>**20050729121804
We need to make sure that drop_paths doesn't do anything to an absolute
path or URL.
]
[Merge changes
Ian Lynagh <[EMAIL PROTECTED]>**20050728230858]
[Include autoconf-detected libs in LDFLAGS
Joshua J. Berry <[EMAIL PROTECTED]>**20050728031609
Autoconf uses @LIBS@ -- not @LDFLAGS@ -- for libraries it detects (e.g. using
AC_SEARCH_LIBS).
]
[Update QueryManifest with the Repository changes
Ian Lynagh <[EMAIL PROTECTED]>**20050728185646]
[resolve conflict with myself...
David Roundy <[EMAIL PROTECTED]>**20050727100745]
[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.
]
[Merge changes
Florian Weimer <[EMAIL PROTECTED]>**20050607203225]
[Fix typo
Florian Weimer <[EMAIL PROTECTED]>**20050510113824]
[Test case for "query manifest"
Florian Weimer <[EMAIL PROTECTED]>**20050510113803]
[Remove the "query changes" and "query annotate" subcommands
Florian Weimer <[EMAIL PROTECTED]>**20050510060221]
[Do not mention file name in error message for disabled commands
Florian Weimer <[EMAIL PROTECTED]>**20050510054931
We have multiple configuration files, and we do not know tat this point which
file contains the "disable" option.
]
[Remove --disable on supercommands
Florian Weimer <[EMAIL PROTECTED]>**20050510054744]
[Resolve conflict
Florian Weimer <[EMAIL PROTECTED]>**20050510054405]
[Add --help in command_options, like --disable
Florian Weimer <[EMAIL PROTECTED]>**20050510053348
--list-options is still separate, to keep it undocumented.
]
[Resolve conflict
Florian Weimer <[EMAIL PROTECTED]>**20050510052119]
[Move --disable to the end of the option list
Florian Weimer <[EMAIL PROTECTED]>**20050510051905]
[Include the query subcommand documentation in Query.lhs
Florian Weimer <[EMAIL PROTECTED]>**20050510051533]
[Print usage information if the subcommand is missing
Florian Weimer <[EMAIL PROTECTED]>**20050509101427
Add a separating line to the invalid subcommand error message.
]
[Fix empty lines in "darcs query --help" output
Florian Weimer <[EMAIL PROTECTED]>**20050509100509]
[Resolve conflicts
Florian Weimer <[EMAIL PROTECTED]>**20050509094729]
[Add the --disable option in command_options, not in run_the_command
Florian Weimer <[EMAIL PROTECTED]>**20050509093929
This change makes it possible to specialize the list of default commands
(such as --disable) on different DarcsCommand constructors.
]
[Add --pending option to "query manifest"
Florian Weimer <[EMAIL PROTECTED]>**20050508080502]
[Add the --files and --directories options to "query manifest"
Florian Weimer <[EMAIL PROTECTED]>**20050507223327]
[Implement list_slurpy_dirs
Florian Weimer <[EMAIL PROTECTED]>**20050507223257]
[Add --null flag to the "query manifest" command
Florian Weimer <[EMAIL PROTECTED]>**20050507213547]
[Add "query manifest" command
Florian Weimer <[EMAIL PROTECTED]>**20050507163125]
[Implement the \haskell command for subcommands
Florian Weimer <[EMAIL PROTECTED]>**20050507160607]
[Mention the structure of subcommands in the documentation
Florian Weimer <[EMAIL PROTECTED]>**20050507151003]
[Handle subcommands in the preprocessor
Florian Weimer <[EMAIL PROTECTED]>**20050507150829
You can use "\options{SUPER SUB}" to document the options of a
subcommand.
]
[Do not include the "query" command in the manual
Florian Weimer <[EMAIL PROTECTED]>**20050507150707
The commands will be documented individually, in the relevant section.
]
[Mention "query" subcommands in the man page
Florian Weimer <[EMAIL PROTECTED]>**20050507135756
"changes" is now documented as "query changes". "query annotate" is
mentioned, too.
]
[add subcommand infrastructure and (currently useless) query command.
David Roundy <[EMAIL PROTECTED]>**20050507115457
The idea of course is that this can be readily extended to add nice new
simple subcommands under query.
]
[Don't die on sigALRM (linking with -threaded means we see loads of them)
Ian Lynagh <[EMAIL PROTECTED]>**20050728131023]
[Give help for 'c' in selectchanges
Ian Lynagh <[EMAIL PROTECTED]>**20050728125910]
[Small tweaks to the with_new_pending patch
Ian Lynagh <[EMAIL PROTECTED]>**20050727025308]
[replace write_pending with "with_new_pending".
David Roundy <[EMAIL PROTECTED]>**20050722125725
This patch is basically an extension of Ian's earlier patch that created a
"write_pending_then" function. This one creates two functions,
with_new_pending and add_to_pending.
The idea is that we can't check if a new pending is valid until after we've
updated the pristine cache. But it's possible that the pending patch
itself was lazily generated with get_unrecorded, in which case it's not
safe to modify the pristine cache until after we've written pending. This
new interface makes it much harder to make this kind of mistake. I also
think it's pretty intuitive.
]
[new changelog entries.
David Roundy <[EMAIL PROTECTED]>**20050726123329]
[clean up formatting in Depends.
David Roundy <[EMAIL PROTECTED]>**20050723130807]
[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.
]
[give better error message when dealing with a non-repository.
David Roundy <[EMAIL PROTECTED]>**20050722105908]
[make make_changelog ignore boring files (emacs backups) in changelog.in/entries/.
David Roundy <[EMAIL PROTECTED]>**20050726121455]
[add changelog entry for get --partial fix.
David Roundy <[EMAIL PROTECTED]>**20050723130715]
[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]
[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.
]
[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]
[fix error in name of --reorder-patches flag.
David Roundy <[EMAIL PROTECTED]>**20050722110752]
[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]
[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]
[fix write_problem to show all problems.
David Roundy <[EMAIL PROTECTED]>**20050717110628]
[don't import head and tail, which are in the prelude.
David Roundy <[EMAIL PROTECTED]>**20050716143547]
[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.
]
[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?
]
[TAG 2005-07-18
Ian Lynagh <[EMAIL PROTECTED]>**20050718193534]
[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.
]
[TAG 2005-007-16
Ian Lynagh <[EMAIL PROTECTED]>**20050716181541]
[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]
[cleanups in RepoFormat as suggested by Ian.
David Roundy <[EMAIL PROTECTED]>**20050711125711]
[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]
[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]
[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.
]
[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]
[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]
[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]
[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.)
]
[Removed an unused reference to Slurpy
Ian Lynagh <[EMAIL PROTECTED]>**20050709114603]
[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:
de399670c2d0e5ebeac62296d2699d9b2d8edc7f
_______________________________________________
darcs-devel mailing list
[email protected]
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel