WIP: Replace parsing of git commands output with ruby-git library#23
Open
jamietanna wants to merge 4 commits into
Open
WIP: Replace parsing of git commands output with ruby-git library#23jamietanna wants to merge 4 commits into
git commands output with ruby-git library#23jamietanna wants to merge 4 commits into
Conversation
Merge commits show the parent commit (from the branch) rather than the actual merge commit itself. However, this isn't covered by any test cases. This requires some refactoring to allow the `dot_git_path` to change, as well as ensuring that we always clean out the `.git` directory in our `test_repo` so we always have a clean working state, instead of risking contamination between test runs. Note that we need the `.gitkeep` file in `refs/heads` as the folder is empty, but Git needs that folder to exist, otherwise it won't be recognised as a Git repo.
Instead of parsing output of `git` commands, which are liable to change over time, we want to instead use a library, in this case `ruby-git`, which gives us a more straightforward interface. Use an instance variable to ensure we're only using a shared object that's set up and read once. Pull minor bumps on the ruby-git library, as they will be backwards compatible via SemVer conventions. Notice that merge commits are treated differently now - we're picking up the actual merge commit, rather than the parent, as was seen previously.
WIP as tests are currently broken
Instead of returning whatever SHA we were given, which may not always be the short SHA, we should instead return a trimmed SHA. 7 is currently the default in Git, but in some projects it has been upped.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Instead of parsing output of
gitcommands, which are liable to changeover time, we want to instead use a library, in this case
ruby-git,which gives us a more straightforward interface.
Note that this is a first pass, and is NOT currently ready for merge - this is looking for early feedback. Currently outstanding:
Not sure whether in this PR or a follow-up, but perhaps refactoring the generation of the relevant data at
#generatetime to grab all the history details of the files in the repo and caching them, rather than iterating multiple times (which could be slow for a large repo).As mentioned in #6, this will be a breaking change due to a change in how merge commits are dealt with.