Skip to content
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

Add show methods for remotes and tags #19955

Merged
merged 1 commit into from
Jan 15, 2017
Merged

Add show methods for remotes and tags #19955

merged 1 commit into from
Jan 15, 2017

Conversation

kshyatt
Copy link
Contributor

@kshyatt kshyatt commented Jan 9, 2017

Re: #19839

Oh, I added a name function for remote since we didn't have that and it seems useful to know.

@kshyatt kshyatt added display and printing Aesthetics and correctness of printed representations of objects. libgit2 The libgit2 library or the LibGit2 stdlib module labels Jan 9, 2017
@kshyatt kshyatt requested a review from simonbyrne January 9, 2017 22:05
@@ -88,3 +94,5 @@ function push{T<:AbstractString}(rmt::GitRemote, refspecs::Vector{T};
!no_refs && close(sa)
end
end

Base.show(io::IO, rmt::GitRemote) = print(io, "Remote name: ", name(rmt), " url: ", url(rmt))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest printing the name of the type.

@kshyatt kshyatt force-pushed the ksh/showremoteandtag branch from d92ba44 to 8ee9237 Compare January 11, 2017 18:27
@kshyatt kshyatt merged commit 281e2be into master Jan 15, 2017
@kshyatt kshyatt deleted the ksh/showremoteandtag branch January 15, 2017 17:22
@@ -41,3 +41,5 @@ function target(tag::GitTag)
oid_ptr == C_NULL && throw(Error.GitError(Error.ERROR))
return GitHash(oid_ptr)
end

Base.show(io::IO, tag::GitTag) = print(io, "GitTag:\nTag name: $(name(tag)) target: $(target(tag))")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kinda inconsistent to have one of these use interpolation and the other use multi-arg print


function name(rmt::GitRemote)
name_ptr = ccall((:git_remote_name, :libgit2), Cstring, (Ptr{Void}, ), rmt.ptr)
name_ptr == C_NULL && return ""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it valid to have empty-name or empty-url remotes?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can have Anonymous remotes, can't you?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that the only thing that can result in getting a null pointer back from this function?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
display and printing Aesthetics and correctness of printed representations of objects. libgit2 The libgit2 library or the LibGit2 stdlib module
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants