[darcs-users] feature request: darcs show files for a particular rev / moment in time of repo
Thomas Hartman
thomashartman1 at googlemail.com
Tue Apr 7 06:24:26 UTC 2009
So, I tried to implement this. So far no success, but I think I may be
close.
first, modify arguments to have an argument type of patch, tag, or match
pattern, but not index range.
thartman at 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.
Then, modify Darcs/Commands/ShowFiles.lhs (attached)
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
On Thu, Apr 2, 2009 at 3:38 PM, Thomas Hartman <
thomashartman1 at googlemail.com> wrote:
> I would like to be able to use the flags
>
> --match=PATTERN select a single patch matching PATTERN
> -p REGEXP --patch=REGEXP select a single patch matching REGEXP
> -t REGEXP --tag=REGEXP select tag matching REGEXP
>
> for
>
> darcs query files (aka darcs show files)
>
> Currently, these flags work for
>
> darcs query contents
>
> but not files.
>
> I think
>
> -n N-M --index=N-M select a range of patches
>
> makes no sense in a query files context, but I could be overlooking
> something, in which case I would want that too.
>
> The ability to get an idea of repository state at a point in time would
> enable me to implement github-style repository browsing for patch-tag
>
> I am currently looking at another way to do this, based on (ab)using
> filestore library functions, but it's a bit of a kludge.
>
> Of course, I need this mainly for doing directory listings at a
> point-in-time. darcs query files for a single file should just list the file
> if it exists, otherwise an error message, I think.
>
>
> --
> Thomas Hartman
>
> Darcs hosting: patch-tag.com
> The elegance of haskell, the simplicity of php: happstack.com
>
--
Thomas Hartman
Darcs hosting: patch-tag.com
The elegance of haskell, the simplicity of php: happstack.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20090406/b8188806/attachment.htm>
More information about the darcs-users
mailing list