/srv/irclogs.ubuntu.com/2013/08/30/#bzr.txt

=== jamesh_ is now known as jamesh
mathrickjelmer: poke?13:21
mathrickmathrick@megumi: $ bzr branch git+ssh://git@github.com/mathrick/multiple-cursors.el.git,branch=master13:22
mathrickbzr: ERROR: The repository you are fetching from contains submodules, which are not yet supported.13:22
mathrickbut git doesn't seem to see any submodules anywhere13:22
mathrickoh, okay, so it had submodules earlier13:26
mathrickgit is a complete trainwreck, btw, there's no way known to #git to check that other than grepping the log for .gitmodules13:26
mathrickjelmer: is there a way to promise bzr I won't use submodules, just check it out already?13:53
jelmermathrick: hi14:08
jelmermathrick: you're already using submodules :-)14:08
mathrickhowso?14:09
jelmermathrick: they're in the history - bzr-git requires that it can roundtrip *all* data that is in git into bzr and back out14:09
mathrickjelmer: but isn't "git submodules support" the same as saying "here's a .gitmodule file"? I mean on git's side14:10
jelmermathrick: no, there's more to it than that - the place where the submodule lives has a magic file with special file modes14:10
mathrickthen as long as I'm prepared not to be informed of things (which git submodule already doesn't do anyway), it wouldn't be a lot of a loss14:11
mathrickoh14:11
jelmermathrick: bzr-git supports converting this into a bzr nested tree and back into a git submodule, but bzr itself doesn't support nested trees properly yet14:11
mathrickthat's a shame14:11
mathricknested trees are probably the oldest planned feature that still doesn't work properly14:11
mathrickjelmer: how are they different from bzr join / split anyway?14:12
mathrickI was never entirely clear on that14:12
mathrickoh, right, nested trees stay independent?14:12
quicksilvervila: ping?14:14
jelmermathrick: yeah, they're a different branch/repository14:14
jelmermathrick: a nested tree or submodule is just a reference14:14
jelmerthe terminology Aaron used was that join/split are "by-value nested trees" and that submodules are "by-reference nested trees"14:15
mathrickany idea how far away they are from working properly? I really remember seeing them planned back in 0.5 days14:15
mathrickthat makes sense14:15
jelmermathrick: I don't think they are going to appear anytime soon, considering bzr's current level of activity and the fact nobody is working on them.14:16
vilaquicksilver: pong14:17
mathrickjelmer: oh, sorry, I meant more of "how much work would it require to get them fully working", disregarding the fact nobody's doing it atm14:17
quicksilvervila: dvc-log (C-x V L) always seems to do "bzr log <thisfile>", is there a way do just do a plain "bzr log" ?14:17
quicksilver(also it seems to be slow when lots of changes)14:17
vilaquicksilver: sorry no idea, I never use that. Have you tried from a line without a file ?14:18
jelmermathrick: Quite a lot. I have some thoughts on the best way to approach them, but it's at least a couple of months worth of work.14:18
quicksilvervila: how would you bring up a diff between two versions?14:18
mathrickjelmer: oh, ow14:19
vilaquicksilver: from dvc ? for a given file ? I have a couple of shortcuts defined for 'bzr diff', 'bzr diff -rsubmit:' and 'bzr diff -r $whatever' and that's all I use14:20
vilaquicksilver: in other words http://paste.ubuntu.com/6044322/14:21
mathrickquicksilver: fwiw, I just use the plain old terminal (Guake, so it's easy to access) or if doing more, just open bzr explorer and use that. The graphical tree history and diff viewers are just too valuable to give them up for some rather lame integration with Emacs, really14:22
vilamathrick: I won't call diff-mode (which dvc uses) "lame" ;) That covers 90% of my needs: overiview of current diff, instant access to modified files, reverting any hunk14:23
quicksilvervila: oh, those are useful. I think what I was missing is any way to call bzr-dvc-diff with useful arguments.14:23
quicksilvervila: (I meant, any built-in keybinding to call with useful arguments)14:24
mathrickvila: diff mode is very nice in many cases, but a lot of the time, I prefer the qdiff view14:24
quicksilvermathrick: I prefer diff-mode to qdiff generally14:24
quicksilverbetter integration with the rest of the emacs workflow14:24
vilamathrick: yeah, I can read the qdiff view (and often do so while exploring from qlog)14:24
* vila nods at quicksilver 14:25
quicksilverI occasionally use the qbzr stuff to explore things like who committed certain merge subrevisions14:25
vilamathrick: but otherwise, full agreement with quicksilver14:25
quicksilveroften starting from qblame14:25
mathrickspeaking of integration, I should bind "bzr qdiff" to something and avoid calling it by hand from terminal14:25
quicksilverM-& bzr qdiff14:25
vilasame here, qblame (which is shorter than qpraise and qannotate sadly ;)14:26
mathrickthat's just terminal in disguise14:26
* vila blinks14:26
vilaquicksilver: holy cow, why did I never thought of binding qblame and qlog in the dvc buffer...14:26
vilamathrick: you mean M-x shell ? ;)14:27
vilatruth is shell-mode lacks a lot of terminal goodness, there is a lot to be said about completion for example14:27
vila(yeah I know it's more bash than the terminal itself)14:28
mathrickeither way, now that I've cleaned up my emacs config, I can actually look at binding bzr sensibly into my workflow14:28
vilamathrick: seriously, you managed to really clean it up or was it more like "reasonably clean up" ? ;)14:29
* fullermd . o O ( <--- has an rm if you need to clean emacs up... )14:29
* vila manages to remove stuff at each upgrade but some pieces are there for decades (literally ;)14:29
quicksilvermathrick: it is and it isn't.14:30
mathrickvila: https://github.com/mathrick/emacs-config vs. https://github.com/mathrick/emacs-config/tree/16fe55f48771768ae448b826f1ef3fc99da5841a :)14:30
quicksilvermathrick: it saves you switching window and it has a separate command history.14:30
vilafullermd: vade retro satanas , we all know your number is VIVIVI14:30
mathrickvila: tell me about it, I removed some 15 yo junk from tit14:30
vilamathrick: :-D14:30
mathrickprotip: (setq foo 42) is not the proper way of making function-local variables...14:30
* mathrick smacks younger mathrick up the head14:31
mathrickin my defence, it was my first contact with both emacs and lisp of any sort14:31
mathrickvila: I've been putting off the cleanup itself for years, and I basically reached the point where I couldn't really install a package because there was no way to stuff it into the pile of mess my config was without doing some sort of cleanup, so I did14:32
mathricktechnically I've been "using" grail.el for a few years, but that was really little more than just mv .emacs ~/elisp/user.el plus some load-path magic14:33
vilahehe, that's a good reason ;)14:33
mathrickvila: if you want, take a look at the readme, I've actually documented it and made sure to make it bootstrappable14:33
mathrickI have verified that I can bring up my config on a vanilla emacs with a single command, including emacs23 :)14:33
vilaI haven't installed a emacs package yet14:34
mathrickoh, man, ELPA is glorious, especially if you pair it with Cask/Pallet14:34
mathrickI needed to hack them to stop assuming ~/.emacs.d/, but they work and I have no junk at all in there14:34
mathrickvila: https://github.com/mathrick/emacs-config/blob/master/Cask <-- this is how I store my deps in bzr14:35
vilawow, single command, nice, my setup have been following me from sunos to solaris, osx, freebsd, gentoo, ubuntu, all with minimal tweaks but I also relies on bzr to keep them all under control14:35
mathrickno checking in external libs \o/14:35
vilawow, nice14:36
mathrickvila: yeah, I've done some work on win32, which made the config all that more horrible, and it'd take me a day to get it to work on whatever zany version I managed to get to run14:36
vilaha yeah, win32 too but only slightly14:37
mathrickone problem I haven't solved properly yet is how to track non-ELPA packages14:37
mathrickit will require some legwork to integrate VCS checkouts as much as at all possible with Grail14:37
vilayeah, I don't try, I manage to keep all dependencies optional14:37
mathrick"be as smart as possible but not smarter"14:37
mathrickvila: yeah, that too, will do it simultaneously I guess14:38
vilaI've been using 3 small packages for which I keep the source14:38
mathrickright now I just assume all of ELPA will install14:38
mathrickactual win32 testing presumably will teach me to know better than that :)14:39
mathrickvila: if you want, I can ping you when I'm done with that, I actually plan to make a skeleton branch which is that except with all my config removed and only the support bits left in14:41
vilamathrick: I'd love too, but I keep the little free time I can gather here and there to bzr :-/14:42
mathrickaye14:42
mathrickvila: I decided to do it now, because I've been honestly avoiding doing actual coding work out of fear of dealing with the packages I'd need to install onto my old mess14:43
mathrickand that's just not good14:43
mathrickoh, right, one thing you WANT to check out: http://emacsrocks.com/e13.html https://github.com/magnars/multiple-cursors.el14:44
mathrickit's absolutely fantastic, and managed to supplant CUA-rectangle which I've been madly in love with for years14:44
mathrickquicksilver: ^ you too, if you don't know it yet14:45
mathrickworks best when paired with https://github.com/magnars/expand-region.el14:45
vilamathrick: hmpf, I'm not even sure I will be able to use that O_O granted it looks nice (multiple cursors that is)14:49
mathrickoh, you will14:49
mathrickit's instantly useful everywhere the moment you have it available14:49
vilamathrick: note that I'm still quite new to CUA-rectangle14:49
mathrickvila: think of it as better CUA-rectangle, which is already pretty damn great. All kinds of refactoring is possible, and it serves a fantastic replacement of macros and regexes in many cases14:50
fullermdSheesh.  Why would you want to replace a regex with anything but a more complicated regex?14:51
mathrickvila: for example, https://github.com/magnars/multiple-cursors.el/issues/76#issuecomment-23531660 <-- I wrote it writing all key sequences like [C-u C-x n n]14:54
mathrickthen replacing them with the fantastically readable <kbd>C-u</kbd><kbd>C-x</kbd><kbd>n</kbd><kbd>n</kbd>, then selected all such instances and converted them to14:54
mathricker14:54
mathrickaside from the fact my xchat buffer got messed up14:55
* quicksilver doesn't even use CUA-rectangle14:55
quicksilverI use builtin rectange commands every day though14:55
mathrickquicksilver: MC is that on steroids. You'd use either built-in rectangles or CUA-rectangle, but MC is strictly better than both14:56
mathrickbecause it doesn't require you to have consecutive, aligned lines14:56
quicksilverintersting.14:58
mathrickquicksilver: watch that screencast, it explains perfectly what it's useful for14:58
vilayeah, sounds interesting, I wonder though if that won't make myself a bit lazier for refactorings...14:59
mathrickwell, shows, which is even better14:59
mathrickvila: what do you mean?14:59
quicksilverwhy do the best emacs tips always come as off-topic conversiations in other channels?14:59
mathrickbecause Emacs is too big to be a single topic!14:59
vilaif there are multiple lines where I need to apply the same modifications, shouldn't that be abstracted ?14:59
quicksilvermathrick: the more powerful your editor, the more likely you are to put up with ugly boilerplate / repated code15:00
quicksilverjust look at Java ;)15:00
mathrickserendipity, thy name is Emacs :)15:00
mathrickquicksilver: yeah, I know15:00
mathrickbut it also makes it really easy to refactor things15:00
vilabut the example where he handles the i18n is different, there, it *helps* the refactoring hugely15:00
fullermdWell, because most localities have banned door-to-door emacs proselytization, so the pushers have gone online to tempt children into the ways of sin...15:01
mathrickso "meh, I don't feel like fixing it in 5 places, I will paste it once more" is no longer an excuse15:01
jelmermathrick: I think the simpelst thing to do if you can is to fastexport/fastimport the git repo to remove the submodules, and then redo the bzr-git command.15:01
mathrickjelmer: doesn't really work for pull requests though :\15:01
jelmermathrick: ah, yeah..15:02
mathrickjelmer: oh, speaking of that, how can I replay a fi stream on top of a repo? I have a repo which starts out with a file structure identical to a git repo I want to graft onto, but the history is different and includes other junk. I wanted to filter out all but the files I care about, but replays don't work, they simply replace everything rather than adding to the history15:03
mathrickspecifically, https://github.com/codermattie/Grail and https://github.com/mathrick/emacs-config/tree/16fe55f48771768ae448b826f1ef3fc99da5841a15:04
mathrickmy repo starts with grail files textually identical (they were downloaded as blobs from github), but the history is interleaved with everything that happened to my repo15:04
quicksilvermathrick: OK, I watched the screencast. I do stuff like that all the time but I have to use a cmobination of rectangle commands, align-regexp, and regexp replace. Neat.15:05
mathrickI want to isolate just the things I did with grail*.el and graft that on top of a Grail checkout15:05
mathrickquicksilver: yep, it removes a lot of drudge regexp hackery from my day15:05
mathrickand trying to divine why align-regexp doesn't work and is it still saving time if I debug it?15:06
jelmermathrick: sorry, not sure about that.15:06
mathrickjelmer: hmm, any idea who knows about bzr fast-import?15:18
jelmermathrick: I think Ian and myself are the main people who have worked on it15:23
jelmerI swapped that stuff out a long time ago :)15:23
jelmerperhaps try the list?15:23
mathrickwill do15:24
mathrickthanks15:24
mgrandihey, I was wondering if a plugin existed, to kind of, 'pin' a file. I have a file that is dynamically generated and the contents differ occasionally on a rebuild, and i don't want to commit it each time as its derived from something else, but i don't want to ignore the file either cause then it wont get checked out if someone branches the repo21:07
jelmermgrandi: no, there isn't anything like that. generally what happens is that people check in foo.in, and then have a build script that copies foo.in to foo and makes local modifications to it21:54
jelmer(and then add 'foo' to the ignore list)21:55
spivI suppose locally you could have a pre-commit that drops that file from the list of changes to commit.21:59
spivBut that won't help casual developers avoid committing it unecessarily.22:00
mgrandiyeah22:23
mgrandii might do that, thanks jelmer22:24

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!