def METHOD_NAME(self, client):
    query = {
        'expression': _patterns_to_terms(self.patterns),
        'fields': ['name']
    }
    watch = client.query('watch-project', self.path)
    if 'warning' in watch:
        # no idea when this happens, but the example scripts have it...
        print('watchman warning:', watch['warning'])
    self.root_dir = watch['watch']
    if 'relative_path' in watch:
        query['relative_root'] = watch['relative_path']
    # get the initial clock value so that we only get updates
    query['since'] = client.query('clock', self.root_dir)['clock']
    client.query('subscribe', self.root_dir, self.name, query)