=== _thumper_ is now known as thumper [11:13] hi, I just got a scary traceback from bzr when trying to shelve some changes. First attempt was a selective shelve, but can reproduce it with a blanket shelve: [11:13] http://paste.ubuntu.com/9745307/ [11:14] can anyone offer some insight/help? [11:15] (I have previously bzr shelve'd just fine on this branch) [11:15] Seems like I've heard of such things when there are directories being shelved... [11:16] Maybe I'm thinking of something else. [11:16] hmm, that would make sense, I did attempt to do that [11:17] Mmm. In a simple test here, the problem I'm thinking of is actually blowup on unshelve, not shelve. [11:18] What's stat say before you try that? [11:21] http://paste.ubuntu.com/9745431/ [11:21] (names changed to protect the innocent) [11:21] patch_302 is the directory that I attempted to shelve (along with the files therein, and other related changes in other files) [11:24] Mmm. Does it fail if you try shelving only the patch_302? [11:27] fullermd: it does, with a slightly different error: http://paste.ubuntu.com/9745514/ [11:28] * sparkiegeek tries shelving just the files in the directory [11:29] eek [11:29] so I tried the shelve, just selecting the files, then rm'd and bzr rm'd the directory. THen tried to unshelve [11:29] http://paste.ubuntu.com/9745550/ [11:30] OK, yeah, well that first at least is expected; you're trying to shelve the dir, but not the files in it. It should fail with a better message, but at least failure is expected. [11:30] The second, also, trying to unshelve files into a dir it no longer knows about, bad juju. [11:31] All seem not really related to your initial... [11:32] so if I were to "unwind" my actions properly by doing something like: bzr shelve $FILES; bzr rm $DIR; rm -f $DIR; ; mkdir $DIR; bzr add $DIR; bzr unshelve [11:32] would you expect that to work? [11:33] I'd tend to think not, since that second add would be a different dir from bzr's perspective (independent add == different file-id)... [11:33] ok [11:35] I can't reproduce your initial. I note that it sorts differently than those names actually do, so your real file/dir names are in a different order than those standins. [11:35] Which could be significant; there have been occasional ordering-dependant issues in these sort of things. [11:38] oh, I was just bad at censoring and retaining information [11:38] the stat output is ordered as I expect (alphabetically, within the added: and modified: groups) [11:39] * fullermd nods. [11:39] Which suggests it could be something ordering dependant. [11:39] (which I don't reproduce here, since I get ordering consistent with those censored names) [11:40] Try putting together a simple test case with standin files, ordered as yours are; if we can reproduce it easily, it's probably fixable. [11:42] ok, will try to do so [11:42] I can't do any more experimenting with it right now, sorry. I need to get to sleep, the sun's about to come up 8-} [11:42] :) [11:42] fullermd: thanks for your help [22:01] hi all, I need your support on this https://lists.archlinux.org/pipermail/pacman-dev/2015-January/019798.html [22:02] tldr: no artificial check is needed to know that branch x is not a clone of y, because when we bzr pull from y into x, it would fail _anyway_, is this true? [22:05] If x is not a strict subset of y, then "cd x ; bzr pull y" will fail without changing anything, yes. [22:05] I'm not sure whether "clone" is important to the case; clone is more a mechanism of "how we got x", whereas pull will succeed fail based on "what x currently has". [22:07] It wouldn't help in the case that you really want to check "y is where x came from". [22:07] So if you're trying to guard against the case "x is really supposed to be tracking z, but currently is coincidentally a subset of y, but we really don't want to pull y over it", just doing a pull will put you in a bind. [22:20] not sure if I understand you but "is a clone" means it's "the same" repository, but missing updates, then we update with bzr pull [22:21] here is the origin of the problem https://projects.archlinux.org/pacman.git/commit/?id=c926c39 [22:21] then later bzr support was added by simply copying that kind of code [22:24] how about the following problem: we branch A from web into local dir B, we later want to update B from A but for some reason bzr pull will fetch from X instead of B [22:25] it happens to be that X is a fork of A and contains all commits of B [22:25] result: bzr pull will succeed, but we wanted to pull from A not X, how to fix this? [22:26] they intend to fix this with artificial, buggy checks to know whether "B is a branch of X/A" [23:46] I don't see how you can, programmatically. That's a social question, and it's all kinds of fuzzy. [23:47] Comparing URL's gets you somewhere. Normalizing and comparing gets you further. [23:47] But there can totally be multiple paths that wind up the same place. The server can have multiple names. There can be http vs bzr+ssh vs sftp access. There can be multiple socially-identical mirrors in play. And on and on... [23:48] Comparing normalized URL's would catch a lot of the simple cases, and maybe that's good enough for the use-case in question. But it's always gonna just be a guess.