[15:07] <hugh> hi, any bzr gurus out there
[15:08] <dato> hugh: it's better to just ask your question, and wait until somebody who knows is available to answer it
[15:11] <hugh> ok; I temporarily renamed a directory using mv (i.e. not using bzr), and then later I did a commit; bzr decided I intended to remove the dir
[15:11] <hugh> directory
[15:12] <hugh> so, I've tried to use revert to bring the directory back
[15:12] <hugh> but, I get an error message
[15:12] <jml> hello
[15:12] <hugh> bzr: ERROR: Path(s) are not versioned: py/coe/signalprocessing
[15:12] <jml> I've recently been talking to people interested in using bazaar. One question they asked was whether it had a command to totally rebuild the working tree.
[15:13] <jml> something like bzr revert, except that it removes all files not in version control, even ignored ones.
[15:13] <hugh> so, how do I bring back a directory that bzr decide to remove
[15:13] <jml> hugh: bzr revert perhaps?
[15:13] <hugh> two of asking about revert at the same time!
[15:14] <hugh> no, revert didn't work, said: bzr: ERROR: Path(s) are not versioned: py/coe/signalprocessing
[15:14] <jml> hugh: oh, I've just read your full explanation.
[15:15] <jml> hugh: one thing you could try is 'bzr uncommit' (if moving the directory was something you did in the most recent commit)
[15:15] <dato> hugh: do this
[15:15] <dato> hugh: let's say the commit where the directory was accidentally removed was 123
[15:15] <dato> bzr merge -r 123..122 .
[15:16] <jelmer> jml: clean-tree ?
[15:16] <jelmer> that can remove ignored files
[15:16] <hugh> ok data, thank, I thought that might be the recommended route
[15:16] <hugh> I'll give it a try
[15:16] <jml> jelmer: awesome.
[15:16] <dato> hugh: better mv out the directory first
[15:16] <dato> hugh: bzr will restore it
[15:17] <hugh> oh, I have the moved dir, I just want to restore it with its history rather than re-adding it; I'll be careful
[15:19] <jml> jelmer: I guess the exact thing they would want is 'bzr revert && bzr clean-tree --ignored --unknown --detritus
[15:23] <quicksilver> hugh: or, just branch locally
[15:23] <quicksilver> hugh: bzr branch foo foo-clean
[15:24] <quicksilver> hugh: foo-clean will have a rebuilt working tree, with no ignored files etc
[15:24] <hugh> I think you mean jml
[15:26] <jml> quicksilver: oh yeah, good point.
[15:26] <dato> jml: you want "bzr revert; bzr clean-tree"
[15:26] <dato> (clean-tree is provided by bzrtools)
[15:26] <dato> hugh: oh, you could run bzr uncommit indeed, if it was the last revision.
[15:26] <dato> (and it wasn't pushed anywhere)
[15:26] <jml> dato: clean-tree doesn't delete ignored files by default.
[15:26] <quicksilver> hugh: sorry.
[15:27] <quicksilver> jml: I did indeed mean jml :)
[15:27] <dato> jml: well, delete-tree --ignored --unknown ?
[15:28] <jml> dato: :)
[15:30] <mwhudson> hm, bzr branch would be the right answer if tree building was faster
[15:44] <kaaloo> Hi again, I just fixed a small bug in the bzr-email plugin when using smtp.gmail.com.  I published my branch on launchpad.  Is that enough to get my changes reviewed and hopefully going into trunk if there are no issues ?
[15:53] <mwhudson> kaaloo: probably best to mail the bazaar list i'd think
[15:54] <kaaloo> ok thanks, I just sent out an email to Robert, but I'll do so next time
[16:13] <schierbeck> jelmer: ping
[16:14] <jelmer> schierbeck, pong
[16:15] <schierbeck> jelmer: are you acquainted with the ancestry tree drawing code of the viz?
[16:16] <jelmer> schierbeck: no, not at all
[16:16] <schierbeck> darn
[16:17] <schierbeck> i'm investigating whether it's feasible to refresh the graph when new revisions are available, or if i have to redraw the entire widget...
[16:17] <jelmer> garyvdm is the person you'd want to talk to
[16:17] <schierbeck> yeah, but i haven't seen him on the channel recently
[16:18] <schierbeck> refreshing the viz is crucial if we want to pull and push from within the viz
[16:19] <schierbeck> hell, the current compact-view-toggle is just a hack that forces destroys the treeview, then creates a new one
[16:19] <schierbeck> *-forces
[16:20] <jelmer> I think that's acceptable for now
[16:20] <jelmer> even when we start doing push/pull from viz
[16:55] <lifeless> jml: clean-tree can do it, combine the two is straight forward. Or you could write a plugin trivially.
[16:57] <jml> lifeless: thanks.
[17:08] <lifeless> well back to bed for a bit
[17:27] <lifeless> meh
[17:27] <lifeless> I'm awake
[17:29] <lifeless> abentley: ah, the summary is a link, and thats why I didn't notice it as something to copy n paste from
[17:33] <lifeless> jam-laptop: how goes dirstate-merge?
[17:33] <jam-laptop> ok, i was benchmarking your patch after a merge of dev showed me just how slow things had gotten
[17:34] <lifeless> :)
[17:34] <lifeless> the feedback that its radically faster for you is interesting
[17:34] <lifeless> how many packs do you have?
[17:35] <jam-laptop> 11
[17:35] <lifeless> cool
[17:35] <jam-laptop> sorry, 13 after testing
[18:21] <ubotu> New bug: #162702 in bzr-email "Does not use bzrlib.smtp_connection" [Undecided,New] https://launchpad.net/bugs/162702
[18:35] <ubotu> New bug: #162707 in bzr "bzrsvn: permission denied on win32" [Undecided,New] https://launchpad.net/bugs/162707
[18:37] <lifeless> jam-laptop: ping; can we have a short skype chat ?
[18:37] <jam-laptop> lifeless: how about after 30 minutes?
[18:37] <lifeless> I'm spinning on reconcile designs
[18:37] <jam-laptop> k
[18:37] <lifeless> so essentially blocked until I validate an approach
[18:38] <lifeless> 30 minutes is fine; earlier is better. (But I do mean short)
[18:38] <jam-laptop> I'll ping you as soon as I'm ready
[18:39] <lifeless> thanks!
[18:41] <jam-laptop> by the way, the discard_merge_parents is causing the 'b' directory to disappear
[18:41] <jam-laptop> I'm not sure why yet
[18:41] <jam-laptop> it is claimed to be present in this
[18:41] <lifeless> ohkies
[18:41] <lifeless> the b array, or the entry for b in the root array ?
[18:41] <jam-laptop> the entry for b in the root array
[18:41] <lifeless> blech
[18:41] <jam-laptop> before: p [[(z[1][0][0],z[0][:2]) for z in a[1]] for a in self._dirblocks]
[18:41] <jam-laptop> [[('d', ('', ''))], [('a', ('', 'a')), ('d', ('', 'b')), ('a', ('', 'rootfile'))], [('r', ('a', 'b'))], [('f', ('b', 'b'))]]
[18:42] <jam-laptop> after: p [[(z[1][0][0],z[0][:2]) for z in a[1]] for a in self._dirblocks]
[18:42] <jam-laptop> [[('d', ('', ''))], [], [], [('f', ('b', 'b'))]]
[18:42] <lifeless> 'I shall not write untested helper functions' * 500
[18:42] <jam-laptop> It is a bit hard to parse
[18:42] <jam-laptop> but that is the status in this tree
[18:42] <jam-laptop> followed by the path
[18:42] <jam-laptop> for each directory block
[18:43] <jam-laptop> and you can see that the root dirblock still exists, as does the 'a' and 'b' dirblocks
[18:43] <jam-laptop> but the root dirblock is now empty
[19:04] <jam-laptop> lifeless: I'm logging into skype now
[20:03] <lifeless> jam-laptop: thanks!
[20:03] <jam-laptop> now we just need to figure out why you woke up at 3am :)
[20:04] <jam-laptop> if it was an issue of you already being awake, I think most of us would understand, but just waking up....?
[20:05] <lifeless> jam-laptop: 4am today :)
[20:05] <lifeless> jetlag
[20:05] <lifeless> veryt tired at 9pm
[20:05] <lifeless> so went to sleep
[20:05] <lifeless> 7 hours later
[20:05] <lifeless> tada I'm awake :)
[20:06] <jam-laptop> I forgot about the daylight savings time switchover
[20:08] <jam-laptop> lifeless: found it... man is it weird
[20:09] <jam-laptop> you have a call for
[20:09] <jam-laptop>                 for pos, entry in enumerate(block[1]):
[20:09] <jam-laptop> ...
[20:09] <jam-laptop>                     if len(deleted_positions) == len(block):
[20:09] <jam-laptop>                         del block[1][:]
[20:09] <jam-laptop> do you see the bug?
[20:09] <jam-laptop> (len(deleted_positions) == len(block[1]))
[20:12] <lifeless> fark
[20:12] <lifeless> great catch
[20:12] <jam-laptop> so, what is a good way to test that
[20:12] <lifeless> dirstate specific test I think
[20:12] <lifeless> setup a failure and call discard directly
[20:12] <jam-laptop> yeah, that is what I was thinking
[20:13] <jam-laptop> maybe have a few permutations of tests for _discard_merge_parents
[20:13] <lifeless> 05:42 < lifeless> 'I shall not write untested helper functions' * 500
[20:13] <jam-laptop> lifeless: speaking of which ['I shall not write untested helper functions'] * 500 is probably better
[20:13] <jam-laptop> or at least put a '\n' at the end
[20:13] <lifeless> rofl
[20:28] <geekfish> hello everyone
[20:29] <geekfish> I was wondering if there is anyone here who can help me with something
[20:30] <lifeless> try asking the question :)
[20:31] <geekfish> I need version control for a project of mine, I'm working together with another person. We were searching for possible solutions and I found the "partner" workflow.
[20:31] <geekfish> I just can't figure out how one can practicaly make this work :/
[20:32] <lifeless> well, what have you tried so far?
[20:32] <geekfish> well, I haven't tried anything specific, I'm a little lost
[20:32] <geekfish> sorry if this sounds too general
[20:32] <geekfish> (and if my english isn't totaly correct)
[20:32] <lifeless> got a url to whats confusing you?
[20:33] <lifeless> your english is better than my french
[20:33] <jam-laptop> I'm pretty sure he is talking about http://bazaar-vcs.org/Workflows
[20:34] <jam-laptop> Probably explicitly: http://bazaar-vcs.org/Workflows#head-55f80fdd1cfe8503703241ae491839c943327000
[20:34] <geekfish> hm, yes, that's where I found it
[20:34] <lifeless> wow thats a confusing document
[20:35] <lifeless> I mean, I know this stuff but the pictures are hard to interpret
[20:35] <geekfish> my problem is that I don't understand the way you can synchronize
[20:36] <lifeless> we should like to the tutorials, or have more detail there.
[20:36] <jam-laptop> time to reboot... :( bbiab
[20:36] <lifeless> geekfish: bzr push to publish your work somewhere your other person can access, and they use bzr merge URL + bzr commit, to sync
[20:37] <lifeless> time for some food, I'll be back in about 15; try reading the tutorials they will give you details on using bzr
[20:37] <lifeless> the workflow is about organisation not specific commands
[20:37] <geekfish> hm, yes, I understand
[20:38] <geekfish> I suppose I'll have to search most of it by myself
[20:38] <geekfish> thanks :)
[20:42] <igc> morning all
[20:43] <lifeless> hi
[21:10] <lifeless> igc: so I'm going to nag you about doing some code too
[21:11] <igc> lifeless: I'm working on bug 6700 right now
[21:11] <ubotu> Launchpad bug 6700 in bzr "bzr diff -r 10..20 http://foo" unsupported" [High,Confirmed] https://launchpad.net/bugs/6700
[21:11] <igc> hope to have a patch out today
[21:11] <lifeless> igc: woot!
[21:11] <lifeless> if you want to chat about it, I'd be delighted to
[21:12] <igc> thanks - I'm right so far. Made lots of progress yesterday
[21:33] <wam> Hi, I couldn't find the cvs-like workflow explained in commands. Is bzr commit; bzr push - and on the other end bzr pull the equivalent to cvs commit, cvs update?
[21:34] <lifeless> wam: if you want cvs workflow, just use the commands cvs has -
[21:34] <lifeless> checkout; commit
[21:34] <wam> lifeless: ah - the commands are on the arrows ;) Ok - understood now. Thanks ;)
[21:37] <wam> I'm using it for a year now and meanwhile it's the only vcs I'm using. I even could encourage other peope to move to bzr. Right now I'm having to use other workflows due to customer's wishes. Thanks for that great software ;)
[21:43] <wam> With which software did you create the graphics? Which iconsets are these? http://bazaar-vcs.org/Workflows
[21:45] <lifeless> probably inkscape and tango
[21:53] <lifeless> jam-laptop: I think with a little horizontal extraction we could have just one lru class and two helpers
[21:53] <lifeless> with less duplication
[21:53] <jam-laptop> probably
[21:53] <lifeless> jam-laptop: anyhow, I've put it up, same fileids.
[21:53] <lifeless> it looked good enough to merge to me
[21:53] <jam-laptop> I was trying to make the check fairly fast
[21:53] <lifeless> so if you want to +1 I'll push it in.
[21:56] <flacoste> hello, anyone can tell me how to resurrect a directory?
[21:56] <flacoste> several revisions ago, I incorrectly removed a directory while doing a merge
[21:57] <flacoste> so uncommit is impractical here
[21:57] <flacoste> i want to say "please add back that directory as if I had never touched it"
[21:57] <jam-laptop> flacoste: bzr revert
[21:57] <flacoste> jam-laptop: i thought that revert only removed changed in the working dir
[21:58] <jam-laptop> flacoste: 'bzr revert -r -10 directory'
[21:58] <flacoste> hmm, the help says Revert files to a previous revision.
[21:58] <jam-laptop> should do what you want
[21:58] <flacoste> right, thanks a lot!
[21:58] <jam-laptop> for whatever -r before you removed it
[21:58] <flacoste> any quick thought on how I could find that out?
[21:59]  * igc food
[22:00] <flacoste> bzr log <path-to-removed-directory> tells me that the Path does not have any revision history
[22:03] <lifeless> hgrep would help :)
[22:03] <lifeless> flacoste: bzr log -v | less
[22:03] <lifeless> flacoste: look for the path you want
[22:03] <lifeless> flacoste: or use bzr ls -r path and do bisection
[22:06] <flacoste> lifeless: thanks bzr log -v worked
[22:41] <abentley> quicksilver: Cart actually uses loggerhead as its source viewing library.  It's coming along quite nicely, I think.  Once I'm done with schema changes, I plan to release it.
[22:48] <lifeless> abentley: it's still taking most of your hacking time ?
[23:00] <abentley> lifeless: No, sadly.  I don't seem to get as much hacking time as I used to.
[23:09] <abentley> What's the current schedule for the next version?  I'm trying to decide whether it's worth trying to implement rich-root, no-subtree formats.
[23:10] <lifeless> poolie knows more than I
[23:11] <lifeless> I think though that as its 1.0 its better not to rush through to such a thing; 1.0 should be a matter of polish not of changing default formats
[23:12] <abentley> If I did it, it would be non-default, but at least the knit version would not be flagged experimental.
[23:12] <lifeless> I'd really like to get the patch from LarstiQ
[23:13] <lifeless> LarstiQ: btw, where is your branch; I don't care if its not finished at the moment noone else can collaborate on it
[23:13] <lifeless> AIUI subtrees are usable with that patch.
[23:13] <abentley> lifeless: Well, the last time I put it up for review, no one did.
[23:13] <abentley> And it's quite a lot more involved than introducing a new format.
[23:13] <lifeless> abentley: yah, it was a bad time
[23:13] <lifeless> at least for me I was under a tad of pressure
[23:14] <abentley> The point being that, although it would be awesome to get it merged, it's a lot more work to get ready and to get merged.
[23:15] <abentley> And pragmatically, we can't afford to keep making svn converts use an experimental format.
[23:19] <lifeless> I worry that we will have holes in our rich root no-subtrees stuff, because we only really test all or nothings
[23:24] <abentley> Well, that's reasonable.  Obviously, I'll add it to the repository_implementation and interrepository_implementation tests.  Any suggestions what else I should do?
[23:26] <fullermd> I thought there was some discussion a while back about making subtree capability a branch flag or something, rather than a repo format.
[23:29] <abentley> fullermd: Yeah, and the outcome was that we should make it be determined by the working tree.  I said I'd do that.  I didn't.  I'd rather mess with repo formats than dirstate.
[23:30] <fullermd> Sounds like a good choice to me.  Dirstate likes jumping out at me and going "boogieboogieboogie", and I'm not even poking at its innards with a knife.
[23:40] <lifeless> abentley: I don't see that you'd have to touch dirstate
[23:40] <tanderson> Does bazaar support any type of virtual accounts for authenticating users that are doing commits or must they be system accounts? (I'm a subversion user, but the bazaar project looks really interesting to me so I'm doing some research to see what I would do to convert my svn repos)
[23:46] <abentley> tanderson: Bazaar supports any authentication system that you can set up with ssh, ftp or (with a plugin) WebDAV.
[23:48] <abentley> Certainly there are ftp and WebDAV servers that allow you to set up authentication that's not based on system accounts, and I believe there are SSH/SFTP servers that do the same.
[23:50] <tanderson> abentley: That is great.  I know that I can do virtual accounts with my FTP server but I've never looked into doing this with ssh/sftp