It's certainly to see patch-tag folks working on darcs proper! On Mon, Apr 06, 2009 at 23:24:26 -0700, Thomas Hartman wrote: > first, modify arguments to have an argument type of patch, tag, or match > pattern, but not index range. > > thart...@ubuntu:~/haskellInstalls/darcs.net>darcs diff > src/Darcs/Arguments.lhs > 57c57 > < changes_format, match_one_context, > match_one_nontag, > --- > > changes_format, match_one_context, > match_one_nontag, match_one_nonrange, > 626c626,627 > < match_one = concat_options [__match, __patch, __tag, __index] > --- > > match_one_nonrange = concat_options [__match, __patch, __tag] > > match_one = concat_options [__match, __patch, __tag, __index] -- this > seems kinda wrong. __index is a range.
It might be useful to realise that the flag --match is not the
same --matches. Likewise, the flag --index (singular) is not
the same as --index (plural, perhaps calling it --indexes would
be reasonable).
So --match and --index (singular) match single patches.
And --matches and --index (plural) match multiple patches.
I would suggest not worrying about the --index flag (if we accept
--matches, there isn't any reason not to accept --index, and darcs
show files --index=4-5
In short, I am fairly confident you can get away without any
modifications to Darcs.Arguments. If you're curious, have a look at
Darcs.Match to see how these get used. Matching is a delicate art,
with lots of subtle semantic differences depending on what command
you're using. It's fun!
> Then, modify Darcs/Commands/ShowFiles.lhs (attached)
Perhaps somebody else look at this?
> key snip below.
>
> If anyone can point me to where I'm going wrong, it would be aweseom!
>
> manifest_cmd :: ([DarcsFlag] -> Slurpy -> [FilePath]) -> [DarcsFlag] ->
> [String] -> IO ()
> manifest_cmd to_list opts _ = do
> list <- (to_list opts) `fmap` ( withRepository opts $ \repository -> do
> formerdir <- getCurrentDirectory
> thename <- return $ takeFileName formerdir
> withTempDir thename $ \dir -> do
> if have_nonrange_match opts
> then createPristineDirectoryTree repository (toFilePath dir)
> else error "should have nonrange match"
> slurp repository
> -- slurp
> repository
>
> )
> mapM_ output list
> where slurp :: RepoPatch p => Repository p C(r u r) -> IO Slurpy
> slurp = if NoPending `notElem` opts
> then slurp_pending else slurp_recorded
> output_null name = do { putStr name ; putChar '\0' }
> output = if NullFlag `elem` opts then output_null else putStrLn
How about darcs sending us a patch?
--
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
signature.asc
Description: Digital signature
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
