/srv/irclogs.ubuntu.com/2015/05/09/#bzr.txt

GyrosGeierhi21:40
GyrosGeierI have an automated build in Jenkins that requires a branch to be merged to succeed21:40
GyrosGeierin that branch are two new files21:40
GyrosGeierwhen the next build starts, bzr pull --overwrite is run21:41
GyrosGeierwhich rolls back all the changes, but leaves the files21:41
GyrosGeierwhich leads to a conflict when redoing the merge21:41
GyrosGeieris there a better way to do this?21:41
GyrosGeierhttp://ci.kicad-pcb.org/job/kicad-windows-msvc/cpu=x86,label=windows/lastBuild/console  is the build log21:42
fullermdAre you committing the merge, or just running on the dirty WT?21:43
GyrosGeierjust the dirty tree21:44
fullermdYou probably want to run a 'revert' at the end (or before the pull at the start of the next one).21:44
GyrosGeierI can easily create a commit from that, but the build process looks at the bzr id and creates a version string from that21:44
GyrosGeierah21:44
GyrosGeierso revert before pull should work?21:45
fullermdOr commit the merge (pull --overwrite will remove the files, as they're no longer versioned in the new target), but that's probably just an extra dance for no reason.21:45
fullermdYeah.  pull --overwrite _does_ discard WT changes, but it isn't going to delete a file the pre-pull HEAD didn't know anything about.21:45
fullermdBut revert knows the file was created by the merge, so it'll remove it.21:45
GyrosGeierah21:46
GyrosGeierright now I do pull, then revert21:46
* GyrosGeier checks if Jenkins can be taught to revert first21:46
fullermdThere's also a clean-tree command that deletes unknown files; that might be something to look at too.21:46
GyrosGeierah21:46
GyrosGeierbefore the merge21:47
GyrosGeierthat is a good idea in any case, because I copy in lots of stuff from other builds21:47
fullermdA hardcore option would be something like "bzr remove-tree ; rm -rf * (and maybe .something depending on your tree) ; bzr co ." to completely wipe the slate, but that's pretty drastic and dangerous; one little slip, and...21:48
GyrosGeierwell, the box is a VM with no persistent state21:48
GyrosGeierinteresting21:49
fullermdWell, you could blow things completely away and do a fresh 'branch' on each run.  That would be the cleanest.21:49
GyrosGeiernow the extra files are listed with "-D" instead of "- " in the pull output21:49
fullermdDepending on where the source branches are network-wise, that may be Obviously Right, or expensive enough to be questionable.21:49
GyrosGeierthe source is on lp, and takes a few minutes to copy21:50
GyrosGeierI'd rather avoid that21:50
fullermdBut you could 2-step it with a local cache that you just use as a branch 'pull' source, and then branch from that to a temp loc to do your tests.21:50
GyrosGeierhttp://ci.kicad-pcb.org/job/kicad-windows-msvc/cpu=x86,label=windows/55/console21:50
GyrosGeierdoes that look good?21:50
GyrosGeierwell, that would require Jenkins to maintain a local cache21:50
GyrosGeierit starts every job on the first free machine it finds21:51
GyrosGeierand might run two jobs in parallel on the same machine21:51
GyrosGeierthat is a synchronisation nightmare21:51
GyrosGeierbtw21:51
GyrosGeiersince I'm here anyway21:52
GyrosGeieris there a good way to maintain a stack of patches on top of another branch?21:52
GyrosGeierand forcibly push the new branch state to LP21:52
GyrosGeieruse case is that I maintain a branch containing the necessary patches to make the program build under Windows, and quite often parts of my patches are accepted and sometimes reformatted21:53
fullermdMmm.  You probably do want to try and push the revert to before the pull.  In that case it seems to work right since the pull found nothing to do, but if it did, it woulda thrown away the WT state, so wouldn't know to delete files from a previously pending merge.21:53
GyrosGeierhmm21:54
fullermdOr do the clean-tree afterward.21:54
GyrosGeierthat's the Jenkins bzr plugin doing that21:54
GyrosGeierthe only thing I do manually is the merge21:54
GyrosGeierso I can place the clean-tree right before that21:54
fullermdThere was once a 'pipeline' (I think that's what it was called) extension, that did sorta a stack of branches on top of an existing one.21:55
fullermdSorta a branch-queue instead of a patch-queue.21:55
fullermdBut I suspect it'd old enough to not work with current bzr.21:55
GyrosGeierhm21:55
GyrosGeieris there a better workflow for what I need?21:55
GyrosGeier(provide something that is mergeable to the autobuilder, and change that regularly when the base tree changes)21:56
GyrosGeierin a git workflow I'd rebase my branch, and force-push it21:56
fullermd"loom" was another one, that implemented a patch queue.21:57
fullermdThere is a 'rebase' plugin.  I understand it's not _quite_ the same as git's rebase, but it may be close enough.21:57
GyrosGeierso far, I've been going to the LP website, deleted the branch, then recreated it using bzr, pulled that into git, rebased my changes on top, and pushed the changes from git via the bzr plugin21:58
GyrosGeierbut that is really cumbersome21:58
GyrosGeierLP uses something internal to determine whether two commits are the same21:59
fullermdOh, it'll use the commit-id.22:00
fullermdBut you can push --overwrite if necessary.22:01
GyrosGeierah okay22:01
GyrosGeierI got an exception once when I tried that22:01
fullermdThere's a branch config option that can rejected it.  I don't think it should be set unless you set it, but if you can write the branch, you can unset it.22:03
fullermd"can rejected it"?  What the heck?  I haven't had THAT much fun today...22:04
* GyrosGeier is already on his second beer22:12
fullermdI've still got another hour or two of putzing with systems planned before getting there.22:17
GyrosGeieryou should get a continuous integration system22:19
GyrosGeierwhen I want to stop working I start a matrix build of all configurations on all platforms22:20
GyrosGeierand wait for it to finish22:20
fullermdThe pump broke.  Made a huge mess.22:20
GyrosGeierah22:21
GyrosGeierso actual good reason22:21
fullermdNo, I meant the "continuous integration" system for the beer  ;>22:26
GyrosGeierah22:26
GyrosGeierthe party at the upstairs neighbours' is getting out of hand22:27
GyrosGeierI should get a beer and go there22:27
fullermdThat sounds like it would increase the outofhandedness.22:27
GyrosGeieryes22:28

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