   Emitter.includeInto(this)
   Subscriber.includeInto(this)
 
-  # Private: Creates a new `Git` instance.
-  #
-  # * path: The path to the git repository to open
-  # * options:
-  #    + refreshOnWindowFocus:
-  #      A Boolean that identifies if the windows should refresh
+  # Public: Creates a new Git instance.
+  #
+  # path - The path to the Git repository to open.
+  # options - An object with the following keys (default: {}):
+  #   :refreshOnWindowFocus - `true` to refresh the index and statuses when the
+  #                           window is focused.
+  #
+  # Returns a Git instance or null if the repository could not be opened.
   @open: (path, options) ->
     return null unless path
     try
       new Git(path, options)
-    catch e
+    catch
       null
 
   @exists: (path) ->


    @unsubscribe()

  # Private: Returns the corresponding {Repository}
  getRepo: ->
    unless @repo?
      throw new Error("Repository has been destroyed")
    @repo

  # Public: Reread the index to update any values that have changed since the
  # last time the index was read.
  refreshIndex: -> @getRepo().refreshIndex()

  # Public: Returns the path of the repository.
  getPath: ->
    @path ?= fs.absolute(@getRepo().getPath())

  # Public: Returns the working directory of the repository.
  getWorkingDirectory: -> @getRepo().getWorkingDirectory()

  # Public: Returns the status of a single path in the repository.
  #
  # * path:
  #   A String defining a relative path
  #
  # Returns a {Number}, FIXME representing what?
  getPathStatus: (path) ->
    currentPathStatus = @statuses[path] ? 0
    pathStatus = @getRepo().getStatus(@relativize(path)) ? 0

    else
      false

  constructor: (path, options={}) ->
    @repo = GitUtils.open(path)
    unless @repo?
