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 LGitRemote>>defaultBranchName (WIP) #40

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions LibGit-Core.package/LGitRemote.class/instance/defaultBranchName.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
accessing
defaultBranchName
"Answer the name of the remote's default branch.

Must only be called after connecting.
"

| buf defaultBranchName |
buf := LGitBuf new.
[ self withReturnHandlerDo: [
self remote_default_branch: buf ].
defaultBranchName := buf prim_ptr readStringUTF8.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This readStringUTF8 needs update, I think

] ensure: [ buf free ].

^ defaultBranchName
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
libgit-calls
remote_connect: remote direction: direction callbacks: remoteCallbacks

^ self
ffiCallSafely:
#(LGitReturnCodeEnum git_remote_connect #(self , LGitDirectionEnum direction , LGitRemoteCallbacks * remoteCallbacks))
options: #()
^ self ffiLibrary uniqueInstance version first = 0
ifTrue: [
self shouldBeImplemented.
self remote_connect_v0251: remote direction: direction callbacks: remoteCallbacks ]
ifFalse: [
self remote_connect_v100: remote direction: direction callbacks: remoteCallbacks ]
Comment on lines +4 to +9
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@tesonep @guillep @astares do we still need to support <v1.0.0 ?
I don't remember now details but evidently I needed to add this version-dependent code... And I suspect we can assume >=v1.0.0.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
libgit-calls
remote_connect_v100: remote direction: direction callbacks: remoteCallbacks

^ self
ffiCallSafely:
#(LGitReturnCodeEnum git_remote_connect #(self , LGitDirectionEnum direction , LGitRemoteCallbacksV100 * remoteCallbacks))
options: #()


Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
libgit-calls
remote_default_branch: out
"Retrieve the name of the remote's default branch.

The default branch of a repository is the branch which HEAD points to. If the remote does not support reporting this information directly, it performs the guess as git does; that is, if there are multiple branches which point to the same commit, the first one is chosen. If the master branch is a candidate, it wins.

This function must only be called after connecting.

See: https://libgit2.org/libgit2/#v1.0.0/group/remote/git_remote_default_branch"

^ self
ffiCallSafely: #(LGitReturnCodeEnum git_remote_default_branch(LGitBuf *out, self))
options: #()