On Mon, Sep 29, 2008 at 06:38:00PM +0400, Dmitry Kurochkin wrote:
> Hello.
> 
> Attached is fix for issue1105 and test. I am not very happy with it.
> IMHO code became more complex. Suggestions how to make it better or
> fix the bug another way are welcomed.

Hmmm.  This code doesn't look so bad to me.

The only ugly bit is the passing of all_opts around, but it's hard to
see any fix that would be less than a major module refactor.  For
those who haven't read the patch, the issue is that we would like to
warn users (crash?) if they have a broken ALL default in their
defaults file, but to do that when parsing the defaults, we need to
know what *all* the possible flags are.  This list of flags is a
global constant, but the functions that need it can't import the list
of all commands, since they are in modules that are imported by the
commands themselves, so this would cause a dependency loop.  :(

I think the best solution to this issue would be to refactor
Darcs.Commands, which is to big anyways.  I think that we could
separate the logic to run commands (which includes looking up the
defaults) from the data and helper-function definitions that the
commands themselves need to import.  But this is a job for another day
and/or another person than myself (as are so many jobs!).

I also found one bug, which was in how we combine the global and
per-repository defaults.  I'm sending a separate patch bundle with a
fix for that bug (and a new regression test for the test suite), so I
won't discuss it more here.  That was the only issue I found, so I'm
pushing with my fix, but further review by other developers would be
most welcome!

David
_______________________________________________
darcs-users mailing list
darcs-users@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to