thinking out loud [...]by @robertodecurnex

1.2.9 Release Notes

  • Adding Git.configure (to configure the git env)
Git.configure do |config|
  # If you want to use a custom git binary
  config.binary_path = '/git/bin/path'

   # If you need to use a custom SSH script
   config.git_ssh = '/path/to/ssh/script'
  • Adding Git.ls_remote
    • Git.ls_remote(repo_path_or_url) # Defaulting to '.'
  • Adding Git.describe
    • repo.describe(objectish, opts)
  • Adding
    •, path) # Defaulting to HEAD as Git does
  • Fixing Git::Diff to support default references
    • from and to commitish, are optional. They were both required.
  • Fixing Git::Diff to support diff over git .patch files
    • .patch files include git diff formatted text. The gem was ignoring identation and getting confused with them.
  • Fixing Git.checkout when using :new_branch opt
  • Fixing Git::Object::Commit to preserve its sha after fetching metadata
    • Fething metadata for a given commit was, sometimes, overwriting the sha with its commitish name
  • Fixing Git.is_remote_branch? to actually check against remote branches
  • Improvements over how ENV variables are modified
    • Commands were leaving the ENV modified affecting the code running over the same proc. New we set and reset those values right before/after running the command. A Mutex has also been added to prevent concurrent commands to get affected
  • Improving thrade safety (using --git-dir and --work-tree git opts)
    • Instead of move the current directory we are new using the Git opts.
  • Improving Git::Object::Tag. Adding annotated?, tagger and message
    • We were trating all tags the same. Now annotated tags will responde return a message and a tagger (a Git::Author instance). Normal tags will just return nil.
  • Supporting a submodule path as a valid repo
    • It was imposible to a submodule path (mostrly because the .git folder is not present on those cases). We are now detecting those scenarios and setting the path and index based on the submodule .git file content.
  • Git.checkout
    • -f
    • -b
  • Git.clone
    • —branch
  • Git.fetch
    • —prune


Thank you so much for all your contributions.

Are you having any problem with the gem ?

Is there any feature you would love to be included?

Fork the project, create some issues, purpose some features. Don’t be shy, we would love to get your feedback.

blog comments powered by Disqus

Favourite Readings