[darcs-users] [patch374] the state of the adventure

Petr Ročkai bugs at darcs.net
Tue Sep 7 23:44:36 UTC 2010


Petr Ročkai <me at mornfall.net> added the comment:

Hi!

NB: This is a rebase. You need to unpull any previous versions of this bundle
before applying this one. Unfortunately, the patches ended up in a fairly mixed
order due to the rebase, which will probably make reviewers' lives even harder
:(.

I have pushed Ganesh's Darcs.Patch refactors and rebased adventure against
that. That also means that all conflictors should be gone from this
set. Hopefully that offsets somewhat the above unfortunateness for the
reviewer(s).

As for contents of the set:

(a) I have ported over hashed-storage, and consequently also adventure, to
pathlib: (darcs get) http://repos.mornfall.net/pathlib/ , also see
http://repos.mornfall.net/pathlib/dist/doc/html/pathlib/

The library is a work in progress, and is based on previous Storage.Hashed.Path
work. I have added optional type witnesses for object type (they are not used
by hashed-storage or darcs, but are used by the implementation of pathlib
itself), after pathtype. I have also improved the testsuite somewhat, and added
a SubPath type that is a Relative with no .. allowed. Switching hashed-storage
and darcs itself to SubPath (where appropriate) is still pending, and I'll do
that in the near-term.

Note that the Data.Path.Witnessed API is by far not complete yet, with regards
to (unwitnessed) Data.Path. I'll get to that later (but before releasing
pathlib to Hackage, presumably). Nevertheless, the priority is the basic (no
witnesses) API. Maybe more importantly, there is currently no (real) support
for windows paths, although the way is more or less paved (there is a Posix/W32
split in the types). I have also beaten a bit of a trail for eventual URL
support (no paving yet).

(b) I have added, but not made any use of, Darcs.Repository.Class and
Darcs.Repository.Hashed. These will eventually replace the existing
Darcs.Repository interface (hopefully). They currently fail to compile, but I
figured I could use some version control when working on them, and why not keep
them around in the branch in the meantime.

The new interface is using the tentative state pervasively for all
operations. The only operation that manipulates the recorded state is "commit"
(this should be captured by the type witnesses as well, although I haven't
gotten to actually running them through GHC).

I'll work more on this, the expected course of action is to get the new API to
compile and then probably try to write some tests for it, before starting to
port the rest of darcs. At that point, I'll need to add some HUnit
infrastructure (the unit tests will need a working directory to run in,
etc.). I don't think QC is very well suited for this (mostly everything
interesting lives in IO and doesn't come with the kind of general properties QC
is good for).

(c) There's now annotate --machine flag to get the machine-readable output.

That's it, I think.

Yours,
   Petr.

81 patches for repository http://darcs.net:

Wed Aug 11 21:25:55 CEST 2010  Petr Rockai <me at mornfall.net>
  * Move the preferences system into IO where it belongs.

Wed Aug 11 22:12:49 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix annotate that got broken due to path format change.

Thu Aug 12 01:29:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix a subtle bug in onlyHunks with rather curious side-effects.

Thu Aug 12 01:32:08 CEST 2010  Petr Rockai <me at mornfall.net>
  * Make the tests pass (mostly ./foo versus foo in user-visible output).

Sun Aug 29 18:54:41 CEST 2010  Petr Rockai <me at mornfall.net>
  * Only test Darcs2 and Hashed (and not OF).

Sun Aug 29 19:14:28 CEST 2010  Petr Rockai <me at mornfall.net>
  * Set a $format variable in lib, depending on current repo format under test.

Sun Aug 29 19:15:01 CEST 2010  Petr Rockai <me at mornfall.net>
  * Make the tests a bit less verbose (do not print all of lib every time).

Sun Aug 29 19:15:18 CEST 2010  Petr Rockai <me at mornfall.net>
  * Modernize the conflict-doppleganger test.

Sun Aug 29 19:16:18 CEST 2010  Petr Rockai <me at mornfall.net>
  * Update couple more tests for absence of OF.

Sun Aug 29 19:57:34 CEST 2010  Petr Rockai <me at mornfall.net>
  * Adapt bad-format to the current OF-less situation.

Sun Aug 29 19:57:50 CEST 2010  Petr Rockai <me at mornfall.net>
  * Adapt issue1248 test to current OF-less situation.

Sun Aug 29 19:58:18 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove parts of the hashed_inventory that require conversion to OF.

Sun Aug 29 21:15:00 CEST 2010  Petr Rockai <me at mornfall.net>
  * Print a list of (shell) tests that have failed after a test run.

Sun Aug 29 21:15:37 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix a few more tests since the OF support removal.

Mon Aug 30 10:17:54 CEST 2010  Petr Rockai <me at mornfall.net>
  * Cut the old annotate code from Commands.Annotate.

Thu Sep  2 13:20:06 CEST 2010  Petr Rockai <me at mornfall.net>
  * Avoid a redundant readRecorded in readRecordedAndPending.

Thu Sep  2 18:03:15 CEST 2010  Petr Rockai <me at mornfall.net>
  * Avoid useless expansion of recorded in Commands.Add.

Thu Sep  2 18:20:24 CEST 2010  Petr Rockai <me at mornfall.net>
  * Do not try to replayRepository in optimize --upgrade (redundant, broken).

Fri Sep  3 02:11:37 CEST 2010  Petr Rockai <me at mornfall.net>
  * Update annotate.sh (no --xml).

Fri Sep  3 02:12:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Update changes_with_move for differences in annotate.

Fri Sep  3 02:13:27 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove redundant set -ev from tentative_revert.sh.

Fri Sep  3 02:56:34 CEST 2010  Petr Rockai <me at mornfall.net>
  * Give up some progress feedback to generalise the type of getNonrangeMatchS.

Sat Sep  4 05:10:32 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix compile of ApplyPatches (missed instance import).

Tue Sep  7 22:57:14 CEST 2010  Petr Rockai <me at mornfall.net>
  * Tweak the haddock for readWorking.

Tue Sep  7 23:49:28 CEST 2010  Petr Rockai <me at mornfall.net>
  * First stab at a hashed-storage 0.6 port.

Tue Sep  7 23:49:38 CEST 2010  Petr Rockai <me at mornfall.net>
  * Use currentTree from S.H.Monad instead of gets tree.

Tue Sep  7 23:49:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix conflicts in Darcs.Diff.

Tue Sep  7 23:49:41 CEST 2010  Petr Rockai <me at mornfall.net>
  * Break away textDiff out of treeDiff.

Tue Sep  7 23:52:36 CEST 2010  Petr Rockai <me at mornfall.net>
  * A new implementation of per-file annotate, part one.

Tue Sep  7 23:52:37 CEST 2010  Petr Rockai <me at mornfall.net>
  * Add a machineFormat implementation to Darcs.Annotate (not yet used).

Tue Sep  7 23:52:38 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix a bug with following indirect renames in annotate.

Tue Sep  7 23:52:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix the annotation of the first line.

Tue Sep  7 23:52:42 CEST 2010  Petr Rockai <me at mornfall.net>
  * Avoid a bogus trailing empty line in annotate output.

Tue Sep  7 23:52:43 CEST 2010  Petr Rockai <me at mornfall.net>
  * Use fluffier and more readable formatting for annotate.

Tue Sep  7 23:52:44 CEST 2010  Petr Rockai <me at mornfall.net>
  * Make the annotate formatting ever so fluffier.

Tue Sep  7 23:52:46 CEST 2010  Petr Rockai <me at mornfall.net>
  * Use linesPS in patch application -- the trailing empty line is significant.

Tue Sep  7 23:52:47 CEST 2010  Petr Rockai <me at mornfall.net>
  * A slight improvement to file annotate performance.

Tue Sep  7 23:52:48 CEST 2010  Petr Rockai <me at mornfall.net>
  * Make SubPath just another alias for Relative.

Tue Sep  7 23:58:41 CEST 2010  Petr Rockai <me at mornfall.net>
  * Resolve conflicts in Commands.WhatsNew imports.

Wed Sep  8 00:21:20 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix the type of listTouchedFiles to -> [FileName].

Wed Sep  8 00:30:27 CEST 2010  Petr Rockai <me at mornfall.net>
  * Make FileName an alias to Relative (from Hashed.Storage.Path).

Wed Sep  8 00:30:29 CEST 2010  Petr Rockai <me at mornfall.net>
  * Replace FilePath with FileName in SelectChanges and ChooseTouching.

Wed Sep  8 00:30:31 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove a forgotten trace.

Wed Sep  8 00:30:32 CEST 2010  Petr Rockai <me at mornfall.net>
  * Restore the ".." check in isMaliciousPath.

Wed Sep  8 00:30:33 CEST 2010  Petr Rockai <me at mornfall.net>
  * Introduce a new Darcs.Path module to centralise path handling.

Wed Sep  8 00:30:33 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix announceFiles in WhatsNew (abolish unsafePathFrom*).

Wed Sep  8 00:30:34 CEST 2010  Petr Rockai <me at mornfall.net>
  * Merge Darcs.Patch.FileName into Darcs.Path.

Wed Sep  8 00:30:35 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove bad import (no longer exists).

Wed Sep  8 00:30:35 CEST 2010  Petr Rockai <me at mornfall.net>
  * Drop unused and redundant pathFromFileName.

Wed Sep  8 00:30:36 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove the now-redundant sp2fn.

Wed Sep  8 00:30:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Optimize darcs diff.

Wed Sep  8 00:30:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Cut an overlooked bit of debug code.

Wed Sep  8 00:30:41 CEST 2010  Petr Rockai <me at mornfall.net>
  * Resolve conflict in Commands.Diff imports.

Wed Sep  8 00:30:41 CEST 2010  Petr Rockai <me at mornfall.net>
  * Merge Darcs.RepoPath into Darcs.Path.

Wed Sep  8 00:30:42 CEST 2010  Petr Rockai <me at mornfall.net>
  * Implement directory annotate.

Wed Sep  8 00:30:42 CEST 2010  Petr Rockai <me at mornfall.net>
  * Adapt Darcs.Path and couple other use sites to S.H.Path API changes.

Wed Sep  8 00:30:42 CEST 2010  Petr Rockai <me at mornfall.net>
  * Implement darcs annotate -p/-m for files & directories.

Wed Sep  8 00:30:42 CEST 2010  Petr Rockai <me at mornfall.net>
  * Add and implement --machine for annotate.

Wed Sep  8 00:30:43 CEST 2010  Petr Rockai <me at mornfall.net>
  * First round of OF removal.

Wed Sep  8 00:30:43 CEST 2010  Petr Rockai <me at mornfall.net>
  * Re-implement create(Partials)PristineDirectoryTree in terms of readRecorded.

Wed Sep  8 00:30:43 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove a pile of virtually unused HashedIO code.

Wed Sep  8 00:30:43 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix withTentative (needs to run the copy from inside the repo).

Wed Sep  8 00:30:43 CEST 2010  Petr Rockai <me at mornfall.net>
  * (Nearly) make it possible to thread fetchFileUsingCache into Storage.Hashed.Darcs.

Wed Sep  8 00:30:44 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix create(Partials)Pristine... with relative paths.

Wed Sep  8 00:30:50 CEST 2010  Petr Rockai <me at mornfall.net>
  * Flip handling of absolute paths over to S.H.Path as well.

Wed Sep  8 00:30:51 CEST 2010  Petr Rockai <me at mornfall.net>
  * Port over to pathlib-based hashed-storage.

Wed Sep  8 00:30:52 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove the Population code (part of the old annotate implementation).

Wed Sep  8 00:30:52 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove redundant imports from Commands.Get.

Wed Sep  8 00:30:53 CEST 2010  Petr Rockai <me at mornfall.net>
  * Getting OF repos is not supported, reflect that in Commands.Get.

Wed Sep  8 00:30:53 CEST 2010  Petr Rockai <me at mornfall.net>
  * Correctly fail on encountering unsupported repository format in Commands.Get.

Wed Sep  8 00:30:54 CEST 2010  Petr Rockai <me at mornfall.net>
  * Fix the optimize --upgrade functionality.

Wed Sep  8 00:30:54 CEST 2010  Petr Rockai <me at mornfall.net>
  * Also remove support for getting old-fashioned (to hashed).

Wed Sep  8 00:33:34 CEST 2010  Petr Rockai <me at mornfall.net>
  * Replace (Readable/Writeable)Directory with ApplyMonad.

Wed Sep  8 00:33:37 CEST 2010  Petr Rockai <me at mornfall.net>
  * Add missed mReadFilePS to Storage.Hashed.Monad implementation of ApplyMonad.

Wed Sep  8 00:33:38 CEST 2010  Petr Rockai <me at mornfall.net>
  * Remove the useless MonadPlus AnnotatedM instance.

Wed Sep  8 00:33:39 CEST 2010  Petr Rockai <me at mornfall.net>
  * Add a RestrictedApply monad, and withFiles as its entrypoint.

Wed Sep  8 00:33:39 CEST 2010  Petr Rockai <me at mornfall.net>
  * Optimize darcs show contents --match.

Wed Sep  8 00:33:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Model ChangePref in ApplyMonad (by ignoring it, outside of the IO instance).

Wed Sep  8 00:33:40 CEST 2010  Petr Rockai <me at mornfall.net>
  * Use a strict State monad for FilePathMonad/RestrictedApply.

Wed Sep  8 00:56:45 CEST 2010  Petr Rockai <me at mornfall.net>
  * Add a first stab at Darcs.Repository.Class (and a Hashed implementation).

Wed Sep  8 01:06:56 CEST 2010  Petr Rockai <me at mornfall.net>
  * Resolve issue1942: fix the fix which ended up too strict due to unsealing.

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/patch374>
__________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: move-the-preferences-system-into-io-where-it-belongs_.dpatch
Type: text/x-darcs-patch
Size: 579735 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20100907/a0c00974/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unnamed
Type: application/octet-stream
Size: 5 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20100907/a0c00974/attachment-0001.obj>


More information about the darcs-users mailing list