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

Adding support for git remote set-url/get-url API to Remote #446

Merged
merged 2 commits into from Jun 14, 2016

Conversation

Projects
None yet
3 participants
@guyzmo
Contributor

guyzmo commented May 26, 2016

Both commands enable handling of a little known feature
of git, which is to support multiple URL for one remote.
You can add multiple url using the set_url subcommand of
git remote. Though listing them is also handy, so there's
a nice method to do it, using the configuration.

@guyzmo

This comment has been minimized.

Contributor

guyzmo commented May 26, 2016

might need to write some tests for those?

@guyzmo guyzmo force-pushed the guyzmo:updating_remote_url_handling branch from 546dfeb to ba01785 May 26, 2016

@Byron

This comment has been minimized.

Member

Byron commented May 27, 2016

Oh yes please ! It should be relatively straightforward to deduce how to write tests for this by looking at the existing ones. Usually there are helper functions to setup even more complex fixtures.

@Byron

This comment has been minimized.

Member

Byron commented May 27, 2016

Before I forget, could you also look at how existing methods are documented and match the documentation style ? This would include documenting all parameters, for example.

@guyzmo

This comment has been minimized.

Contributor

guyzmo commented May 27, 2016

I might, but sadly I'm now in the train, going away for four days, during which I'm on a crappy tablet on which I cannot work. Though, I very much would like to see this new methods included in the next patchset so I can remove the monkey patching from my own codebase as well :-)

cf https://github.com/guyzmo/git-repo/blob/master/git_repo/services/service.py#L25-43

@Byron Byron self-assigned this May 28, 2016

@Byron Byron added this to the v2.0.4 - Bugfixes milestone May 28, 2016

Adding support for git remote set-url/get-url API to Remote
Both commands enable handling of a little known feature
of git, which is to support multiple URL for one remote.
You can add multiple url using the `set_url` subcommand of
`git remote`. As listing them is also handy, there's a
nice method to do it, using `get_url`.

* adding set_url method that maps to the git remote set-url command¶
 * can be used to set an URL, or replace an URL with optional positional arg¶
 * can be used to add, delete URL with kwargs (matching set-url options)¶
* adding add_url, delete_url methods that wraps around set_url for conveniency¶
* adding urls property that yields an iterator over the setup urls for a remote¶
* adding a test suite that checks all use case scenarii of this added API.¶

Signed-off-by: Guyzmo <guyzmo+github@m0g.net>

@guyzmo guyzmo force-pushed the guyzmo:updating_remote_url_handling branch from ba01785 to b366d3f Jun 8, 2016

@guyzmo guyzmo changed the title from Adding set_url and list_urls methods to Remote to Adding support for git remote set-url/get-url API to Remote Jun 8, 2016

@guyzmo

This comment has been minimized.

Contributor

guyzmo commented Jun 8, 2016

So, I've squashed my commit with a new one, featuring a few changes:

  • The set_url method is a direct wrapper for git remote set-url ;
  • the urls property is providing an iterator over the remote's URLs (I followed how you named refs)

Then I've added a couple of convenience methods, to avoid adding awkward arguments to control set_url:

  • the add_url method is there so you can add an URL to a remote
  • and delete_url method is to delete one.

Finally, I've added a test covering all the new code, with a couple of edge cases, and wrote pydoc for those functions. I hope it's how you like it, mates!

Switching the `urls` property to use `git remote show` instead of `gi…
…t remote get-url`

`get-url` is a new API that is not widely available yet (introduced in git 2.7.0), and
provokes failure on travis.

Signed-off-by: Guyzmo <guyzmo+github@m0g.net>

@guyzmo guyzmo force-pushed the guyzmo:updating_remote_url_handling branch from c780aff to 3f4b410 Jun 8, 2016

@guyzmo

This comment has been minimized.

Contributor

guyzmo commented Jun 8, 2016

I rolled back the urls property, because that was failing on Travis, which isn't using latest git.

The git remote get-url API has been introduced in git 2.7.0, and wasn't available before.

@guyzmo

This comment has been minimized.

Contributor

guyzmo commented Jun 8, 2016

can you ping me when you think you'll be able to merge, and publish on pypi¸ and what version that will be? So I can update my setup.py accordingly ☺

@Byron Byron added the acknowledged label Jun 14, 2016

@Byron Byron merged commit 9bebaca into gitpython-developers:master Jun 14, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

Byron added a commit that referenced this pull request Jun 14, 2016

@Byron

This comment has been minimized.

Member

Byron commented Jun 14, 2016

If @nvie doesn't beat me to it, I will get the new release on the way on my next maintenance slot. Maybe tomorrow ... .

@guyzmo

This comment has been minimized.

Contributor

guyzmo commented Jun 14, 2016

thank you ;-)

preparing my own code to be ready to point to the right version! :-)

@nvie

This comment has been minimized.

Collaborator

nvie commented Jun 14, 2016

I'll add 2 more bug fixes tonight to this release. After I'm done with those, I'll roll a new release :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment