Skip to content

repository: add Repository.revparse_single() (includes/requires my test_repository merge request) #131

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Sep 25, 2012

Conversation

wking
Copy link
Contributor

@wking wking commented Sep 13, 2012

Expose libgit2's git_revparse_single.

This catches up with changes in libgit2:

  commit f335ecd6e126aa9dea28786522c0e6ce71596e91
  Author: Russell Belfer <rb@github.com>
  Date:   Thu Aug 30 14:24:16 2012 -0700
This catches up with changes in libgit2:

  commit 4bf5115642b64851f9a32a8157010b588bf44103
  Author: Ben Straub <bstraub@github.com>
  Date:   Mon Jul 30 14:52:46 2012 -0700

    Enable stats on git_index_read_tree.

    Replace with the contents of
    git_index_read_tree_with_stats() and improve
    documentation comments.
This catches up with changes in libgit2:

  commit 9d7ac675d06dab2e000ad32f9248631af0191f85
  Author: nulltoken <emeric.fermas@gmail.com>
  Date:   Tue Aug 21 11:45:16 2012 +0200

    tree entry: rename git_tree_entry_attributes() into git_tree_entry_filemode()
…_merge.

In both cases, the file contents change from 'X contents\n' to 'X
contents 2\n' (where 'X' is 'a' or 'b').  This means were removing one
line and adding another.

I'm not sure how this test was passing against libgit2 v0.17.0, so I
may be missing something important.
`git_revparse_single` only dates back to

  commit ac250c56c7d7bb11691c9dfbcd0dbf580d85e177
  Author: Ben Straub <bstraub@github.com>
  Date:   Wed Apr 25 16:24:22 2012 -0700

    First stab at implementation of rev-parse.

which is not included in libgit2 0.17.0.  We need to pull in these
patches to work with the current `development` branch of libgit2,
which does include the revparse code.
Generating an `Object *` from a `git_object *` may be useful in other
functions (e.g. the upcoming `Repository_revparse_single`).
Get the correct HEAD_SHA for the upcoming revparse_single test.
This provides access to libgit2's 'git_revparse_single'.
@wking
Copy link
Contributor Author

wking commented Sep 13, 2012

It also requires libgit2 >= 0.17.0 for git_revparse_single, so I have a few fixes to work with libgit2's development branch (as of libgit2/libgit2@21d847d).

@wking
Copy link
Contributor Author

wking commented Sep 17, 2012

So, the Travis build failed because it's trying to build against libgit2's master branch, when it needs to be built against the development branch. Is there any chance for a development branch for pygit2 that is tested against the current libgit2 development libraries? I known nothing about Travis, so I'm not sure how feasible this is.

@jdavid
Copy link
Member

jdavid commented Sep 21, 2012

I think about making a new release, the last one in the 0.17 series. Then move the pygit2's master branch to work with libgit2's development branch.

@jdavid
Copy link
Member

jdavid commented Sep 21, 2012

Just did that, now there is only this PR left.

@jdavid jdavid merged commit 0238fb7 into libgit2:master Sep 25, 2012
lifeisstillgood pushed a commit to mikadosoftware/be that referenced this pull request Jan 6, 2014
If `pygit2` is installed, use it (via PygitGit) rather than calling
the stand-alone `git` executable for all the Git (via ExecGit) for all
the Git storage stuff.  This saves one serializing/deserializing and
process setup/teardown.  I timed each test suite by commenting out one
of the `make_vcs_testcase_subclasses()` calls at the end of `git.py`
and running

  $ time python test.py libbe.storage.vcs.git

The ExecGit tests ran in 13.7s and the PygitGit tests ran in 3.6s for
a 3.8x speedup.

I had to stretch pygit2 a bit to get a clean fit, so if you want to
test this, you'll need to build pygit2 with the following merge
requests:

  Add 'pygit2.__version__' for easy access from client software.
    libgit2/pygit2#128
    commit 0238fb72dfdf2a2308f2da347717cbaafddc4b83
  signature: Add keyword argument parsing to Signature().
    libgit2/pygit2#129
    commit c934858b629f40221406f34166dd77e881b9d5fd
  repository: add Repository.revparse_single()
    libgit2/pygit2#131
    commit 3afdc8b2f59ed137531671fedde36f3a39cbcc9d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants