docs: def mail(ui, repo, *pats, **opts):
  	"""mail a change for review
  
  	Uploads a patch to the code review server and then sends mail
  	to the reviewer and CC list asking for a review.
  	"""
  	if codereview_disabled:
  		raise hg_util.Abort(codereview_disabled)
  
  	cl, err = CommandLineCL(ui, repo, pats, opts, op="mail", defaultcc=defaultcc)
  	if err != "":
  		raise hg_util.Abort(err)
  	cl.Upload(ui, repo, gofmt_just_warn=True)
  	if not cl.reviewer:
  		# If no reviewer is listed, assign the review to defaultcc.
  		# This makes sure that it appears in the 
  		# codereview.appspot.com/user/defaultcc
  		# page, so that it doesn't get dropped on the floor.
  		if not defaultcc:
  			raise hg_util.Abort("no reviewers listed in CL")
  		cl.cc = Sub(cl.cc, defaultcc)
  		cl.reviewer = defaultcc
  		cl.Flush(ui, repo)
  
  	if cl.files == []:
  			raise hg_util.Abort("no changed files, not sending mail")
  
  	cl.Mail(ui, repo)