  * @class
  * Represents a local Git repository that has been opened by Gitteh. Used to get
  * access to any objects contained within it.
+ * 
+ * Repositories can be bare - they will not have a working directory, in this
+ * case the contents of what is usually in a .git subdirectory will be in the
+ * top level.
+ * @property {Boolean} bare true if this repository is bare.
+ * @property {String} path location of the Git metadata directory
+ * @property {String} workingDirectory location of the working directory, if 
+ * applicable (non-bare repository)
+ * @property {Remote[]} remotes List of remotes configured for this repository.
+ * @property {Reference[]} references List of references contained in this 
+ * repository.
+ * @property {Index} index The Git index for this repository.
 ###
 Repository = Gitteh.Repository = (nativeRepo) ->
 	if nativeRepo not instanceof NativeRepository

		cb: type: "function"
	_priv.native.reference name, resolve, wrapCallback cb, (ref) =>
		cb null, new Reference @, ref
Repository.prototype.ref = Repository.prototype.reference
Repository.prototype.createReference = ->
	_priv = getPrivate @
	[name, target, force, cb] = args

		cb: type: "function"
	_priv.native.write cb

###*
 * @class
 * A Reference is a named pointer to a {@link Commit} object. That is, refs are
 * the DNS of Git-land. References can either be direct or symbolic. Direct 
 * references point to the object id of a commit. Symbolic refs point to other
 * references.
 * @property {String} name
 * @property {Boolean} direct true if Reference points directly to an object id.
 * @property {Boolean} packed true if Reference is in a packfile
 * @property {String} target object id reference points to, or another reference
 * name if not a direct reference.
 * @property {Repository} repository the {@link Repository} that owns this ref.
 * @see Repository#reference
 * @see Repository#createReference
###
Reference = Gitteh.Reference = (repo, nativeRef) ->
	_priv = createPrivate @
	_priv.native = nativeRef
	immutable(@, nativeRef)
