[darcs-users] How do I make "unexportable" patches?

Nimrod A. Abing nimrod.abing at gmail.com
Mon Jul 25 19:59:57 UTC 2005


Hello everyone,

I searched through the docs but I could not find the answer to this
question. Say I have three projects A, B, C. B and C are forks of
project A. Say I make several modifications to A each conveniently
committed as a separate patch. I want to pull _some_ of those patches
from A into B and C but some of the patches apply exclusively to A
(i.e. some files present in A are removed in B or C or those patches
really do not belong in B or C). Days/weeks pass and more
modifications are made to A, which will subsequently be pulled into B
and C. Problem now is that patches which I cherry picked when I pulled
the last time are again displayed or prompted for. Rinse and repeat
and eventually it gets annoying.

Is there some way that I could have "marked" those rejected patches as
"unexportable" so that subsequent pulls would no longer prompt me if I
want to apply those patches? Is this feature implemented? If not then
I suggest these new features:

First one is a new option to darcs pull prompt. Example prompt:

Shall I pull this patch? (1/18) [yniWvpxqadjk], or ? for help:
How to use pull...
y: pull this patch
n: don't pull it
i: ignore this patch in future pulls <---- new option
w: wait and decide later, defaulting to no

v: view this patch in full
p: view this patch in full with pager
x: view a summary of this patch

d: pull selected patches
a: pull all the remaining patches
q: cancel pull

j: skip to next patch
k: back up to previous patch
h or ?: show this help

<Space>: accept the current default (which is capitalized)

Once you mark the patch as ignored, it will no longer be prompted to
you the next time you pull from the same repository. You can also
supply an option --show-ignored-patches to the pull command if you
want to be prompted again. The ignored patches could be tracked in
_darcs/patches/ignored

Second one is a "ignored-patches" command or somesuch. Options could be:

--list (default) shows a list of ignored patches sorted by repository.
--remove=<patch-name> removes a patch from the ignore list.

and all the usual common options.

I think this will be very useful in situations where you need to fork
your codebase (which I do a lot) but still want to be able to pull
from the source of the forks.

Kind regards.
-- 
_nimrod_a_abing_

v1sw5CPJYUhw5ln3pr8OUSck6ma8u7LBw3DWNTm5g/l7DaIs7Rr4e6t5Xb4Op1en3g5RZAHC




More information about the darcs-users mailing list