I had an interesting discussion with jam regarding warning or error on irc. Unfortunately no conclusion yet :P hi parthm jam: hi, i was thinking some more about the `bzr st` bad ignore pattern i am somewhat divided between warning / error but am leaning towards error. if we have a bad pattern other commands like `add` and `ignored` would fail anyway. i am not sure if there are others. so it may be better to fail quickly and have the user fix it sooner than later. there could also be a case that a user ends up pushing a bad pattern to their server/lp. as .bzrignore is already added. its just a `bzr ci` and `bzr push`. so failing on `st` may be a good idea. parthm: why would add and ignore have to fail? the point is that, especially right now, people may have a bad config having it fall over when it used to work is bad having it fall over *in general* is bad I don't feel super strongly but we've done the 'error early' in the past and generally it has provided worse user experience as a minor misconfiguration in X suddenly blocks Y and Z from working at all jam: `ignore` works, it issues a warning and discards the bad pattern. even if the pattern was already in the file? `ignored` fails as we compile all ignored patterns (99 at a time) into one pattern. so we cant selectively ignore. you certainly *could* jam: yes. if a file has a bad pattern, `ignore` would still work. so it issues a warning about the pattern on the command line. if the tree is processed, then a followup error is shown about the existing bad pattern. parthm: the problem is that if we filter out the bad pattern from the disk content we make it harder to get the right pattern since the old one is gone it may be a fair trade but something to be thought about jam: we don't filter out the bad pattern from the file. filtering is only for the command like. we display an error message for the pattern in file. jam: http://pastebin.com/fMWtEUjc so for compiling, we could certainly attempt the 100-way compile and if it fails rollback jam: i am not sure i understand. are you talking about `ignored`? yes but also statu status add, etc jam: what do you mean by try the compile and rollback? parthm: try to compile all 100, if it fails, compile them individually to find the one that failed jam: thats whats done in the current patch. the current patch allow the operation to happen, if there is an exception, it processes the file to find the bad pattern and displays it along with the error message. so why does ignored *have* to fail? jam: so are you suggesting we retry after filtering out the bad pattern at runtime? That is what I've been suggesting, yes jam: IMO once the user has a bad pattern in the file he would sooner or later end up with a problem so it may be better to just error out pointing to the pattern. i don't think existing installation would have a bad pattern as it would make bzr crash. parthm: the difference is whether someone can still finish what they were trying to do *before* they have to fix everything or if they have to drop their train of thought and go handle this thing jam: i agree with your point on 'train of thought' but the results of a command e.g. `ignored` may not be what the user expects due to the skipped pattern. parthm: that is why we give a big warning jam: i suppose being a ui thing there is no obviously right answer :) jam: i will paste this chat on the merge proposal and probably others can chime in with their views.