darcs

Issue 1403 document surprising gotchas from pull --match and dependencies

Title document surprising gotchas from pull --match and dependencies
Priority feature Status given-up
Milestone Resolved in
Superseder Nosy List darcs-devel, dmitry.kurochkin, galbolle, gwern, kowey, thorkilnaur, twb
Assigned To twb
Topics Documentation

Created on 2009-03-23.02:33:36 by gwern, last changed 2017-07-30.23:45:02 by gh.

Messages
msg7495 (view) Author: gwern Date: 2009-03-23.02:33:33
[10:29 PM] 42.3Mb$ darcs --version
2.2.0 (release)

Suppose one makes a fresh repo, and tries to pull from xmonad. One's command is
'darcs pull ~/bin/xmonad --match 'not touch TODO' --dry-run|less'. In theory,
this should exclude any patch that modifies the xmonad TODO file. The syntax is
proper, all is in accordance with the manual, and 'touch TODO' will in fact pull
a (large) subset of the xmonad patches. If we actually run the command, we
quickly see that many todo-related patches are being pulled; eg:
Wed Mar  7 01:42:14 EST 2007  Spencer Janssen <sjanssen@cse.unl.edu>
  * Add TODO

Suppose we actually do this pull, and then we do a simple pull. Perhaps we
really did pull a subset of patches. But no:

10:31 PM] 0Mb$ darcs pull ~/bin/xmonad
Pulling from "/home/gwern/bin/xmonad"...
No remote changes to pull in!

By tossing in a not, apparently that's the same thing as no --match at all.
Since one would expect 'not touch file' to exclude all patches
adding/modifying/deleting a file (like a large binary...), this seems to me a bug.
msg7497 (view) Author: kowey Date: 2009-03-23.08:57:25
On Mon, Mar 23, 2009 at 02:33:36 -0000, gwern wrote:
> Suppose one makes a fresh repo, and tries to pull from xmonad. One's command is
> 'darcs pull ~/bin/xmonad --match 'not touch TODO' --dry-run|less'. In theory,
> this should exclude any patch that modifies the xmonad TODO file. The syntax is
> proper, all is in accordance with the manual, and 'touch TODO' will in fact pull
> a (large) subset of the xmonad patches. If we actually run the command, we
> quickly see that many todo-related patches are being pulled; eg:

I'm somewhat confused by this.
Maybe you could submit a test case to bugs/ ?
msg7500 (view) Author: galbolle Date: 2009-03-23.12:58:09
What happens is that all patches in xmonad are depended upon by some patch not
touching TODO (presumably tags). pull gets all patches not touching TODO, and
all of their dependencies, whether or not these depenedencies touch TODO. You
want to use either --no-deps or --dont-prompt-for-dependencies. If you touch
toto and record that (thus no patches depend on it), then your new patch does
not get pulled.
msg7501 (view) Author: kowey Date: 2009-03-23.13:09:00
Oh.  And this is not the first time this has come up either.

It might make sense to update the FAQ with a troubleshooting entry like "I think
--match is broken!"

http://wiki.darcs.net/index.html/FrequentlyAskedQuestions
msg10491 (view) Author: kowey Date: 2010-03-24.17:31:05
In case this is useful as a start, I've added this entry to the FAQ:
http://wiki.darcs.net/FAQ#darcs-offers-me-unexpected-match-results
History
Date User Action Args
2009-03-23 02:33:36gwerncreate
2009-03-23 08:57:28koweysetstatus: unread -> unknown
nosy: + darcs-devel
messages: + msg7497
2009-03-23 12:58:11galbollesetpriority: not-our-bug
status: unknown -> resolved
messages: + msg7500
nosy: + galbolle
2009-03-23 13:09:05koweysettopic: + FauxBug
nosy: kowey, darcs-devel, simon, thorkilnaur, gwern, dmitry.kurochkin, galbolle
status: resolved -> unknown
messages: + msg7501
2009-08-12 15:18:06koweysetpriority: not-our-bug -> feature
status: unknown -> needs-implementation
topic: + Documentation, - FauxBug
nosy: kowey, darcs-devel, simon, thorkilnaur, gwern, dmitry.kurochkin, galbolle
title: --match's not is buggy -> document surprising gotchas from pull --match and dependencies
2009-08-15 10:03:13twbsetassignedto: twb
nosy: + twb
2009-08-25 17:42:30adminsetnosy: - simon
2009-08-27 14:24:33adminsetnosy: kowey, darcs-devel, twb, thorkilnaur, gwern, dmitry.kurochkin, galbolle
2010-03-24 17:31:07koweysetmessages: + msg10491
2017-07-30 23:45:02ghsetstatus: needs-implementation -> given-up