Bruce Stephens wrote:
Peter Simons <simons@xxxxxxx> writes:
[...]
So I was wondering: Is it very difficult to implement these things
[deleting branches, etc.]? I honestly don't know, so I ask ... but
if it is not, I would recommend doing it _soon_, because I think
these options would really lift the usability of the tool to a new
level.
I don't think it's technically hard. There's a basic policy problem,
in that configuration management systems tend to be built to avoid
losing data.
It's not hard code wise but the fact that things are distributed poses a bit of a problem.
Deleted branches may reappear after syncing with someone who has not (yet?) deleted the
branch.
Removing the concept of a collection (as graydon has mused previously) and using branch
names (and globs) directly in netsync might help in terms of serving and syncing specific
branches.
However, I agree with you that something's needed. Perhaps a lua hook
that's called when listing branches and similar operations, that can
hide some branches? Probably augmented by a -all flag to "list
I think the idea of a lua hook like ignore_branch(name) might be a good idea. Although the
exact implications of what this might do could be complicated. If all it does is hide them
from list branches then it's about a 10 minute job. But branches are used in lots of
places and whether such a hook should be consulted in varoius other instances would take
some thinking. I suppose once the hook exists it could be applied to other cases as they
arise.
Some netsync friendly way to rename a branch might also be good, but this does need to
work in a way that your branches get renamed after syncing with me. A table of branch
names and associated sha1 id's that are used in branch certs would work but starts to feel
like branch names are being versioned.
branches" so that you can see them when you really want to, or maybe
"list all branches" or something.
Perhaps "monotone -norc ls branches" to avoid the ignore_branch hook?
The ignore hook was so easy I went ahead and wrote it. You can get it via netsync from
www.echologic.com. Copy the ignore_file hook, rename it to ignore_branch and have fun.
Right away I wonder if netsync should consult this hook... ;)
--
Cheers,
Derek
|