pub struct Remote<'repo> { /* private fields */ }
Expand description
A structure representing a remote of a git repository.
The lifetime is the lifetime of the repository that it is attached to. The remote is used to manage fetches and pushes as well as refspecs.
Implementations§
source§impl<'repo> Remote<'repo>
impl<'repo> Remote<'repo>
sourcepub fn is_valid_name(remote_name: &str) -> bool
pub fn is_valid_name(remote_name: &str) -> bool
Ensure the remote name is well-formed.
sourcepub fn create_detached<S: Into<Vec<u8>>>(url: S) -> Result<Remote<'repo>, Error>
pub fn create_detached<S: Into<Vec<u8>>>(url: S) -> Result<Remote<'repo>, Error>
Create a detached remote
Create a remote with the given URL in-memory. You can use this when you have a URL instead of a remote’s name. Contrasted with an anonymous remote, a detached remote will not consider any repo configuration values.
sourcepub fn name(&self) -> Option<&str>
pub fn name(&self) -> Option<&str>
Get the remote’s name.
Returns None
if this remote has not yet been named or if the name is
not valid utf-8
sourcepub fn name_bytes(&self) -> Option<&[u8]>
pub fn name_bytes(&self) -> Option<&[u8]>
Get the remote’s name, in bytes.
Returns None
if this remote has not yet been named
sourcepub fn url(&self) -> Option<&str>
pub fn url(&self) -> Option<&str>
Get the remote’s URL.
Returns None
if the URL is not valid utf-8
sourcepub fn pushurl(&self) -> Option<&str>
pub fn pushurl(&self) -> Option<&str>
Get the remote’s pushurl.
Returns None
if the pushurl is not valid utf-8
sourcepub fn pushurl_bytes(&self) -> Option<&[u8]>
pub fn pushurl_bytes(&self) -> Option<&[u8]>
Get the remote’s pushurl as a byte array.
sourcepub fn default_branch(&self) -> Result<Buf, Error>
pub fn default_branch(&self) -> Result<Buf, Error>
Get the remote’s default branch.
The remote (or more exactly its transport) must have connected to the remote repository. This default branch is available as soon as the connection to the remote is initiated and it remains available after disconnecting.
sourcepub fn connect_auth<'connection, 'cb>(
&'connection mut self,
dir: Direction,
cb: Option<RemoteCallbacks<'cb>>,
proxy_options: Option<ProxyOptions<'cb>>,
) -> Result<RemoteConnection<'repo, 'connection, 'cb>, Error>
pub fn connect_auth<'connection, 'cb>( &'connection mut self, dir: Direction, cb: Option<RemoteCallbacks<'cb>>, proxy_options: Option<ProxyOptions<'cb>>, ) -> Result<RemoteConnection<'repo, 'connection, 'cb>, Error>
Open a connection to a remote with callbacks and proxy settings
Returns a RemoteConnection
that will disconnect once dropped
sourcepub fn disconnect(&mut self) -> Result<(), Error>
pub fn disconnect(&mut self) -> Result<(), Error>
Disconnect from the remote
sourcepub fn download<Str: AsRef<str> + IntoCString + Clone>(
&mut self,
specs: &[Str],
opts: Option<&mut FetchOptions<'_>>,
) -> Result<(), Error>
pub fn download<Str: AsRef<str> + IntoCString + Clone>( &mut self, specs: &[Str], opts: Option<&mut FetchOptions<'_>>, ) -> Result<(), Error>
Download and index the packfile
Connect to the remote if it hasn’t been done yet, negotiate with the remote git which objects are missing, download and index the packfile.
The .idx file will be created and both it and the packfile with be renamed to their final name.
The specs
argument is a list of refspecs to use for this negotiation
and download. Use an empty array to use the base refspecs.
sourcepub fn stop(&mut self) -> Result<(), Error>
pub fn stop(&mut self) -> Result<(), Error>
Cancel the operation
At certain points in its operation, the network code checks whether the operation has been canceled and if so stops the operation.
sourcepub fn get_refspec(&self, i: usize) -> Option<Refspec<'repo>>
pub fn get_refspec(&self, i: usize) -> Option<Refspec<'repo>>
Get the nth
refspec from this remote.
The refspecs
iterator can be used to iterate over all refspecs.
sourcepub fn fetch<Str: AsRef<str> + IntoCString + Clone>(
&mut self,
refspecs: &[Str],
opts: Option<&mut FetchOptions<'_>>,
reflog_msg: Option<&str>,
) -> Result<(), Error>
pub fn fetch<Str: AsRef<str> + IntoCString + Clone>( &mut self, refspecs: &[Str], opts: Option<&mut FetchOptions<'_>>, reflog_msg: Option<&str>, ) -> Result<(), Error>
Download new data and update tips
Convenience function to connect to a remote, download the data, disconnect and update the remote-tracking branches.
§Examples
Example of functionality similar to git fetch origin main
:
fn fetch_origin_main(repo: git2::Repository) -> Result<(), git2::Error> {
repo.find_remote("origin")?.fetch(&["main"], None, None)
}
let repo = git2::Repository::discover("rust").unwrap();
fetch_origin_main(repo).unwrap();
sourcepub fn update_tips(
&mut self,
callbacks: Option<&mut RemoteCallbacks<'_>>,
update_fetchhead: bool,
download_tags: AutotagOption,
msg: Option<&str>,
) -> Result<(), Error>
pub fn update_tips( &mut self, callbacks: Option<&mut RemoteCallbacks<'_>>, update_fetchhead: bool, download_tags: AutotagOption, msg: Option<&str>, ) -> Result<(), Error>
Update the tips to the new state
sourcepub fn push<Str: AsRef<str> + IntoCString + Clone>(
&mut self,
refspecs: &[Str],
opts: Option<&mut PushOptions<'_>>,
) -> Result<(), Error>
pub fn push<Str: AsRef<str> + IntoCString + Clone>( &mut self, refspecs: &[Str], opts: Option<&mut PushOptions<'_>>, ) -> Result<(), Error>
Perform a push
Perform all the steps for a push. If no refspecs are passed then the configured refspecs will be used.
Note that you’ll likely want to use RemoteCallbacks
and set
push_update_reference
to test whether all the references were pushed
successfully.
sourcepub fn stats(&self) -> Progress<'_>
pub fn stats(&self) -> Progress<'_>
Get the statistics structure that is filled in by the fetch operation.
sourcepub fn list(&self) -> Result<&[RemoteHead<'_>], Error>
pub fn list(&self) -> Result<&[RemoteHead<'_>], Error>
Get the remote repository’s reference advertisement list.
Get the list of references with which the server responds to a new connection.
The remote (or more exactly its transport) must have connected to the remote repository. This list is available as soon as the connection to the remote is initiated and it remains available after disconnecting.
sourcepub fn prune(
&mut self,
callbacks: Option<RemoteCallbacks<'_>>,
) -> Result<(), Error>
pub fn prune( &mut self, callbacks: Option<RemoteCallbacks<'_>>, ) -> Result<(), Error>
Prune tracking refs that are no longer present on remote
sourcepub fn fetch_refspecs(&self) -> Result<StringArray, Error>
pub fn fetch_refspecs(&self) -> Result<StringArray, Error>
Get the remote’s list of fetch refspecs
sourcepub fn push_refspecs(&self) -> Result<StringArray, Error>
pub fn push_refspecs(&self) -> Result<StringArray, Error>
Get the remote’s list of push refspecs