 		_immutable(@, {src, dst})
 			.set("src")
 			.set("dst")
+
 	matchesSrc: (refName) ->
 		###
-		 * Determines if provided reference name matches source of this Refspec.
-		 * @param {String} refName
-		 * @return {Boolean} true if provided refName matches src of Refspec.
+		Returns true/false if given `refName` matches source of this Refspec.
 		###
 		_priv = _getPrivate @
 		return false if refName.length <= _priv.srcRoot.length

			.set("messageEncoding")
			.set("author")
			.set("committer")
	tree: (cb) ->
		###*
		 * Fetches the {@link Tree} object for this Commit. Just a convenience method to
		 * call out to {@link Repository#tree}(commit.treeId).
		 * @param {Function} cb called when Tree has been fetched from repository.
		 * @see Tree
		###
		@repository.tree @treeId, cb	

Gitteh.Tree = class Tree
	###*
	 * @class
	 * A Tree contains a list of named entries, which can either be {@link Blob}s or
	 * nested {@link Tree}s, each entry is referenced by its oid. A {@link Commit}
	 * owns a single {@link Tree}.
	 * @property {String} id object id of this Tree.
	 * @property {Tree.Entry} entries a list of all entries contained in this Tree.
	 * @see Blob
	 * @see Commit
	###
	###*
	 * @class
	 * @name Tree.Entry
	 * @property {String} id id of object this entry points to.
	 * @property {String} name
	 * @property {String} type kind of object pointed to by this entry (commit/blob)
	 * @property {Integer} attributes UNIX file attributes for this entry.
	###
	constructor: (@repository, obj) ->
		obj._entries = obj.entries
		obj.entries = []

			.set("time")
			.set("offset")


Gitteh.Refspec = class Refspec
	###
	Describes the way remote repository references will be mapped to the local
	repository. 

	For more information refer to http://git-scm.com/book/ch9-5.html
	###

	constructor: (src, dst) ->
		_priv = _createPrivate @

