[00:26] <mark06> how can I know if bzr --uncommit has been performed on a branch?
[00:29] <jelmer> mark06: 'bzr log' will tell you
[00:32] <mark06> where exactly? I though log only showed commits, not undone commits...
[00:33] <jelmer> mark06: well, I meant you can see that a particular revision disappears from "bzr log"
[00:33] <jelmer> mark06: there is no real recording anywhere that an uncommit had previously been done
[00:34] <mark06> but the uncommit is still there, so maybe I could grep/find for something in .bzr?
[00:35] <jelmer> mark06: the revision is there in the repo, but the fact that a child revision of the current head is present doesn't necessarily mean that there was an uncommit
[00:36] <mark06> then I need not to rely on that
[00:37] <mark06> maybe something within .bzr\repository?
[00:37] <maxb> Why do you need to know this? (Tell us more about your use case so we can suggest alternatives)
[00:38] <mark06> I just wanna know
[00:38] <jelmer> mark06: uncommit only touches files under .bzr/branch, and it just resets the branch tip - doesn't do anything else
[00:38] <maxb> There is no explicit record that an uncommit has occurred
[00:40] <mark06> maxb: e.g. bzr commit -am > ctrl+v > "secret info about my new cryptographic system inviolable by spies, which was accidentally pasted from text editor"
[00:40] <mark06> maxb: then bzr uncommit won't actually delete such info
[00:41] <mark06> There is no explicit record that an uncommit has occurred -- ok then I need to recognize the uncommit objects by hand...
[00:41] <maxb> No, you need to understand that there is no such thing as an 'uncommit object'
[00:43] <mark06> *-m
[00:43] <mark06> ok, call it whatever you like
[00:43] <mark06> but it's there
[00:43] <maxb> Actually, it's not there
[00:43] <mark06> it is
[00:44] <mark06> branches growing for no reason in the past
[00:44] <mark06> it was the uncommits
[00:44] <mark06> call it whatever you like
[00:44] <mark06> but the info is there somehow, in some form
[00:45] <jelmer> mark06: there is no such thing as a "uncommit object" - uncommit doesn't create objects
[00:46] <mark06> as I said, you may call it whatever you like
[00:46] <jelmer> it seems like you're possibly referring to the objects left behind in the repository after a branch stops referring to it
[00:46] <mark06> name it like you wish
[00:47] <mark06> info is not deleted, completely deleted at least, when we uncommit
[00:47] <jelmer> mark06: sigh, you're being very sloppy with terminology which makes it hard to understand what you're talking about
[00:47] <mark06> yeah if those are the uncommits
[00:48] <jelmer> I don't have the patience for that, sorry
[00:48] <mark06> if there are other ways to leave these objects unreferenced, then I could try to figure out how to differentiate
[00:49] <mark06> if these unreferenced objects should not normally live within a branch, then I may assume they're likely uncommits and it it does not harm to delete these unreferenced objects, then I could just do it
[00:49] <maxb> There's no reasonable algorithmic way to do that
[00:49] <mark06> ok so will it be harmful just deleting all unreferenced objects?
[00:50] <maxb> I'm curious... how do you think you're going to 'delete unreferenced objects' ?
[00:50] <mark06> rm
[00:50] <mark06> or bzr api
[00:50] <mark06> or bzr api hacks
[00:50] <maxb> Nope
[00:50] <mark06> why
[00:51] <maxb> They're not objects in the filesystem, nor are there bzrlib apis for this
[00:51] <mark06> I need to seek for references and find none?
[00:51] <mark06> then bzr api hacks I think
[00:52] <mark06> are these objects somehow tagged as 'unreferenced' or I need to actually seek for references all though the branch to check it's actually unreferenced?
[00:53] <maxb> I don't think you really understand the bzr storage formats enough, they're fairly append-only
[00:54] <maxb> The functional way to get rid of unneeded objects is to branch what you do want into a fresh repository
[00:58] <mark06> that's what I do, but it's boring...
[00:58] <mark06> needs to push and pull with  --remember
[00:59] <mark06> if I could have a program to go through all branches on a directory tree and just remove or at least report them would be nice...
[01:00] <mark06> I could write a similar program for branching like this instead.... but so ugly...
[01:01] <mark06> but that would be much easier at least...
[01:02] <mark06> mv b b.old; bzr branch b.old b; extract parent and push from b.old's branch.conf; then push --remember; pull --remember...
[01:05] <mark06> even more easier than I thought: grep -E "^(parent|push)_location" b.old/.bzr/branch/branch.conf > b/.bzr/branch/branch.conf :)
[01:08] <mark06> thanks anyway maxb, jelmer