Activity log for bug #322767

Date Who What changed Old value New value Message
2009-01-29 15:15:16 Peter Matulis bug added bug
2009-01-29 15:16:22 Peter Matulis bug added subscriber MySQL and Canonical Support/Bazaar
2009-01-29 15:17:38 Peter Matulis description This is a Sun/MySQL - Canonical escalation imported into Launchpad by the Canonical Support Team. Original escalation: 15/12/2008 9:58 AM EST Public bug: https://bugs.launchpad.net/bzr/+bug/308403 === Guilhem Bichot Hello, Out of the 100 MySQL developers who do bzr merges, we see that sometimes some accidentally commit .OTHER/.BASE/.THIS/.moved files to the repository. Most often, *.moved. To excuse them, there are sometimes path conflicts which shouldn't be (ok, let's not get started on this :), so .moved files are common. I imagined that I could just do bzr ignore *.moved then commit that change and push, and it would prevent my colleagues, once they pull my change, to ever commit some *.moved files. But no. After doing the commit above, I can "touch a.moved; bzr add a.moved" and bzr does not complain, I can commit a.moved, it gets in the branch. I can rename a file to b.moved, no complaint either. Whereas if I first add a.moved and then do "bzr ignore '*.moved' then I get a warning: [INS 15:46 /tmp/weirdbug/br3 $] bzr ignore '*.moved' Warning: the following files are version controlled and match your ignore pattern: a.moved Why don't "bzr add" and "bzr mv" just loudly fail if the new file name should be ignored according to ignore rules? === So the immediate answer is that ignore, consistently with cvs and svn, the ignore patterns only determine whether unversioned files are treated as unknown or ignored. The idea is that people may sometimes want to add exceptions, and in any case it may be possible that a previously added file will later match an ignore pattern. It does seem reasonable that we could upgrade the warning given by 'bzr add' to be a failure, at least if there is an option to override it, and add a check for 'bzr mv' against renames to ignored names. I filed <https://bugs.launchpad.net/bzr/+bug/308403> for this. Normally commit will stop with an error if there are any unresolved conflicts in the tree, and this is intended to prevent accidental commits of conflict files. Running 'bzr resolve' should remove the .BASE/.THIS/.OTHER files, and they will not be versioned unless you explicitly add them. *.moved files work a bit differently because they are already added. However, they should be guarded from commit by the conflict list. So I'd be interested to hear if this is not working in some way, or if people are forcing bzr resolve on these files, and then committing. If so, it may be 'bzr resolve' that should give a warning or error. === > "How to avoid that people commit .OTHER/.BASE/.THIS/.moved files? That could be a commit policy implemented via a pre_commit_hook that will abort the commit if any change looks like an unresolved conflict... But since commit already checks that conflicts have been resolved, I'm afraid people will also work around that hook.. > Out of the 100 MySQL developers who do bzr merges, we > see that sometimes some accidentally commit > .OTHER/.BASE/.THIS/.moved files to the > repository. Most often, *.moved. To excuse them, there > are sometimes path conflicts which shouldn't be (ok, > let's not get started on this :) , I really think the root cause is that conflicts could (should ?) be better explained and easier to solve so that people really solve them and don't commit .OTHER/.BASE/.THIS/.moved files. If the people committing these files don't realize that they are making other people life harder, I'm not sure that making *their* life harder is the solution. > so .moved files are common. I imagined that I could > just do bzr ignore *.moved then commit that change and > push, and it would prevent my colleagues, once they > pull my change, to ever commit some *.moved files. But > no. After doing the commit above, I can "touch > a.moved; bzr add a.moved" and bzr does not complain, I > can commit a.moved, it gets in the branch. I can > rename a file to b.moved, no complaint either. > Whereas if I first add a.moved and then do "bzr ignore > '*.moved' then I get a warning: [INS 15:46 > /tmp/weirdbug/br3 $] bzr ignore '*.moved' Warning: the > following files are version controlled and match your > ignore pattern: a.moved > Why don't "bzr add" and "bzr mv" just loudly fail if > the new file name should be ignored according to > ignore rules?" That's by design so that ignore rules can be overridden when needed. === Guilhem Bichot (18/12/2008 9:22 AM) Hello. Thanks for the replies. So what remains mostly is those .moved files; yes it's possible to commit them "by accident"; what happened several times already is that in some bzr criss-cross merges, some non-bzr-expert people get path conflicts which should not be and then just "bzr resolve". In that case, the .moved file stays, and "bzr commit" does not complain. How about making "bzr resolve" fail (always fail, no option) if the .moved file is still present, giving an informative error message? In the case at point, it was not a path conflict, it was "Duplicate paths --------------- Typical message: Conflict adding file FILE. Moved existing file to FILE.moved. Sometimes Bazaar will attempt to create a file using a pathname that has already been used. The existing file will be renamed to "FILE.moved". If you wish, you can rename either one of these files, or combine their contents. When you are satisfied, you can run "bzr resolve FILE" to mark the conflict as resolved. " This is a Sun/MySQL - Canonical escalation imported into Launchpad by the Canonical Support Team (internal case 3580). Original escalation: 15/12/2008 9:58 AM EST Public bug: https://bugs.launchpad.net/bzr/+bug/308403 === Guilhem Bichot Hello, Out of the 100 MySQL developers who do bzr merges, we see that sometimes some accidentally commit .OTHER/.BASE/.THIS/.moved files to the repository. Most often, *.moved. To excuse them, there are sometimes path conflicts which shouldn't be (ok, let's not get started on this :), so .moved files are common. I imagined that I could just do bzr ignore *.moved then commit that change and push, and it would prevent my colleagues, once they pull my change, to ever commit some *.moved files. But no. After doing the commit above, I can "touch a.moved; bzr add a.moved" and bzr does not complain, I can commit a.moved, it gets in the branch. I can rename a file to b.moved, no complaint either. Whereas if I first add a.moved and then do "bzr ignore '*.moved' then I get a warning: [INS 15:46 /tmp/weirdbug/br3 $] bzr ignore '*.moved' Warning: the following files are version controlled and match your ignore pattern: a.moved Why don't "bzr add" and "bzr mv" just loudly fail if the new file name should be ignored according to ignore rules? === So the immediate answer is that ignore, consistently with cvs and svn, the ignore patterns only determine whether unversioned files are treated as unknown or ignored. The idea is that people may sometimes want to add exceptions, and in any case it may be possible that a previously added file will later match an ignore pattern. It does seem reasonable that we could upgrade the warning given by 'bzr add' to be a failure, at least if there is an option to override it, and add a check for 'bzr mv' against renames to ignored names. I filed <https://bugs.launchpad.net/bzr/+bug/308403> for this. Normally commit will stop with an error if there are any unresolved conflicts in the tree, and this is intended to prevent accidental commits of conflict files. Running 'bzr resolve' should remove the .BASE/.THIS/.OTHER files, and they will not be versioned unless you explicitly add them. *.moved files work a bit differently because they are already added. However, they should be guarded from commit by the conflict list. So I'd be interested to hear if this is not working in some way, or if people are forcing bzr resolve on these files, and then committing. If so, it may be 'bzr resolve' that should give a warning or error. === > "How to avoid that people commit .OTHER/.BASE/.THIS/.moved files? That could be a commit policy implemented via a pre_commit_hook that will abort the commit if any change looks like an unresolved conflict... But since commit already checks that conflicts have been resolved, I'm afraid people will also work around that hook.. > Out of the 100 MySQL developers who do bzr merges, we > see that sometimes some accidentally commit > .OTHER/.BASE/.THIS/.moved files to the > repository. Most often, *.moved. To excuse them, there > are sometimes path conflicts which shouldn't be (ok, > let's not get started on this :) , I really think the root cause is that conflicts could (should ?) be better explained and easier to solve so that people really solve them and don't commit .OTHER/.BASE/.THIS/.moved files. If the people committing these files don't realize that they are making other people life harder, I'm not sure that making *their* life harder is the solution. > so .moved files are common. I imagined that I could > just do bzr ignore *.moved then commit that change and > push, and it would prevent my colleagues, once they > pull my change, to ever commit some *.moved files. But > no. After doing the commit above, I can "touch > a.moved; bzr add a.moved" and bzr does not complain, I > can commit a.moved, it gets in the branch. I can > rename a file to b.moved, no complaint either. > Whereas if I first add a.moved and then do "bzr ignore > '*.moved' then I get a warning: [INS 15:46 > /tmp/weirdbug/br3 $] bzr ignore '*.moved' Warning: the > following files are version controlled and match your > ignore pattern: a.moved > Why don't "bzr add" and "bzr mv" just loudly fail if > the new file name should be ignored according to > ignore rules?" That's by design so that ignore rules can be overridden when needed. === Guilhem Bichot (18/12/2008 9:22 AM) Hello. Thanks for the replies. So what remains mostly is those .moved files; yes it's possible to commit them "by accident"; what happened several times already is that in some bzr criss-cross merges, some non-bzr-expert people get path conflicts which should not be and then just "bzr resolve". In that case, the .moved file stays, and "bzr commit" does not complain. How about making "bzr resolve" fail (always fail, no option) if the .moved file is still present, giving an informative error message? In the case at point, it was not a path conflict, it was "Duplicate paths --------------- Typical message: Conflict adding file FILE. Moved existing file to FILE.moved. Sometimes Bazaar will attempt to create a file using a pathname that has already been used. The existing file will be renamed to "FILE.moved". If you wish, you can rename either one of these files, or combine their contents. When you are satisfied, you can run "bzr resolve FILE" to mark the conflict as resolved. "
2009-05-16 16:54:49 Vincent Ladeuil affects bazaar (Ubuntu) bzr (Ubuntu)
2009-06-18 01:31:21 Martin Pool bug task added bzr
2009-06-18 01:31:55 Martin Pool bzr: importance Undecided High
2009-06-18 01:31:55 Martin Pool bzr: status New Confirmed
2009-06-18 01:35:18 Martin Pool tags mysql
2009-06-18 05:58:34 Martin Pool bzr: assignee Martin Pool (mbp)
2009-07-27 12:10:44 Peter Matulis visibility private public
2009-11-24 05:25:15 Martin Pool bzr: assignee Martin Pool (mbp)
2009-12-04 06:24:02 Martin Pool tags mysql conflicts mysql
2010-02-08 17:19:57 Vincent Ladeuil bzr: status Confirmed In Progress
2010-02-08 19:31:03 Rhett Trappman bzr: assignee bzr-qa (bzr-qa)
2010-02-08 19:32:06 Rhett Trappman bzr (Ubuntu): assignee bzr-qa (bzr-qa)
2010-02-08 19:32:57 Rhett Trappman nominated for series bzr/2.0
2010-02-08 19:32:57 Rhett Trappman nominated for series bzr/2.1
2010-02-08 19:32:57 Rhett Trappman nominated for series bzr/trunk
2010-02-08 19:32:57 Rhett Trappman nominated for series bzr/2.2
2010-02-08 20:48:00 Vincent Ladeuil bzr: assignee bzr-qa (bzr-qa) Vincent Ladeuil (vila)
2010-02-08 22:19:28 Robert Collins bzr (Ubuntu): assignee bzr-qa (bzr-qa)
2010-02-11 09:50:37 Vincent Ladeuil bzr: milestone 2.2.0b1
2010-02-11 09:53:25 Launchpad Janitor branch linked lp:~vila/bzr/integration2
2010-02-11 12:51:29 Vincent Ladeuil bzr: status In Progress Fix Released
2010-08-07 08:34:25 Launchpad Janitor branch linked lp:debian/sid/bzr
2010-08-07 23:35:10 Launchpad Janitor bzr (Ubuntu): status New Fix Released
2013-07-01 15:43:26 Curtis Hovey removed subscriber Registry Administrators