# This file is used by gcl to get repository specific information.
CODE_REVIEW_SERVER: webrtc-codereview.appspot.com
CC_LIST:
VIEW_VC:
STATUS: 
TRY_ON_UPLOAD: False
TRYSERVER_SVN_URL: 
GITCL_PREUPLOAD: 
GITCL_PREDCOMMIT: 
