sonic-pi

https://github.com/sonic-pi-net/sonic-pi

C++

Code. Music. Live.

Rugged::Repository#checkout_tree

Updates files in the index and working tree to match the content of the
tree pointed at by the +treeish+.

The following options can be passed in the +options+ Hash:

:progress ::
  A callback that will be executed for checkout progress notifications.
  Up to 3 parameters are passed on each execution:

  - The path to the last updated file (or +nil+ on the very first invocation).
  - The number of completed checkout steps.
  - The number of total checkout steps to be performed.

:notify ::
  A callback that will be executed for each checkout notification types specified
  with +:notify_flags+. Up to 5 parameters are passed on each execution:

  - An array containing the +:notify_flags+ that caused the callback execution.
  - The path of the current file.
  - A hash describing the baseline blob (or +nil+ if it does not exist).
  - A hash describing the target blob (or +nil+ if it does not exist).
  - A hash describing the workdir blob (or +nil+ if it does not exist).

:strategy ::
  A single symbol or an array of symbols representing the strategies to use when
  performing the checkout. Possible values are:

  :none ::
    Perform a dry run (default).

  :safe ::
    Allow safe updates that cannot overwrite uncommitted data.

  :recreate_missing ::
    Allow checkout to recreate missing files.

  :force ::
    Allow all updates to force working directory to look like index.

  :allow_conflicts ::
    Allow checkout to make safe updates even if conflicts are found.

  :remove_untracked ::
    Remove untracked files not in index (that are not ignored).

  :remove_ignored ::
    Remove ignored files not in index.

  :update_only ::
    Only update existing files, don't create new ones.

  :dont_update_index ::
    Normally checkout updates index entries as it goes; this stops that.

  :no_refresh ::
    Don't refresh index/config/etc before doing checkout.

  :disable_pathspec_match ::
    Treat pathspec as simple list of exact match file paths.

  :skip_locked_directories ::
    Ignore directories in use, they will be left empty.

  :skip_unmerged ::
    Allow checkout to skip unmerged files (NOT IMPLEMENTED).

  :use_ours ::
    For unmerged files, checkout stage 2 from index (NOT IMPLEMENTED).

  :use_theirs ::
    For unmerged files, checkout stage 3 from index (NOT IMPLEMENTED).

  :update_submodules ::
    Recursively checkout submodules with same options (NOT IMPLEMENTED).

  :update_submodules_if_changed ::
    Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED).

:disable_filters ::
  If +true+, filters like CRLF line conversion will be disabled.

:dir_mode ::
  Mode for newly created directories. Default: +0755+.

:file_mode ::
  Mode for newly created files. Default: +0755+ or +0644+.

:file_open_flags ::
  Mode for opening files. Default: <code>IO::CREAT | IO::TRUNC | IO::WRONLY</code>.

:notify_flags ::
  A single symbol or an array of symbols representing the cases in which the +:notify+
  callback should be invoked. Possible values are:

  :none ::
    Do not invoke the +:notify+ callback (default).

  :conflict ::
    Invoke the callback for conflicting paths.

  :dirty ::
    Invoke the callback for "dirty" files, i.e. those that do not need an update but
    no longer match the baseline.

  :updated ::
    Invoke the callback for any file that was changed.

  :untracked ::
    Invoke the callback for untracked files.

  :ignored ::
    Invoke the callback for ignored files.

  :all ::
    Invoke the callback for all these cases.

:paths ::
  A glob string or an array of glob strings specifying which paths should be taken
  into account for the checkout operation. +nil+ will match all files.
  Default: +nil+.

:baseline ::
  A Rugged::Tree that represents the current, expected contents of the workdir.
  Default: +HEAD+.

:target_directory ::
  A path to an alternative workdir directory in which the checkout should be performed.

Source | Google | Stack overflow

Edit

git clone [email protected]:sonic-pi-net/sonic-pi.git

cd sonic-pi

open app/server/ruby/vendor/rugged-1.7.1/ext/rugged/rugged_repo.c

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-Rugged--Repository-checkout_tree-for-pr


# Commit to git

git add app/server/ruby/vendor/rugged-1.7.1/ext/rugged/rugged_repo.cgit commit -m "better docs for Rugged::Repository#checkout_tree"


# Open pull request

gem install hub # on a mac you can `brew install hub`

hub fork

git push <your name> -your-name--update-docs-Rugged--Repository-checkout_tree-for-pr

hub pull-request


# Celebrate!