Hi,

I thought I had a reasonable mental model for `darcs push', but I just
did

    darcs push --patch '\[\] rename variab' ~/scoza-new,work/

with 

    $ darcs --version
    1.0.4 (unknown)

and was surprised.  (Both repos are reported consistent by `darcs
check --complete'.)

There is exactly one patch that matches the above --patch option, let
us call it P.

    $ darcs cha | fgrep '[] rename variab'
      * [] rename variables in integration of P, mu for clarity

This patch adds a line and performs a few replacements in a single
file.  After some time (the whole interaction took almost 7 minutes
user time), darcs started to present me with a list of 68 patches it
wanted to push along with P.

One of the first of these 68 patches was something simple, viz., the
renaming of the only file that P changes.  AFAIU, this should
definitely not be something that must be pushed, and surely P should
cleanly commute over this renaming.  So I started answering `n' to the
`Shall I push this patch?' questions.  Indeed, none of the other
patches presented to me must enter the other repo.  At the end I got:

    Tue Jun 14 18:18:39 CEST 2005  Albert Reiner
    <[EMAIL PROTECTED]>
      * [soft] [nw]
    Shall I push this patch? (41/68) [ynWvpxqadjk], or ? for help: n
    You don't want to push any patches, and that's fine with me!

Here is where my confusion starts.  My mental model so far was as
follows:

  - from the --patch / --match options, darcs finds the list of
    patches not in the other repo that match the user's criteria;

  - it then constructs the list of all patches that those patches
    depend on, and starts presenting them to the user;

  - if the user rejects pushing one of these patches, at least one of
    the patches that match the --patch/--match options cannot be
    pushed

But this mental model is at odds with that trivial patch darcs
presented to me at the beginning, viz., the one that merely renames
the affected file: rejecting that patch should definitely not prevent
pushing P.

Another indication that my mental model is incorrect is that the `You
don't want to push any patches...' message comes so late: If it were
correct, already the first rejection should make it clear that there
will never be a patch matching the --patch option that can be pushed,
so it should come immediately.

I would be grateful if someone would clarify how things really work.

Regards,

Albert.


_______________________________________________
darcs-users mailing list
[email protected]
http://www.abridgegame.org/mailman/listinfo/darcs-users

Reply via email to