plugin not working on lightweight checkouts

Chris Hecker checker at
Sat Nov 28 08:35:59 UTC 2015

I've got this simple plugin that updates a file named 'revno' with the 
revno and revid at the root of a branch when a checkin or pull happens 
so I can use it in my build system. It works great, and it's below. But, 
I was on another machine that has a lightweight checkout of this project 
and it does not appear to update 'revno' when I push to the repo for 
this branch remotely, and then update the working copy. Is there 
anything I can do to fix this easily?

I didn't immediately see another hook at that 
would help, but I admit I skimmed it...


"""Update the "revno" file when the branch changes.

This post_change_branch_tip hook puts the current revno in a file called
"revno" in the base directory of the current branch, if it exists. If 
doesn't exist, then it is not created."""

from bzrlib import branch
version_info = (1, 0, 0, 'final', 0)

def update_revno_file(params):
     from bzrlib import errors
         trans = params.branch.bzrdir.root_transport
         path = trans.local_abspath('revno')
     except errors.NotLocalUrl:
         return # Nothing to do for a remote URL
     import os.path
     if os.path.isfile(path):
         f = open(path,'w')
         f.write('%s\n%s' % (params.new_revno,params.new_revid))

                                        'Update "revno" file on branch 
change, if it exists.')

More information about the bazaar mailing list