# git_refs
#
# This file contains a list of repos, paths within those repos, and git
# references (branch/tag/commit hash) that are checked out with `git checkout
# <ref>` during creation of documentation.
#
# - First column is the git repo name
# - Second column is the subdirectory of the repo to symlink into the
#   docs directory
# - Third column is the reference (branch/tag/commit) to checkout

_REPO NAME_           _DIR_    _REF_

att-workflow-driver   /docs    master
cordctl               /        master
cord-tester           /docs    master
fabric                /docs    master
fabric-crossconnect   /docs    master
hippie-oss            /docs    master
kubernetes-service    /docs    master
olt-service           /docs    master
onos-service          /docs    master
openolt               /        master
openstack             /docs    master
rcord                 /docs    master
simpleexampleservice  /docs    master
exampleservice        /docs    master
vrouter               /docs    master
xos-gui               /docs    master
xos-tosca             /docs    master
xos                   /docs    master
vtn-service           /docs    master
