[13:58] while looking into RenameMap, I've found a bug - bzr move --auto tries to move parent directory, even though that wasn't actually moved [13:59] pastebin of commands should explain better: [13:59] http://pastebin.com/5aL3Qrnn [14:01] this is present both in trunk and also in 2.5.1 [14:05] no idea if this is intended or not, but I'd like to post a bug on launchpad, if there are no objections [15:03] mnn: I tend to go with a file-first policy, marking a bug as a dupe or invalid later if I learn something else works fine [15:04] I think we may have a bug for this though, search for "inconsistent delta" [15:05] maybe bug 373319? [15:05] Launchpad bug 373319 in Bazaar "mv --auto does not handle directory adds mixed with the contents of a directory splitting in two: InconsistentDelta error" [High,Confirmed] https://launchpad.net/bugs/373319 [15:10] the dirstate code is frustratingly hard to hack on, but people have managed to dive in and fix problems with it in the past [16:12] wgz: well I actually wanted to adjust move --auto to handle moving into new directory, while stumbled upon this [18:29] wgz: I think I have identified the problem [18:29] I need to try the fix and run the tests, if I haven't broken anything in the process [18:56] ok, it seems we have a winner: [18:56] http://pastebin.com/QRfpeZjx [19:21] here's test with reproduction script from 373319 [19:21] http://pastebin.com/tZKzTjrF [19:31] ok, the code doesn't choke on complicated cases... so I guess it's ready: [19:31] http://pastebin.com/0GaUf7UJ [22:11] what is this??? [22:11] 'bzr: ERROR: unknown command ""status""\n' === r0bby is now known as robbyoconnor [22:12] first I did simple self.run_bzr('status') but got exception about result code mismatch - so I tried self.run_bzr('status', 3) and got this nonsense [22:18] mnn: using bzr from outside its normal initialisation, you need a bunch of extra silly steps [22:20] see lp:~gz/+junk/call_bzr_init for an example [22:21] my working directory is actually a branch ... I'm aware that bzr's working directory needs to be in such directory [22:21] I'm writing a test [22:21] okay, then you just want to look at the tests under blackbox for actually running commands [22:22] the base test class doesn't support doing things with bzr commands or things on disk [22:23] I'm modifying TestRenameMap which is a TestCaseWithTransport [22:23] TestAdd is TestCaseWithTransport too [22:23] and it uses self.run_bzr(), obviously [22:24] okay, I need to stop answering your questions before thinking properly :) [22:25] yeah :) because unfortunately they haven't been helpful [22:27] and btw could you take another look at this? [22:27] https://code.launchpad.net/~mnn282/bzr/sftp-unsupported-operation-more-info/+merge/116849 [22:28] yup, I shall, stop being slack and respond to that [22:28] some of my advice from the other day wasn't completely ideal either :) [22:29] yeah... but I was able to work around them :) [22:30] so, for instance, @classmethod would probably be better than staticmethod for the _translate_io_error function, which then takes cls as the first argument and saves importing and upcalling to Transport [22:30] and a few other little niggles, otherwise it's great [22:30] well write all those niggles there, I will take a look at them later... now I want bzr status! :) [22:31] ...not having any ideas on your self.run_bzr("status") problem, looking at bzrlib/tests/blackbox/test_status.py (especially the simpler tests at the bottom)... it should just work [22:31] pastebin me the smallest test you get weirdness with? [22:36] well even such small test gives me save result: [22:36] http://pastebin.com/wddFKXNj [22:36] I definitely must be doing something wrong [22:43] give me a whole test class and method [22:43] wow, this is just weird... suddenly it works :) I've tackled issues with locks and inequality issues [22:44] will push the branch and make merge proposal [22:44] right, that looked like it should be fine given the right test class [22:50] have you discovered the neat way of running just a subset of tests yet? [22:51] do `python bzr selftest -s bt.test_source` for instance [22:52] I use bzr selftest -v source_name (i.e. bzr selftest -v test_rename_map) [22:54] btw. https://bugs.launchpad.net/bzr/+bug/373319 [22:54] wow, it took 3 years to fix a bug from its original discovery... and such high priority bug [22:54] Ubuntu bug 373319 in Bazaar "mv --auto does not handle directory adds mixed with the contents of a directory splitting in two: InconsistentDelta error" [High,Confirmed] [22:54] using -s and the path (bt. short for bzrlib.tests. and bb. being short for bzrlib.tests.blackbox) avoids loading all the other modules so is nice and quick [23:01] yeah.. it is much faster... however it seems to print less information than -v [23:02] wgz: btw. more reviewing :) [23:02] https://code.launchpad.net/~mnn282/bzr/auto-rename-fix/+merge/117203 [23:02] mnn: looks like you could simplify that test a little but doing: [23:03] tree = self.make_branch_and_tree('.') [23:03] rather than 'tree' [23:03] yeah, right [23:03] I'm still new to all this [23:03] the rest is going over my head right now [23:04] no problem... just don't forget about me :) [23:05] and you do want to run `bzr selftest -s bt.test_source` on your branches [23:05] because we have a test that fails if there's not a unix-style newline terminator at the end [23:06] and I think both branches have a file that like that [23:06] shows up in the diff on the mp as: [23:06] \ No newline at end of file [23:06] (picky I know... but it's there) [23:08] good work on both though, even if I nitpick things a fair bit, it's only because the fundamentals are good and you're just not familiar with a few style things [23:08] no problem... that's why I always ask about stuff [23:08] ... and sometimes hitting a wall here :) [23:13] mnn: can you do ? [23:13] there's an online form and the terms a less silly than they used to be [23:14] john.meinel@canonical.com is who you want to cc at the end. [23:15] yeah, I see him on the page: John Arbash Meinel (john.meinel {at} canonical {dot} com) [23:20] it's actually the first license agreement that I'm reading fully... since it's so short :)